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

Publicado por Fabio Soares Schmidt em 18/01/2013

[ Hits: 3.637 ]

 


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 <[email protected]>
# 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 [email protected] -f2`

#TRATA AS EXCECOES PRIMEIRO
if [ `grep -wi ^${from_address}$ ${EXCECOES_REMETENTES}` ]; then

$SENDMAIL -oi "[email protected]" <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 "[email protected]" <in.$$
exit $?

Obrigado.

Fabio Soares Schmidt
http://respirandolinux.wordpress.com

Outras dicas deste autor

Postfix: Adicionando disclaimer - Exceções de remetentes

Patch para Cyrus IMAP 2.4.x - erro: "Message contains bare newlines"

Failed to auto-start Oracle Net Listener using /ade/vikrkuma_new/oracle/bin/tnslsnr

Postfix - Copiar mensagens de remetentes ou destinatários específicos

Utilizando NAT em containers Openvz: Iptables: No chain/target/match by that name

Leitura recomendada

Desinstalando o Zimbra da forma correta

Patch para Cyrus IMAP 2.4.x - erro: "Message contains bare newlines"

OpenMailBox - Um servidor de e-mail gratuito e 100% Open Source!

Cyrus IMAP: Muitas mensagens "fetching user_deny" no log

Configurando o Thunderbird para trabalhar com contas Hotmail

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts