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

Publicado por Fabio Soares Schmidt em 18/01/2013

[ Hits: 4.198 ]

 


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 - Entregando para diferentes rotas no mesmo ambiente

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

Otimizando o squid: Abortando solicitações interrompidas

Liberar o MSN para usuários determinados

Oracle 11g - erro: An unexpected error has been detected by HotSpot Virtual Machine

Leitura recomendada

Erro no Sendmail: "Deferred: 403 4.7.0 TLS handshake failed" (solucionado)

Bloqueio por extensões no Postfix

Acompanhar logs do Zimbra por usuários

Postfix - Ativando porta 587 SMTP

Problema com fuso horário no Sendmail

  

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