De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Fred Cox Junior
Data de Publicação: 01 de Junho de 2005
Você poderá obter a versão tarball deste documento através dos seguintes links.
Arquivo | Tamanho | Assinatura GPG | Chave Pública |
---|---|---|---|
mutt.texto.tar.gz | 978K | mutt.texto.tar.gz.asc | pubkey.gpg |
$ wget http://www.fredcoxjr.net/artigos/Mutt/sign/pubkey.gpg $ gpg --import pubkey.gpg
$ wget http://www.fredcoxjr.net/artigos/mutt.texto.tar.gz.asc
$ gpg --verify mutt.texto.tar.gz.asc mutt.texto.tar.gz
Hoje o email executa um papel absolutamente essencial no processo da comunicação. A praticidade e rapidez com que se pode enviar mensagens pela internet a vários destinatários elegeu esta ferramenta como um dos principais recursos de comunicação utilizados na atualidade.
Mutt é um programa cliente de email que proporciona um alto grau de flexibilização possibilitando ao ao usuário escolher e adotar os mais diversos critérios e customizações que outros softwares clientes não possuem.
Roda em GNU/linux, BSD Unix, Sun Solaris ou Apple OS-X.
Sua característica altamente personalizável permite que o usuário determine como e com quais recursos deseja receber, enviar, criptografar e filtrar os emails das suas caixas de mensagens.
Mutt é mantido por Michael R. Elkins distribuído sob licença GNU - General Public License. O site oficial pode ser acessado através do seguinte endereço:
Algumas características do Mutt são:
Um MUA ou agente de usuário é um programa que permite aos usuários ler, salvar e compor mensagens de email.
São exemplos de agentes de usuários:
Um MTA é um software encarregado de direcionar, entregar e receber mensagens entre servidores.
Um agente de transporte deve aceitar e-mail de um agente de usuário. compreender os endereços dos receptores e de alguma maneira entregar o email para os hosts corretos para entrega.
Os agentes de transporte falam SMTP - (Simple Mail Transfer Protocol), protocolo de transporte de e-mail simples) definido na RFC2821 ou o protocolo ESMTP (Extended Simple Mail Transfer Protocol), uma versão extendida do SMTP.
Vários MTAs estão disponíveis na internet; são exemplos:
É um programa responsável por obter as mensagens de um servidor de e-mail. Ele realiza a conexão autenticada com o servidor POP ou IMAP e entrega as mensagens para serem filtradas pelo LDA.
São exemplos de MRA:
Um LDA ou agente de entrega aceita e-mail de um agente de transporte remetendo aos receptores locais apropriados.
O LDA ler uma mensagem de email da entrada padrão e entrega a mensagem para uma específica caixa de mensagens de acordo com as instruções de seleção, filtragem e política anti-spam contidas em um arquivo de configuração.
Um agente de entrega pode checar a sintax das regras contidas no arquivo de configuração e entregar a mensagem em caixas postais alternativas e específicas.
Os LDAs mais utilizados hoje são os seguintes:
A figura abaixo mostra o fluxo de uma mensagem de correio eletrônico entre dois hosts.
A mensagem sai do computador do usuário 1 e vai até o computador do usuário 2. Note que em ambos os casos é necessária a presença de MTA, MUA e LDA. O processo de entrega é auxiliado por meio do LDA. Neste texto utilizaremos o Procmail como LDA.
[http://www.fredcoxjr.net/artigos/mutt/images/fluxo1.png]
Uma mensagem de email se divide em três seções:
Cada seção tem um propósito de informação que iremos estudar adiante.
O envelope não é visualizado pelo usuário - é utilizado pelo MTA (Mail Transfer Agent) para determinar para quem a mensagem irá ser entregue ou para onde ela deve ser retornada.
O cabeçalho é a parte mais importante do email para Administradores de sistemas. A partir dele você pode realizar rastreamento reverso para saber a origem da mensagem, principalmente quando oriunda de um spammer, ou efetuar depuração.
Ele é composto de pares de chaves definidos na RFC822. O comprimento de cada par de chave é de apenas uma linha de texto e se o texto ultrapassar este limite, deve ser acompanhado de um espaço ou tabulação TAB..
Alguns cabeçalhos são obrigatórios (Date, From, To ou BCC) e outros são inseridos pelo MTA e pelo agente de usuário.
Cabeçalhos iniciando com um 'X-' são cabeçalhos personalizados, logo você pode acrescentar um 'X-Organization: Minha Empresa' em seus mails, e este cabeçalho irá ser propagado até o host destino.
Um cabeçalho é composto por uma sequência de linhas consistindo de pares de chaves.
Uma linha corresponde a uma sequência de strings de um ou mais bytes. Uma linha está vazia se contém zero bytes. Toda linha em um cabeçalho possui um ou mais bytes.
Um campo de cabeçalho começa com uma sequência de strings contendo um nome e um valor separados por dois pontos ':'.
O exemplo seguinte contém cinco campos de cabeçalho e seis linhas:
Received: (qmail-queue invoked by uid 666); 30 Jul 1996 11:54:54 -0000 From: "D. J. Bernstein" <djb@silverton.berkeley.edu> To: fred@silverton.berkeley.edu Date: 30 Jul 1996 11:54:54 -0000 Subject: Go, Bears!
É o conteúdo da mensagem propriamente dito. O conteúdo tem que ser codificado em texto ASCII.
O corpo é separado do cabeçalho por uma linha em branco.
Fetchmail é um utilitário que extrai os emails de caixas postais em servidores de emails remotos e encaminha para um sistema local de entrega de mensagens; o agente de entrega LDA (Local Delivery Agent).
Este utilitário suporta todos os protocolos remotos de acesso e extração de email, tais como: POP2, POP3, RPOP, APOP, KPOP, IMAP, ETRN e ODMR, além de também suportar IPv6 e IPSEC.
Fetchmail pode rodar em modo daemon com intervalo de tempo pré determinado para checar as caixas postais remotas ou no modo standallone, este último é mais recomendado para PCs desktops ou usuários standallone.
A mensagem de email obtida pelo fetchmail normalmente é encaminhada via SMTP para porta 25 na máquina que está rodando (localhost) por um link TCP/IP e posteriormente entregue localmente via LDA. Neste texto nós adotaremos o Procmail como LDA padrão por vários motivos que serão discutidos adiante.
Se não houver escuta TCP/IP na porta 25, o fetchmail entrega as mensagens automaticamente ao LDA configurado no seu sistema ou MDA. Note que alguns livros chamam MDA, que tem o mesmo significado que LDA aqui nos nossos propósitos.
Utilizaremos para configuração o programa fetchmailconf que vem disponível na distribuição padrão do fetchmail. É necessário ter instalada a linguagem Python e o Tk toolkit.
Para rodar o fetchmail bastar editar um arquivo '~/.fetchmailrc' no diretório de usuário. Para isto pode-se utilizar um editor de texto plano - vim, pico, joe ou executar a interface gráfica de configuração, fetchmailconf.
Desenvolvido por Eric S. Raymond, fetchmail é distribuído sob licença GPL através do seguinte site http://www.catb.org/~esr/fetchmail/.
Algumas características do fetchmail são:
Para instalar o fetchmail em sistemas GNU/Linux você precisa ter um compilador GCC instalado, bem como as bibliotecas padrões do sistema; qualquer distribuição já vem com o ambiente GCC instalado por padrão.
O processo de instalação abordado neste texto para GNU/Linux, pode ser implementado por qualquer distribuição, haja vista, que iremos obter os sources e compilar na máquina local.
Você também necessita baixar a última versão do fetchmail no site http://www.catb.org/~esr/fetchmail/. Quando estava escrevendo este texto a última versão estável do fetchmail é a 6.2.5, portanto:
$ wget http://www.catb.org/~esr/fetchmail/fetchmail-6.2.5.tar.gz fetchmail-6.2.5.tar.gz 40% of 1227 kB 27 kBps 00m27s
$ tar -zxvf fetchmail-6.2.5.tar.gz $ cd fetchmail-6.2.5/ $ ./configure $ make $ su Password: $ make install
O FreeBSD possui um banco de dados com mais de 10000 aplicativos prontos para instalar com simples comandos.
Este é o sistema de ports do FreeBSD e é o que escolhemos para efetuar a instalação do Fetchmail, bem como de todos os aplicativos contidos neste texto para este sistema. O usuário de qualquer sistema, seja ele plataforma proprietário ou não, sempre deverá manter o sistema atualizado, logo parto do pressuposto que seu sistema possui a árvore de ports atualizada, bem como os binários e o kernel, visando sempre a melhor performance e principalmente a segurançada informação.
Iremos instalar a versão mais recente do Fetchmail a partir dos ports. O port do fetchmail para FreeBSD fica localizado em /usr/ports/mail/fetchmail, logo siga os passos seguintes:
$ su Password: $ cd /usr/ports/mail/fetchmail $ make install clean
O comando acima efetuará o download do pacote, a compilação e instalação do binário fetchmail e fetchmailconf em /usr/local/bin, bem como suas as páginas de manuais e bibliotecas de suporte.
Para ver a versão do fetchmail instalada digite no shell:
$ fetchmail -V Este é o fetchmail versão 6.2.5+POP2+RPA+SDPS+SSL+OPIE+INET6+NLS Fallback MDA: (none) FreeBSD eclipse.freebsd.org 5.4-PRERELEASE FreeBSD 5.4-PRERELEASE #0: Sat Mar 19 14:02:49 BRT 2005 root@eclipse:/usr/src/sys/i386/compile/ECLIPSE i386 Utilizando opções da linha de comando Nenhum servidor de correio eletrônico configurado -- talvez /home/fredcox/.fetchmailrc esteja faltando?
Para que a interface gráfica fetchmailconf funcione é necessário ter o ambiente Pyhton instalado no seu sistema, bem como o módulo python py-tkinter, portanto entre com os seguintes comandos:
$ su Password: $ /usr/ports/lang/python $ make install clean
Também é necessário adicionar o módulo py-tkinter ao ambiente Python digitando os seguintes comandos:
$ su Password: $ cd /usr/ports/x11-toolkits/py-tkinter $ make install clean
Execute o fetchmailconf e uma janela semelhante a esta será mostrada:
Configurar o fetchmail consiste basicamente na criação e edição do arquivo ~/.fetchmailrc no diretório de usuário. Este arquivo deve conter a sintaxe descrita no manual do fetchmail e também possuir as informações necessárias para acessar sua caixa postal remota, tais como login, senha, protocolo, a fim de efetuar download total (POP3) ou parcial (IMAP) das mensagens de e-mail.
A configuração do fetchmail é bastante simples e interativa a partir da interface gráfica fetchmailconf. Vamos utilizar esta ferramenta, que já vem com a distribuição padrão do aplicativo, como base para configuração do .fetchmailrc neste texto.
Para iniciar a configuração siga os seguintes passos:
$ fetchmailconf
Uma janela semelhante a esta será mostrada:
A configuração do fetchmail, como já foi dito antes, consiste apenas da edição de um arquivo texto plano no diretório de usuário; o ~/.fetchmailrc.
Entre no diretório do usuário, para tanto, digite:
$ cd ~/
Crie um novo arquivo chamado .fetchmailrc - note o ponto no início do nome do arquivo - com seu editor de texto preferido vim, joe, pico ou emacs.
Exemplo:
$ cd ~/ $ vim ~/.fetchmailrc
O conteúdo do arquivo será as informações necessárias para checar sua caixa postal remota, note que você precisa especificar o login e senha, bem como protocolo de acesso. Comentários deverão ser precedidos de '#'.
# # arquivo : ~/.fetchmailrc # descrição : Configurações do Fetchmail # autor: Fred Cox # data : 03/04/2005 # ########## ## Seta as opções de log set logfile "/home/fredcox/fetchmail-log" ########## ## usuário da caixa postal set postmaster "fredcox" set bouncemail set no spambounce set properties "" ########## ### Configuração da primeira CX poll pop.servidor.com.br with proto POP3 user 'login' there with password 'senha' is 'login' here mda '/usr/local/bin/procmail'
Note que você poderá adicionar quantas contas de email quiser, para isso, adicione no final do arquivo o seguinte trecho:
poll pop.servidor2.com.br with proto POP3 user 'login' there with password 'senha' is 'login' here mda '/usr/local/bin/procmail'
Lembre-se de editar os campos referentes ao servidor, login, senha e protocolo utilizado pela sua conta de e-mail remota.
Na linha referente ao MDA você deve especificar o caminho completo do binário do procmail. Se você ainda não possui o procmail instalado no seu sistema, não se preocupe, no próximo capítulo aprenderemos a instalar e configurar o Procmail.
Segue alguns sites com informações extra sobre o Fetchmail.
Procmail é um rápido processador de e-mails e agente local de entrega LDA, que pode ser utilizado por um usuário do sistema ou por um administrador para processar e entregar as mensagens de e-mail em suas respectivas caixas de correio de acordo com condições (recipes) pré-definidas.
Este programa recebe as mensagens do fetchmail, através de um pipe, processa e entrega as mensagens de acordo com as condições escritas no arquivo de configuração ~/.procmailrc.
Com o Procmail você poderá analisar as mensagens de email antes mesmo delas serem entregues às suas respectivas caixas de correio e definir locais de entrega específicos de acordo com as condições e critérios do arquivo de configuração ~/.procmailrc.
Para configurar o Procmail utilize seu editor de texto plano preferido; vim, pico, joe ou emacs.
Os 2 formatos básicos de armazenamento de caixas de correio em ambiente GNU/Linux, BSD e MacOS-X, são eles: Maildir e Mailbox. Seu sistema provavelmente utiliza por padrão o formato mailbox e sua caixa de correio geralmente fica localizada em *var/mail/usuario// ou /*/var/spool/usuario.
O formato Maildir, como o próprio nome já diz, armazena as mensagens de email numa estrutura de diretórios e cada mensagen consiste de um arquivo independente. A medida que os e-mails vão chegando, eles vão sendo armazenados em um subdiretório new da caixa de correio.
O formato Mailbox armazena todas as mensagens em um único arquivo, também chamado de spool, este formato necessita que o arquivo de caixa de correio seja bloqueado (lock), para evitar que ele seja corrompido pelo agente de usuário.
Iremos adotar o Maildir neste texto porquê este formato apresenta vantagens sobre o mailbox, entre elas estão:
Para especificar Maildir com o Procmail basta acrescentar uma barra '/' no final da caixa de correio, exemplo:
:0 * ^TO_freebsd FreeBSD/
A tabela abaixo mostra os 3 tipos de especificações que podem ser utilizadas na configuração do Procmail.
Tradicional Unix mailbox | Formato Maildir |
---|---|
FreeBSD | FreeBSD/ |
Dicas-L | Dicas-L/ |
Perl | Perl/ |
Se o Procmail entregar a mensagem e a caixa de correio não existir ele criará automaticamente seja ela Maildir ou Mailbox, e a mensagem será entregue a caixa de correio específica.
Quando uma mensagem é entregue no formato Maildir, não é necessário utilizar lockiles, por isso a primeira linha de uma regra (recipe) não necessitará de 2 ponto de vírgulas, exemplo:
Você pode utilizar isto:
:0
A instalação do Procmail coberta por este texto em GNU/Linux será implementada a partir dos sources, logo, baixe a versão mais recente do Procmail no seguinte site:
Você precisa ter instalado o compilador GCC e as bibliotecas padrões para compilar o Procmail.
Instalação passo a passo:
$ wget http://www.procmail.org/procmail-3.22.tar.gz procmail-3.22.tar.gz 10% of 221 kB 8520 Bps
$ tar -zxvf procmail-3.22.tar.gz $ cd procmail-3.22/
$ su Password: $ make $ make install
$ procmail -v procmail v3.22 2001/09/10 Copyright (c) 1990-2001, Stephen R. van den Berg <srb@cuci.nl> Copyright (c) 1997-2001, Philip A. Guenther <guenther@sendmail.com> Submit questions/answers to the procmail-related mailinglist by sending to: <procmail-users@procmail.org> And of course, subscription and information requests for this list to: <procmail-users-request@procmail.org> Locking strategies: dotlocking, lockf() Default rcfile: $HOME/.procmailrc Your system mailbox: /var/mail/fredcox
A instalação do Procmail em FreeBSD será implementada, neste texto, a partir dos ports; nada impede que o leitor instale o aplicativo a partir dos sources.
Instalação passo a passo:
$ cd /usr/ports/mail/procmail/ $ su Password: $ make install clean
Procmail como já foi dito anteriormente, possibilita a realização de uma filtragem seletiva entregando as mensagens de acordo com as regras (recipes) estabelecidas pelo dono da caixa de correio.
Para criar suas regras (recipes) é necessário entender a anatomia das mesmas, portanto, a forma mais básica de uma regra do Procmail é:
:0 flags: ArquivodeBloqueio * condição1 * condição2 Ação
Onde as flags, o segundo ponto e o arquivo de bloqueio são opcionais. Neste documento só utilizaremos Arquivos de bloqueio (Lockfiles) quando integrarmos o Procmail com o Spamassassin; assunto que será discutido mais andiante.
O mínimo para estabelecer uma regra é então:
:0 Ação
O formato Maildir, proposto por este texto dispensa o uso de Lockfiles. Só é necessário utilizar Lockfiles em sistemas que utilizem o formato Mailbox, ou utilizando Spamassassin, visando evitar corromper o arquivo de email pelo agente de usuário enquanto o sistema entrega uma mensagem.
As flags servem para alterar o modo e o escopo de como uma regra será executada. Procmail utiliza as flags Hhb por default.
As flags são divididas em 4 tipos básicos: Escopo da mensagem, escopo da ação, controle de fluxo e execução.
Todas as regras no Procmail são case insensitive. Para tornar uma regra case sensitive você deverá especificar a flag D.
Se você quiser executar uma ação incondicionalmente, não especifique a condição, por exemplo:
# regra genérica :0 $DEFAULT
A regra acima processa todas as mensagens e direciona todas para a caixa de correio DEFAULT.
Uma ação do Procmail pode ser um encaminhamento de uma mensagem, um tratamento da mensagem pelo shell ou o direcionamento da mensagem para uma caixa de correio específica. Vamos estudar cada uma dessas ações.
| comando1 | comando 2Podemos atribuir a saída de um comando a uma variável.
VAR = | comando1 | comando2
Caixa de correio | Descrição |
---|---|
Inbox | formato mailbox |
Inbox/ | formato maildir |
Iremos estudar algumas das variáveis que podem ser especificadas alterando o modo como suas mensagens de email serão filtradas.
Considere a seguinte Regra:
:0 * ^Subject:.*teste Caixa_Teste/
Vamos decifrar a recipe acima passo a passo:
Agora, considere a seguinte regra:
:0 * ^TO_vim@vim.org Vim/
Notação | Descrição |
---|---|
:0 | indica o início de uma recipe |
* ^<TO_vim (a) vim org> | Corresponde à macro TO_ que procura no cabeçalho da mensagem pelos campos que comecem por To, Cc, Resent-To ou outro destino que tenha o email <vim (a) vim org>. |
Vim/ | ação que indica a caixa de correio que a mensagem será armazenada caso a condição seja satisfeita. |
Exemplo de um arquivo .procmailrc:
$ cat .procmailrc ################################################################### # arquivo : ~/.procmailrc # data : 02/04/2005 # autor : Fred Cox <fredcox@fredcoxjr.net> # descrição : Configurações para filtro de mensagens Procmail # ################################################################### ########## ## Definições de variáveis # Sell padrão SHELL=/bin/sh ############ ## Caminho para os binários PATH=/bin:/usr/bin:/usr/local/bin ############### ## Configurações de log LOGFILE=$HOME/ProcmailLog VERBOSE=yes LOGABSTRACT=all ###################### ### Configurações de sendmail SENDMAIL=/usr/local/bin/esmtp SENDMAILFLAGS="-v -X esmtp.log" ######################### #### Caixas de mensagens MAILDIR=$HOME/Msgs DEFAULT=$MAILDIR/Geral/ #Regras # The lock file ensures that only 1 spamassassin invocation happens # at 1 time, to keep the load down. # :0fw: spamassassin.lock * < 256000 | spamassassin # Mails with a score of 15 or higher are almost certainly spam (with 0.05% # false positives according to rules/STATISTICS.txt). Let's put them in a # different mbox. (This one is optional.) :0: * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\* Spam/ # All mail tagged as spam (eg. with a score higher than the set threshold) # is moved to "probably-spam". :0: * ^X-Spam-Status: Yes Spam/ # Work around procmail bug: any output on stderr will cause the "F" in "From" # to be dropped. This will re-add it. # NOTE: This is probably NOT needed in recent versions of procmail :0 * ^^rom[ ] { LOG="*** Dropped F off From_ header! Fixing up. " :0 fhw | sed -e '1s/^/F/' } :0 * ^TO_mercenariesclub@yahoogroups.com Clube_dos_Mercenarios/ :0 * ^TO_freebsd FreeBSD/ :0 * ^TO_shell-script@yahoogrupos.com.br shell-script/ :0 * ^Subject:.*Dicas-L Dicas-L/ :0 * ^TO_vim@vim.org vim/ :0 * ^TO_fredcox@terra.com.br Terra/ :0 * ^TO_fred.cox@terra.com.br Terra/ :0 * ^Subject:.*HUMOR_PIADAS Humor/ :0 * ^TO_php php/ :0 * ^TO_mutt-users@mutt.org mutt-users/ ############################ #Envia todas as mensagens para caixa principal :0 $DEFAULT
É possível construir regras inteligentes e de alguma complexidade. Por exemplo: podemos especificar várias caixas de correio em apenas uma recipe.
O operador de regras avançadas é o '\/'.
Observe o exemplo abaixo:
:0 * ^TO_\/(vim|mutt-users|humor) $MATCH/
Explicação da regra acima:
Notação | Descrição |
---|---|
:0 | início de uma recipe |
* ^TO_\/(vim|mutt-users|humor) | Macro que procura pelos campos To, Cc, Resent-To ou outro destino pelas palavras vim ou mutt-users ou humor. |
$MATCH | Ação que indica a variável especial que contém o casamento da condição. Por exemplo: Se o usuário receber uma mensagem da lista mutt-users então esta mensagem será direcionada para caixa de correio mutt-users. |
Antes de integrar o procmail você deve ter instalado o spamassassin no seu sistema. Proceda da seguinte maneira para instalar:
É necessário possuir o seguintes módulos Perl CPAN.
Baixe a versão mais recente dos módulos no site http://www.cpan.org e instale com os seguintes comandos:
$ tar -zxvf modulo-cpan.tar.gz $ cd modulo-cpan/ $ perl Makefile.PL $ make $ make install
$ wget http://apache.usp.br/spamassassin/source/Mail-SpamAssassin-3.0.2.tar.gz Resolving apache.usp.br... done. Connecting to apache.usp.br[143.107.253.167]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 996,164 [application/x-gzip] 100%[===============================================>] 996,164 55.93K/s ETA 00:00 14:51:34 (55.93 KB/s) - `Mail-SpamAssassin-3.0.2.tar.gz' saved [996164/996164]
$ tar -zxvf Mail-SpamAssassin-3.0.2.tar.gz $ cd Mail-SpamAssassin-3.0.2/
$ perl Makefile.PL $ make $ make install
Instalaremos o procmail a partir dos ports do FreeBSD. Para isso acesse o diretório *usr/ports/mail/p5-Mail-SpamAssassin* e proceda com os seguintes comandos.
$ cd /usr/ports/mail/p5-Mail-SpamAssassin/ $ make install clean
Edite o arquivo /etc/rc.conf e adicione a seguinte linha:
spamd_enable="YES" #for campus subnet and localhost spamc/spamd communications #spamd_flags="-i -A 129.97.50. -A 127.0.0.1 -c -d -r ${spamd_pidfile}" #for localhost spamc/spamd checks only #spamd_flags="-c -d -r ${spamd_pidfile}" spamd_flags="-c -d -r ${spamd_pidfile}"
Reinicie o sistema e verifique se o daemon spamd está carregado no seu sistema com o seguinte comando:
$ ps aux|grep spamd root 570 0,0 0,0 23116 8 ?? Is 15:05 0:00,72 /usr/local/bin/spamd -c -d -r /var/ root 633 0,0 6,2 25024 15408 ?? I 15:05 0:00,74 spamd child (perl5.8.6) root 634 0,0 6,0 24536 14868 ?? I 15:05 0:00,73 spamd child (perl5.8.6) root 635 0,0 0,0 24068 8 ?? I 15:05 0:00,28 spamd child (perl5.8.6) root 636 0,0 6,3 24312 15700 ?? I 15:05 0:00,63 spamd child (perl5.8.6) root 637 0,0 6,8 25664 17064 ?? I 15:05 0:00,63 spamd child (perl5.8.6) fredcox 1341 0,0 0,3 1504 824 p0 S+ 18:52 0:00,00 grep spamd
Edite o arquivo ~/.procmailrc e adicione o suporte a Spamassassin.
No exemplo abaixo todas as mensagens Spam serão salvas na pasta Spam. Você também pode especificar o ´buraco negro` /dev/null para que todas as mensagens marcadas como spam pelo spamassassin sejam automaticamente jogadas no lixo.
# Envia todas as mensagens para o Spamassassin avaliar :0fw: spamassassin.lock * < 256000 | spamassassin :0: * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\* Spam/ :0: * ^X-Spam-Status: Yes Spam/
Envie uma mensagem para você mesmo e verifique se o cabeçalho X-Spam-Status e X-Spam-Level aparecem na mensagem.
Exemplo:
Date: Fri, 8 Apr 2005 09:17:41 -0300 From: xxxxxxx@xxxxx.com.br To: xxxx@xxxx.net X-Spam-Status: No, score=0.3 required=5.0 tests=AWL,NO_REAL_NAME, UPPERCASE_25_50 autolearn=no version=3.0.2 Subject: Atençao- AMANHA TERA UM CHAT X-Spam-Level:
Segue uma lista com alguns sites que podem ser consultados para pesquisa sobre o Procmail.
Este capítulo explicará os procedimentos e as possíveis configurações e integrações que podemos efetuar com o cliente de email Mutt.
Mutt é software livre e pode ser copiado através do seguinte site: http://www.mutt.org/.
Algumas características do mutt são:
A instalação em GNU/Linux será implementada a partir dos sources, portanto baixe a versão mais recente do mutt no site http://www.mutt.org e siga os passos seguintes para compilar e instalar.
Para instalar o Mutt você necessitará de satisfazer as seguintes dependências:
Passos necessários:
$ wget ftp://ftp.mutt.org/mutt/devel/mutt-1.5.9i.tar.gz
$ tar -zxvf mutt-1.5.9i.tar.gz $ ./configure $ make $ make install
$ mutt -v Mutt 1.5.9i (2005-03-13) Copyright (C) 1996-2002 Michael R. Elkins and others. Mutt comes with ABSOLUTELY NO WARRANTY; for details type `mutt -vv'. Mutt is free software, and you are welcome to redistribute it under certain conditions; type `mutt -vv' for details. System: FreeBSD 5.4-STABLE (i386) [using ncurses 5.2] [using libiconv 1.9] Opções de compilação: -DOMAIN -DEBUG -HOMESPOOL +USE_SETGID +USE_DOTLOCK +DL_STANDALONE -USE_FCNTL +USE_FLOCK -USE_INODESORT +USE_POP +USE_IMAP -USE_GSS +USE_SSL -USE_GNUTLS -USE_SASL -USE_SASL2 +HAVE_REGCOMP -USE_GNU_REGEX +HAVE_COLOR +HAVE_START_COLOR +HAVE_TYPEAHEAD +HAVE_BKGDSET +HAVE_CURS_SET +HAVE_META +HAVE_RESIZETERM +CRYPT_BACKEND_CLASSIC_PGP +CRYPT_BACKEND_CLASSIC_SMIME -CRYPT_BACKEND_GPGME -BUFFY_SIZE -EXACT_ADDRESS -SUN_ATTACHMENT +ENABLE_NLS +LOCALES_HACK -HAVE_WC_FUNCS +HAVE_LANGINFO_CODESET +HAVE_LANGINFO_YESEXPR +HAVE_ICONV -ICONV_NONTRANS -HAVE_LIBIDN +HAVE_GETSID +HAVE_GETADDRINFO -USE_HCACHE -ISPELL SENDMAIL="/usr/sbin/sendmail" MAILPATH="/var/mail" PKGDATADIR="/usr/local/share/mutt" SYSCONFDIR="/usr/local/etc" EXECSHELL="/bin/sh" -MIXMASTER To contact the developers, please mail to <mutt-dev@mutt.org>. To report a bug, please use the flea(1) utility. patch-1.5.6+20040904.tg.mutt-thread.3 vvv.quote patch-1.5.0.ats.date_conditional.1 dgc.deepif.1 vvv.initials
Para instalar o Mutt no FreeBSD acesse o diretório /usr/ports/mutt, compile e instale o port.
$ cd /usr/ports/mutt $ make install clean
Mutt é um cliente de e-mail que possibilita combinações com diversos aplicativos, portanto, o domínio deste agente de usuário dependerá exclusicamente da leitura deste capítulo e da criatividade do leitor.
Com o Mutt é possível ler documentos html, pdf, power point, rtf, excel spreedsheet entre outros convertendo-os para modo texto ou associando suas extensões a aplicativos instalados no seu sistema.
É necessário antes de prosseguir com este capítulo, que o leitor esteja famialiarizado, possua conhecimentos de shell script, tenha noções básicas de como uma mensagem trafega na Internet e possua conhecimentos sobre variáveis de ambiente shell.
Mutt ler as suas configurações a partir do arquivo *etc/Muttrc// que possui as configurações padrão para todos os usuários do sistema. Se o usuário possuir o arquivo /*~/.muttrc ou ~/.mutt/muttrc essas configurações padrão são substituídas automaticamente para o usuário.
Depois que o arquivo de configuração do Mutt for editado é necessário reinicia o Mutt para que as configurações tenham efeito.
Os parâmetros do arquivo de configuração .muttrc possui a seguinte sintaxe:
Parâmetro | Descrição | Exemplo |
---|---|---|
set variavel=valor | Atribuição de valores à variáveis | set folder=~/Msgs/Geral |
source nome_do_arquivo | Carregar arquivo de configuração externo | source ~/.mutt/mutt-aliases |
alias apelido=endereco_de_email | utilizado para atribuir um apelido a um endereço de email longo | alias fred=<fredcox (a) fredcoxjr net> |
bind mode tecla função | atribue uma função a uma tecla | bind browser x check-new |
macro mode key sequence [description] | associa uma tecla a uma sequência de funções (macro) | macro index I "c!\n" "Go to Inbox" |
exec funcao1 funcao2 | executa uma sequência mas não mostra o resultado | exec <show-version> |
push sequence | executa sequência mostrando o resultado | push <show-version> |
color objeto primeiro_plano segundo_plano [expressao] | sintaxe de cores | color header yellow default "^from" |
[un]ignore regexp-list | ignora ou não de acordo com a expressão | unignore from: date subject to cc mail-followup-to reply-to posted-to |
hdr_order regexp-list | determina na qual o cabeçalho da mensagem é apresentado | hdr_order Date: From: To: Cc: |
alternates regexp-list | Especifica endereços de e-mail alternados para que o Mutt cheque nos cabeçalhos das mensagens | alternates "fredcox@fredcoxjr|webmaster@fredcoxjr" |
list regexp-list, subscribe regexp-list | Especifica listas de discussão na qual o seu endereço de e-mail não aparece | subscribe php-dev php-cvs pear-dev pear-cvs zend-engine-cvs engine2 |
mailboxes folder | define as caixas de correio | mailboxes ~/Msgs/Geral ~/Msgs/FreeBSD |
my_hdr string | define um cabeçalho de e-mail personalizado | my_hdr From: Fred Cox <<fredcox (a) fredcoxjr net>> |
ps: regexp - são expressões regulares
Alguns caracteres possuem significados especiais nas configurações do Mutt. São eles:
Caracter | Descrição | Exemplo |
---|---|---|
; | separador de comando | ls; uname -a |
# | encerra um comentário | #isto é um comentário |
$ | especifica uma variável no shell | $HOME |
cmd |
pega a saída do comando shell | date |
" " | usado para especificar strings | "Mutt o cliente de e-mail" |
As principais teclas de navegação no mutt são:
Tecla | Função | Descrição |
---|---|---|
j or Down | next-entry | move para o próximo item |
k or Up | previous-entry | move para o item anterior |
z or PageDn | page-down | próxima página |
Z or PageUp | page-up | página anterior |
= or Home | first-entry | vai para o início |
* or End | last-entry | vai para o final |
q | quit | sai do menu |
? | help | ajuda |
Mutt possui um editor que é utilizado para entrada de dados. As teclas são similares ao editor emacs:
Tecla | Função | Descrição |
---|---|---|
^A or <Home> | bol | vai para o início da linha |
^B or <Left> | backward-char | retorna 1 caracter |
Esc B | backward-word | retorna 1 palavra |
^D or <Delete> | delete-char | apaga caracter em cima do cursor |
^E or <End> | eol | move para o final da linha |
^F or <Right> | forward-char | avança 1 caracter |
Esc F | forward-word | avança 1 palavra |
<Tab> | complete | complementa |
^T | complete-query | completa o texto efetuando consulta |
^K | kill-eol | apaga o final de uma linha |
ESC d | kill-eow | apaga a última palavra |
^W | kill-word | apaga a palabra na frente do cursor |
^U | kill-line | apaga toda a linha |
<BackSpace> | backspace | apaga caracter na frente do cursor |
Esc u | upcase-word | converte para caixa alta |
Esc l | downcase-word | converte para caixa baixa |
Esc c | capitalize-word | copia uma palavra |
<Return> | n/a | finaliza edição |
O Mutt apresenta dois modos para ler e-mails; o índice de mensagens da caixa de correio, ´index´ e o conteúdo das mensagens, ´pager´.
O ´index´ mostra as mensagens contidas na caixa de correio. Algumas teclas de atalho são atribuída por default são:
Tecla | Descrição |
---|---|
c | muda de caixa de correio |
ESC c | alterna entre modo somente de leitura |
C | copia mensagem para outra caixa de correio |
ESC C | decodifica a mensagem e copia para uma pasta |
ESC s | decodifica a mensagem e salva para uma pasta |
D | deleta mensagens que casam com expressão |
d | apaga mensagem |
F | marca como importante |
l | mostra mensagens de acordo com expressão |
N | marca mensagem como nova |
o | troca o modo de ordenação |
O | ordena reversamente a caixa de correio |
q | salva mudanças e sai |
s | Salva mensagem |
T | marca mensagem que casa com expressão |
U | restaura mensagem de acordo com expressão |
u | restaura mensagem |
v | visualiza anexos |
x | abandona mudanças e sai |
<Return> | mostra mensagem |
<Tab> | pula para próxima mensagem |
@ | mostra o nome do autor e endereço de e-mail |
$ | Salva mudanças na caixa de correio |
/ | procura |
ESC / | procura reversa |
^L | apaga a tecla e redefine |
^T | desmarca mensagens que casem com expressão |
Flags de Status
Algumas flags podem aparecer acompanhando as mensagens, são elas:
Flag | Descrição |
---|---|
D | mensagem está marcada para ser excluída |
d | mensagem possui anexos marcados para exclusão |
K | contém assinatura digital |
N | nova mensagem |
O | mensagem antiga |
P | mensagem criptografada |
r | mensagem de resposta |
S | a mensagem contém uma assinatura digital e foi verificada com sucesso |
s | mensagem contém assinatura digital |
! | Importante |
* | marcada |
As flags seguintes indicam o estado do endereçamento da mensagem:
Flag | Descrição |
---|---|
+ | mensagem de você para você |
T | mensagem para você porém com o campo CC para outros |
C | mensagem com campo CC para você |
F | mensagem tem o campo From de você |
L | mensagem de subscribe numa lista de discussao |
Ao iniciar o Mutt, ele procura pela caixa postal do usuário do sistema, também chamada de spool de e-mail e fica localizada geralmente em /var/spool/mail/$USER. Para localizar sua caixa postal de sistema, digite o seguinte comando no shell:
$ echo $MAIL
Para trabalhar com e-mails no diretório de usuário, o Mutt utiliza o diretório ~/Mail por default. Algumas pessoas preferem ter o mailspool in diretório de usuário, para isso entre com a seguinte linha no ~/.muttrc:
set spoolfile=~Mail/inbox
No link abaixo você encontrará os arquivos de configurações necessários para configurar o Mutt. Vale a pena baixá-los, analisar e adaptar para seu ambiente.
Baixe aqui as minhas configurações do mutt]
Espero ter alcançado o propósito deste texto, cujo objetivo é somente uma abordagem introdutória do cliente de correio Mutt e suas possíveis integrações. Este texto ainda tem muito a ser acrescentado.
Posso afirmar, que o Mutt é o melhor, mais personalizável e seguro cliente de email que há na atualidade; utilizo-o intensamente.
Este documento ainda está em fase beta, se você possui disponibilidade para acrescentar conteúdo, peço que entre em contato com fredcox@fredcoxjr.net.
Dúvidas, críticas e sugestões também serão bem vindas.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários