Seguindo a série de tutoriais sobre Disclaimer (ou footer) com Postfix, apresento um script mais elaborado que contempla exceções de remetentes que não devem ter o Disclaimer inserido e a possibildiade de incluir Disclaimers diferentes com base no domínio de origem. Todos os passos para configuração devem ser seguidos conforme o primeiro artigo: https://respirandolinux.wordpress.com/2012/12/18/postfix-adicionando-disclaimer-todas-as-mensagens-enviadas/, substituindo o script pelo que é apresentado nesse tutorial.
Antes de publicar o post explico a lógica utilizada, onde primeiramente serão tratadas as exceções, os remetentes devem ser incluídos no arquivo definido pela variável EXCECOES_REMETENTES. Após tratar as exceções, será feito o tratamento para definir qual o arquivo que deve ser utilizado, o script contempla dois disclaimers, os domínios para qual cada um será aplicado é definido pelas variáveis DISCLAIMER1 e DISCLAIMER2. Os arquivos com os Disclaimer estão como disclaimer1.txt e disclaimer2.txt conforme pode ser visto no Script.
Obs.: É recomendável criar um diretório específico para armazenar as configurações e arquivos contendo os disclaimers, para uma melhor organização.
Segue o script, que também está publicado em https://github.com/fsschmidt/postfix/blob/master/Disclaimer/disclaimer-pordominio.sh:
#!/bin/sh# Fabio S. Schmidt <fabio@improve.inf.br># 06/Jan/2013# Contempla excecoes de remetentes que nao terao o disclaimer inserido# e disclaimers especificos de acordo com o dominio do remetente# Localize these.INSPECT_DIR=/var/spool/filterSENDMAIL=/usr/sbin/sendmail#REMETENTES QUE NAO DEVEM TER O DISCLAIMER INSERIDOEXCECOES_REMETENTES=/etc/postfix/excessoes_remetente#DEFINIMOS QUAL DISCLAIMER DEVE SER INSERIDO PARA CADA DOMINIODISCLAIMER1=/etc/postfix/dominios-disclaimer1.txtDISCLAIMER2=/etc/postfix/dominios-disclaimer2.txt# Exit codes from <sysexits.h>EX_TEMPFAIL=75EX_UNAVAILABLE=69# Clean up when done or when aborting.trap “rm -f in.$$” 0 1 2 3 15# Start processing.cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit$EX_TEMPFAIL; }cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }#FAZ A PESQUISA DO REMETENTE PARA A EXCECAOfrom_address=`grep -m 1 “From:” in.$$ | cut -d ” ” -f 2 | cut -d ” ” -f 1`# FAZ A PESQUISA DO DOMINIO REMETENTE PARA ADICIONAR O DISCLAIMER DESEJADOfrom_domain=`grep -m 1 “From:” in.$$ | cut -d ” ” -f 2 | cut -d ” ” -f 1 | cut -d@ -f2`#TRATA AS EXCECOES PRIMEIROif [ `grep -wi ^${from_address}$ ${EXCECOES_REMETENTES}` ]; then$SENDMAIL -oi “$@” <in.$$exit $?#CONSULTA O DOMINIO DO REMENTE PARA ADICIONAR O DISCLAIMER CORRESPONDENTEelif [ `grep -wi ^${from_domain}$ ${DISCLAIMER1}` ]; then/usr/bin/altermime –input=in.$$ \–disclaimer=/etc/postfix/disclaimer1.txt \–disclaimer-html=/etc/postfix/disclaimer1.html \–xheader=”X-Copyrighted-Material: Colocar o site da empresa aqui http://www.company.com/privacy.htm” || \{ echo Message content rejected; exit $EX_UNAVAILABLE; }elif [ `grep -wi ^${from_domain}$ ${DISCLAIMER2}` ]; then/usr/bin/altermime –input=in.$$ \–disclaimer=/etc/postfix/disclaimer2.txt \–disclaimer-html=/etc/postfix/disclaimer2.html \–xheader=”X-Copyrighted-Material: Colocar o site da empresa aqui http://www.company.com/privacy.htm” || \{ echo Message content rejected; exit $EX_UNAVAILABLE; }fi### ENVIA A MENSAGEM APOS INSERIR O DISCLAIMER DESEJADO ###$SENDMAIL -oi “$@” <in.$$exit $?
Um comentário sobre “Postfix: Adicionando disclaimer – Exceções de remetentes e arquivos diferentes por domínio”