Postfix: Adicionando disclaimer - Exceções de remetentes e arquivos diferentes por domínio
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 possibilidade de incluir disclaimers diferentes com base no domínio de origem.
Todos os passos para configuração devem ser seguidos conforme o primeiro tutorial:
Postfix adicionando Disclaimer em mensagens, substituindo o script pelo que é apresentado neste 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 disclaimers 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:
#!/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/filter
SENDMAIL=/usr/sbin/sendmail
#REMETENTES QUE NAO DEVEM TER O DISCLAIMER INSERIDO
EXCECOES_REMETENTES=/etc/postfix/excessoes_remetente
#DEFINIMOS QUAL DISCLAIMER DEVE SER INSERIDO PARA CADA DOMINIO
DISCLAIMER1=/etc/postfix/dominios-disclaimer1.txt
DISCLAIMER2=/etc/postfix/dominios-disclaimer2.txt
# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_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 EXCECAO
from_address=`grep -m 1 "From:" in.$$ | cut -d " " -f 2 | cut -d " " -f 1`
# FAZ A PESQUISA DO DOMINIO REMETENTE PARA ADICIONAR O DISCLAIMER DESEJADO
from_domain=`grep -m 1 "From:" in.$$ | cut -d " " -f 2 | cut -d " " -f 1 | cut -d@ -f2`
#TRATA AS EXCECOES PRIMEIRO
if [ `grep -wi ^${from_address}$ ${EXCECOES_REMETENTES}` ]; then
$SENDMAIL -oi "$@" <in.$$
exit $?
#CONSULTA O DOMINIO DO REMENTE PARA ADICIONAR O DISCLAIMER
CORRESPONDENTE
elif [ `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 $?
Obrigado.
Fabio Soares Schmidt
http://respirandolinux.wordpress.com
Outras dicas deste autor
Utilizando NAT em containers Openvz: Iptables: No chain/target/match by that name
Zimbra: Melhorando eficácia do seu anti-Spam
Expresso Livre: Corrigindo erros de atualização para versão 2.5
Zimbra: Aplicando patch de segurança para vulnerabilidade de CCS Injection (CVE-2014-0224)
Apache com mod_proxy para múltiplos endereços
Leitura recomendada
Vacuum no SQLite - melhorando a performance do Evolution
Thunderbird - Erro: Data errada de recebimento de e-mail [Resolvido]
Postfix - Criando regras condicionais
Exim trabalhando de modo case insensitive
Postfix - Efetuando relay em hosts que exigem autenticação e nas portas SUBMISSION ou SMTPS
Comentários
Nenhum comentário foi encontrado.