Altermime
.:[ Serveur de Messagerie ]:.
Filtrage anti-spam : Anti-Spam SpamAssassin | Anti-Virus Clamav
Filtrage anti-virus : Plateforme de filtrage Amavis >> Amavis avec MySQL
Plus de fonctions : Ajouter un Disclaimer | DKIM Proxy | OpenDKIM | Mailman | Maildrop | DANE | SPF
Clients de messagerie : Configurer Thundirbird | Configurer Roundcube
Pour aller plus loin : Commandes messagerie | DNSBL | MX Backup
|
|
Une révision de cette article est planifiée suite à la mise à jour de l'article principale sur Postfix. |
Installation
- Installation du paquet altermime :
|
|
|
- Création de l'utilisateur altermime :
|
|
|
- Création du répertoire d'altermime avec les permissions :
|
|
|
- Lien vers le répertoire si Postfix est chrooté :
|
|
|
Configuration de Postfix
Modifications de main.cf
Ajout du pipe dfilt au service SMTP
- Rechercher (à la première ligne) :
smtp inet n - n - - smtpd
- Et remplacer par :
smtp inet n - n - - smtpd
-o content_filter=dfilt:
Définition du pipe dfilt
- Ajouter à la fin du fichier :
dfilt unix - n n - - pipe
flags=Rq user=filter argv=/opt/zimbra/postfix/conf/disclaimer -f ${sender} -- ${recipient}
Copie des scripts et fichiers de configuration
- Copie du script d'exécution disclaimer :
|
|
|
- Copie du pied-de-page inséré dans le mail :
|
|
|
|
|
Le contenu du fichier disclaimer.txt sera ajouté en fin des mails aussi à l’émission qu'à la réception. |
Patch
#!/bin/sh
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail
LOCAL_DOMAIN1=domain1.com
LOCAL_DOMAIN2=domain2.com
RECIP=`echo $* | awk '{print $NF}'| tr [A-Z] [a-z]`
RECIP_DOMAIN=`echo $RECIP | awk -F"@" '{print $2}'`
SENDER=`echo $* | awk '{print $2}'| tr [A-Z] [a-z]`
SEND_DOMAIN=`echo $SENDER | awk -F"@" '{print $2}'`
# 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; }
if [ "$RECIP_DOMAIN" = "$SEND_DOMAIN" ]; then
/usr/bin/altermime --input=in.$$ \
--disclaimer=/etc/postfix/disclaimers.txt \
--disclaimer-html=/etc/postfix/disclaimers.txt \
--xheader="X-Copyrighted-Material:" || \
{ echo Message content rejected; exit $EX_UNAVAILABLE; }
elif [ "$SEND_DOMAIN" = "$LOCAL_DOMAIN2" ]; then
/usr/bin/altermime --input=in.$$ \
--disclaimer=/etc/postfix/domain2.txt \
--disclaimer-html=/etc/postfix/domain2.txt \
--xheader="X-Copyrighted-Material: Please visit http://www.domain2.com/privacy.htm" || \
{ echo Message content rejected; exit $EX_UNAVAILABLE; }
elif [ "$SEND_DOMAIN" = "$LOCAL_DOMAIN1" ]; then
/usr/bin/altermime --input=in.$$ \
--disclaimer=/etc/postfix/domain1.txt \
--disclaimer-html=/etc/postfix/domain1.txt \
--xheader="X-Copyrighted-Material: Please visit http://www.domain1.com/privacy.htm" || \
{ echo Message content rejected; exit $EX_UNAVAILABLE; }
else
/usr/bin/altermime --input=in.$$ \
--disclaimer=/opt/zimbra/postfix/conf/disclaimers/emptydisclaimer.txt \
--disclaimer-html=/opt/zimbra/postfix/conf/disclaimers/emptydisclaimer.txt \
--xheader="X-Copyrighted-Material: " || \
{ echo Message content rejected; exit $EX_UNAVAILABLE; }
fi
$SENDMAIL -i "$@" <in.$$
exit $?