Logo
You
Code

Disclamer en Postfix con alterMIME en Debian

Autor YouCode - http://www.youcode.com.ar/postfix/disclamer-en-postfix-con-altermime-89

En este artículo aprenderemos como agregar los disclamers en los mails usando alterMIME

Primero instalamos el altermime

apt-get install altermime

Creamos el usuario filter  con su home en /var/spool/filter

useradd -r -c "Postfix Filters" -d /var/spool/filter filter
mkdir /var/spool/filter
chown filter:filter /var/spool/filter
chmod 750 /var/spool/filter

Creamos el script para postfix, aunque en Debian ya existe y podemos copiarlo:

cp /usr/share/doc/altermime/examples/postfix_filter.sh /etc/postfix/disclaimer
chgrp filter /etc/postfix/disclaimer
chmod 750 /etc/postfix/disclaimer

el problema de este script es que no distingue el correo entrante y saliente, para solucionar esto, vamos a decirle a Postfix a que correos queremos que le agregue el disclamer porque sino, se lo agregara a todas las cuentas y eso no queremos que pase.
Creamos el archivo

vi /etc/postfix/disclaimer_addresses

y agregamos las siguientes lineas, tener presente que deben poner las direcciones de mail que ustedes quieran.

falko@example.com
joe@example.org
tom@example.net

Ahora abrimos /etc/postfix/disclaimer y lo dejamos tal cual el siguiente codigo

vi /etc/postfix/disclaimer
#!/bin/sh
# Localize these.
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail

####### Changed From Original Script #######
DISCLAIMER_ADDRESSES=/etc/postfix/disclaimer_addresses
####### Changed From Original Script END #######

# 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; }

####### Changed From Original Script #######
# obtain From address
from_address=`grep -m 1 "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1`

if [ `grep -wi ^${from_address}$ ${DISCLAIMER_ADDRESSES}` ]; then
  /usr/bin/altermime --input=in.$$ \
                   --disclaimer=/etc/postfix/disclaimer.txt \
                   --disclaimer-html=/etc/postfix/disclaimer.txt \
                   --xheader="X-Copyrighted-Material: Please visit http://www.company.com/privacy.htm" || \
                    { echo Message content rejected; exit $EX_UNAVAILABLE; }
fi
####### Changed From Original Script END #######

$SENDMAIL "$@" <in.$$

exit $?

Ahora creamos el archivo de texto que tendra el contenido del disclamer, lo creamos en /etc/postfix/disclaimer.txt , pero como ya esta en debian, lo copiamos

cp /usr/share/doc/altermime/examples/disclaimer.txt /etc/postfix/disclaimer.txt

Ahora le decimos a postfix que lo use, para esto editamos el master.cf (hagan backup antes)

vi /etc/postfix/master.cf
#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd
   -o content_filter=dfilt:
[...]

y al final del archivo agregamos

[...]
dfilt     unix    -       n       n       -       -       pipe
    flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient}

solo falta reiniciar postfix con

/etc/init.d/postfix restart

ya esta! disclamers agregados en las direcciones de mail que indicamos en el archivo.

http://www.youcode.com.ar/postfix/disclamer-en-postfix-con-altermime-89