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: 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.
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 -------------------------------------- ################################################## ### Local and Program Mailer specification ### ################################################## ##### @(#)local.m4 8.23 (Berkeley) 5/31/96 ##### 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.
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