Livraison locale
 27/04/2007
 Christian CALECA 
Liste des cours

Accueil ] [ Daemontools et ucspi-tcp ] [ Qmail & co. ] [ Vpopmail ] [ Essais divers ] [ courier-imap ] [ POP3 ] [ outils admin ] [ Ezmlm-idx ] [ qmailadmin ] [ Filtrage des mails ] [ Livraison locale ] [ Conclusions ]


Que faire des spams ?

Très clairement, la lecture de sa messagerie devrait passer par IMAP plutôt que par POP, mais chacun est libre, n'est-ce pas ?

Avec POP3

L'utilisateur n'aura accès qu'au répertoire "INBOX". Il ne pourra donc pas profiter des possibilités de dossiers de rangement distants. Dans un tel cas, il ne faut pas prendre l'initiative de placer les spams dans un dossier spécial, au moment de la livraison. En effet, ils vont s'y accumuler sans aucun moyen pour l'utilisateur de consulter ni de purger ce dossier.

La meilleure approche dans ce cas est sans doute de laisser l'utilisateur trier localement en fonction du marquage de spamassassin.

Avec IMAP

Ici, l'utilisateur peut accéder à un dossier de rangement. Deux choix sont alors possibles :

Bien sûr, c'est au client de choisir ce qu'il préfère.

Nous allons utiliser le MDA maildrop pour éventuellement filtrer à la livraison du message. L'utilisateur pourra décider si oui ou non il souhaite ce service, par l'intermédiaire de l'interface qmailadmin.

Maildrop

Installation

Installons d'abord la librairie libpcre3-dev :

apt-get install libpcre3-dev

et allons-y...

cd /usr/local/src/tar
wget http://prdownloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2
cd ..
tar xjf tar/maildrop-2.0.4.tar.bz2
cd maildrop-2.0.4
./configure --sysconfdir=/etc/courier \
            --enable-maildrop-uid=vpopmail \
            --enable-maildrop-gid=vchkpw
make
make install-strip
make install-man

Il est possible, techniquement, de laisser le soin à chaque utilisateur de définir son fichier de configuration, mais pratiquement, ceci pose de nombreux problèmes. Nous nous contenterons donc d'un filtrage "passe partout", que l'utilisateur pourra activer ou non.

Lorsque nous avons configuré qmailadmin, nous avons éventuellement choisi les options :

--enable-modify-spam \
--enable-spam-command="| /usr/bin/maildrop ../mailfilter"

La  première permet de faire apparaître une case à cocher supplémentaire dans l'interface :

qmailadmin

Si cette case est cochée, un fichier .qmail sera créé dans le répertoire virtuel de l'utilisateur :

ls -la /home/vpopmail/domains/maison.mrs/prof/
total 16
drwx------   3 vpopmail vchkpw   48 2006-03-28 19:12 .
drwx------   5 vpopmail vchkpw 4096 2006-03-26 19:18 ..
-rw-------   1 vpopmail vchkpw    4 2006-03-26 19:45 lastauth
drwx------  11 vpopmail vchkpw 4096 2006-03-26 19:10 Maildir
-rw-------   1 vpopmail vchkpw   34 2006-03-28 19:12 .qmail

Et ce fichier contiendra ce qui a été défini dans la seconde option de configuration :

cat /home/vpopmail/domains/maison.mrs/prof/.qmail
| /usr/bin/maildrop ../mailfilter

Reste à étudier un peu la syntaxe des fichiers de filtrage maildrop et de réaliser un fichier convenable dans /home/vpopmail/domains/maison.mrs/ :

cat /home/vpopmail/domains/maison.mrs/mailfilter
SHELL="/bin/bash"
VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`

# Creation d'un dossier "Spam" s'il n'existe pas encore
DUMMY=`test -d $VHOME/Maildir/.Spam`
if ( $RETURNCODE == 1 )
{
    DUMMY=`/usr/bin/maildirmake -f Spam $VHOME/Maildir/`
    DUMMY=`echo INBOX.Spam >> $VHOME/Maildir/courierimapsubscribed`
}

# Distribution suivant le marquage de Spamassassin
if (/^X-Spam-Status: *Yes/)
{
    exception {
        to "$VHOME/Maildir/.Spam/"
    }

}
else
{
    to "$VHOME/Maildir/"
}
# /home/vpopmail/bin/vuserinfo -d prof@maison.mrs
/home/vpopmail/domains/maison.mrs/prof

Ici, le script teste la présence d'un répertoire IMAP "Spam" et le crée s'il n'existe pas, puis l'ajoute à la liste des dossiers souscrits par le client (ce n'est pas du tout obligé de le faire, surtout si le client sait correctement utiliser IMAP).

Dans la deuxième partie du script, si une ligne du message commence par  "X-Spam-Status: " et contient "Yes", le message sera placé dans le répertoire Spam, sinon, il sera placé dans le répertoire de base.

Bien entendu, ceci n'est qu'un exemple, il est sûrement possible de faire mieux.

Il est possible aussi, par cette méthode, de faire passer les messages dans spamassassin à ce niveau plutôt que dans qmail-queue. A vous de voir ce qui vous convient le mieux.

maildrop est un MDA très puissant, probablement plus que procmail, malheureusement assez mal documenté. Les utilisateurs rompus aux charmes de procmail pourront sans doute trouver une solution très comparable, avec leur MDA coutumier.


Précédente ] [ Accueil ] [ Suivante ]