Postfix: Adicionando disclaimer - Exceções de remetentes e arquivos diferentes por domínio

Publicado por Fabio Soares Schmidt em 18/01/2013

[ Hits: 4.362 ]

 


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

Postfix - Criando regras condicionais

Cyrus Aggregator - Serviço Sieve não conecta no Backend [Resolvido]

SpamAssassin e PostgreSQL: Erro: sintaxe de entrada é inválida para tipo bytea [Resolvido]

Compilando o Cyrus Imap 2.4.8 no Debian, sem Kerberos

Red Hat: Como adicionar o subscription number após a instalação

Leitura recomendada

Liberação de portas para e-mail

Erro ao carregar 'kio_pop3'

Personalizar logos no Zimbra

Instalando o corretor ortográfico em pt_BR no Thunderbird 1.5

Dovecot: userdb reply doesn't contain uid (change userdb socket permissions)

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts