você está aqui: Home  → Arquivo de Mensagens

Configuração do programa Procmail

Colaboração: Jorge Luiz Godoy Filho

Data de Publicação: 24 de Abril de 1998

Essa mensagem e' nova. Estou escrevendo para ser a primeira (ou uma das) da serie sobre o procmail.

Pre-requisitos: existencia do pacote do procmail ja' instalado.

Configuracao do procmail:

Para ter o procmail funcionando e filtrando e-mail, editar os seguintes arquivos conforme conveniente:

   ---------- Arquivo ~/.procmailrc --- Permissoes: u=rw,g=r,o=r -----------=
  # Arquivo de configuracao do procmail.
  #
  # Versao 1.6
  #   21/03/98
  #
  
  # 1. Variaveis.
  
  SHELL=/bin/sh
  PATH=/bin:/usr/bin:/usr/local/bin
  MAILDIR=$HOME/mail                  # Deve existir!!!!
  LOGFILE=$MAILDIR/.log               # Log do que foi feito pelo procmail.
  VERBOSE=no
  SENDMAIL=/usr/sbin/sendmail
  FORMAIL=/usr/bin/formail
  
  
  # 2. Regras.
  #
  # Nota: ^TO satisfaz campos: TO, CC e BCC. ;o)) 
  # Nota2: Caso as inboxes nao existam, sao criadas automaticamente.
  
  # :0 c           # Habilitar para testes.
  # backup
  
  
  # Evitar cros-posting
  # 8K de "cache" para guardar os IDs das mensagens, que sao unicos.
  
  :0 Wh: msgid.lock
  | formail -D 8192 msgid.cache
  
    ----------------------------- NOTA / COMENTARIO ---------------------
  A regra acima cria um arquivo chamado ~/mail/msgid.cache onde sao=
  guardados os IDs das mensagens recebidas, de modo que se ele existir ali,
  a mensagem e' descartada.
  
   ------------------------------- CONTINUACAO -------------------------
  # Regras para listas de discussao.
  # Mudadas de ^TO para ^Sender pois havia mensagens que nao eram filtradas
  # corretamente.
  
  :0: dicas-l.lock
  * ^Sender:.*dicas-l-owner
  dicas-l
  
  :0: bugtraq.lock
  * ^Sender:.*BUGTRAQ
  bugtraq
  
  :0: bugtraq.lock
  * ^X-Mailing-List:.*linux-security
  bugtraq
  
   -------------------------- NOTA / COMENTARIO ---------------------------
  Todas as mensagens possuem o campo Sender ou X-Sender. As regras acima
  separam as mensagens de algumas listas de discussao dea cordo com o Sender
  da mensagem. Adotei essa medida pois nessas listas acima relacionadas, o
  Sender da mensagem e' alterado para o nome da lista.
  
  Uma outra alternativa, e' usar o campo X-Mailing-List. Infelizmente, nao
  sao todas as listas que definem esse campo. (Ja' vi tambem o campo List)
  ------------------------------ CONTINUACAO -----------------------------
  
  :0: lie-ldp.lock
  * ^TOlie
  lie-ldp
  
  :0: lie-ldp.lock
  * ^TOldp
  lie-ldp
  
  --------------------------- NOTA / COMENTARIO -------------------------
  No caso das duas listas acima, nao ha' o campo X-Mailing-List e o Sender
  da mensagem nao e' alterado. A lista apenas reencaminha as mensagens para
  os demais recipientes, mantendo os cabecalhos originais ou fazendo
  alteracoes nao comuns.
  A solucao que encontrei/optei foi o uso do campo do destinatario (TO, CC,
  BCC & cia) para a filtragem das mensagens.
  ------------------------------ CONTINUACAO ----------------------------
  
  :0: bestway.lock
  * ^From.*webmaster@bestway.com.br
  bestway
  
  -------------------------- NOTA / COMENTARIO -------------------------
  Pode-se ainda, filtrar e-mails de acordo com o nome do usuario que enviou
  a mensagem. Essa informacao vem contida no campo FROM.
  ------------------------------ CONTINUACAO --------------------------
  
  # Filtro para chain-mail.    --- Funciona OK.
  #
  # :0: chain.lock
  # * ^TO*@*, *@*, *@*
  # chain
  
  ----------------------------- NOTA / COMENTARIO ----------------------
  Se voce nao e' fa daquelas mailing-lists, essa regra acima joga todas as
  mensagens para um arquivo chamado ~/mail/chain. Voce pode redirecionar=
  para /dev/null... ;))
  ------------------------------- CONTINUACAO -------------------------
  
  
  # E-mails que nao satisfazem as regras acima sao colocados em $DEFAULT
  # ou seja, na inbox em /var/spool/mail/$USERNAME
  --------------------------------------------------------------------------

