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.Error: No site found with the domain 's2.dicas-l.com.br' (Learn more)