« Altermime » : différence entre les versions

De NCad Wiki
Aller à la navigation Aller à la recherche
Ligne 25 : Ligne 25 :
{{ Box_Console | objet=sudo ln -s /var/spool/altermime /var/spool/postfix/var/spool/altermime }}
{{ Box_Console | objet=sudo ln -s /var/spool/altermime /var/spool/postfix/var/spool/altermime }}


== Configuration de Postfix ==
== Configuration pour Postfix ==


=== Ajout du pipe dfilt au service SMTP ===
=== Ajout du pipe dfilt au service SMTP ===
Ligne 60 : Ligne 60 :
<br /><br />
<br /><br />
{{ Box_Attention | objet=Le contenu du fichier disclaimer.txt sera ajouté en fin des mails aussi à l’émission qu'à la réception. }}
{{ Box_Attention | objet=Le contenu du fichier disclaimer.txt sera ajouté en fin des mails aussi à l’émission qu'à la réception. }}
== Configuration pour Amavis ==


== Patch ==
== Patch ==

Version du 13 février 2014 à 12:12

.:[ Serveur de Messagerie ]:.

Installation >> Postfix avec MySQL

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 | Signature DKIM | Mailman | Maildrop


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 :

sudo apt-get install altermime

  • Création de l'utilisateur altermime :

sudo useradd -r -c "Postfix Disclaimer" -d /var/spool/filter altermime

  • Création du répertoire d'altermime avec les permissions adéquates :

sudo mkdir /var/spool/altermime
sudo chgrp altermime /var/spool/altermime
sudo chmod 750 /var/spool/altermime

  • ! :

sudo ln -s /var/spool/altermime /var/spool/postfix/var/spool/altermime

Configuration pour Postfix

Ajout du pipe dfilt au service SMTP

  • Dans le fichier /etc/postfix/master.cf, remplacer :
smtp      inet  n       -       n       -       -       smtpd
  • Par :
smtp      inet  n       -       n       -       -       smtpd
     -o content_filter=dfilt:

Définition du pipe dfilt

  • Ajouter à la fin du fichier /etc/postfix/master.cf :
dfilt   unix    -       n       n       -       -       pipe
      flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient}

Copie des scripts et fichiers de configuration

  • Copie du script d'exécution disclaimer :

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

  • Copie du pied-de-page inséré dans le mail :

sudo cp /usr/share/doc/altermime/examples/disclaimer.txt /etc/postfix/disclaimer.txt
sudo chgrp altermime /etc/postfix/disclaimer.txt
sudo chmod 750 /etc/postfix/disclaimer.txt



Le contenu du fichier disclaimer.txt sera ajouté en fin des mails aussi à l’émission qu'à la réception.

Configuration pour Amavis

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 $?

Sources