No exemplo acima, as pastas referenciadas sao criadas em ~/mail/ e sao= automaticamente geradas pelo procmail caso nao existam. As permissoes da pasta devem ser de rw para o owner, apenas. $DEFAULT e' a pasta padrao, que e' /var/spool/mail/$USERNAME por padrao.

O seguinte arquivo deve ser colocado no HOME do usuario, mudando-se apenas o username apos o sinal "#".

  ----------- Arquivo ~/.forward ------- Permissoes:u=rw,g=r,o=r ------------=
  "|IFS=' '&&exec /usr/bin/procmail -f-||exit 75 #jorge"
  ---------------------------------------------------------------------------

Nao esquecer das aspas!!!! :o)

Maiores informacoes: man procmail man procmailrc man procmailex <--- MUITO boa!!!


Esse e' um arquivo que mantenho aqui para referencia em futuras instalacoes/upgrades. ;)

Uma coisa que notei e' que o arquivo .forward pode ser eliminado. A condicao para essa eliminacao e' que conste no /etc/sendmail.cf o seguinte trecho:

   ----------------------------- CUT --------------------------------------
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>##
  < A NAME="note#   Local and Program Mailer specification   " HREF="#textnote#   Local and Program Mailer specification   ">< SUP>#   Local and Program Mailer specification   #
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>##
  
  < A NAME="note" HREF="#textnote">< SUP>#  @(#)local.m4     8.23 (Berkeley) 5/31/96  < A NAME="note" HREF="#textnote">< SUP>#
  
  Mlocal,         P=/usr/bin/procmail, F=lsDFMAw5:/|@qShP, S=10/30, R=20/40,
                  T=DNS/RFC822/X-Unix,
                  A=procmail -a $h -d $u
   ------------------------------ CUT -------------------------------------
  
  (Repare que o mailer local e' o procmail!!! --- Se existirem essas
  linhas, recomendo que NAO seja usado o .forward)
  
  Mas, voce pode estar se perguntando... Como farei para manter um arquivo
  com a finalidade original do .forward??? 
  Simples! Crie uma regra para isso e, ao inves de inves de indicar o nome
  de uma pasta, referencie um e-mail. Nao esqueca de colocar a mesma regra
  DUAS vezes, uma com a opcao ":0 c" para que a mensagem seja enviada e
  outra com ":0:" para que encerre o processamento sobre aquela mensagem,
  colocando-a na pasta correta.
  
  Como elaborar suas proprias regras? 
  Siga a receita abaixo ;))

:0 opcoes_do_procmail: arquivo_de_lock_das_mensagens * ^Campo_valido_do_e-mail:.regra_a_ser_satisfeita * ^outro_campo:.outra_regra * ^outro_campo:.outra_regra_a_ser_satisfeita . . . folder_destino_para_a_mensagem.

  Repare que voce pode ter um numero consideravel de regras, mas apenas UMA
  linha com pasta destino. As regras tambem devem constar UMA em cada linha.


Veja a relação completa dos artigos de Jorge Luiz Godoy Filho

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script