Mail – Configuration Maildrop

Introduction

Ce document va expliquer la configuration de Maildrop pour avoir des filtres côté serveur pour les mails. Cela peut-être en fonction de tags dans les headers, de l’adresse source du mail, etc.

Cela s’applique aussi bien à une distribution Linux, testé sur Debian Sarge & Etch, que sur FreeBSD, testé en 6.2.

Dans ce document, les extraits de fichiers de configuration seront ceux de Debian.

 

Prérequis

Pas trop de prérequis là, il suffit d’avoir son Postfix configuré pour utiliser maildrop. Pour cela, il suffira d’avoir une ligne du style:

mailbox_command = maildrop

Pour des utilisateurs réels locaux, ou encore:

virtual_transport = maildrop

Pour des utilisateurs virtuels comme nous avons configuré dans ce document: Configuration de Postfix en backend LDAP. Je considérerais d’ailleurs que vous avez suivi ce document dans le reste de ce document.

Sur Debian, il faudra installer le paquet courier-maildrop. Alors que sur FreeBSD, il faudra installer le port: maildrop.

 

Configuration de Maildrop

Il y a plusieurs niveaux d’utilisation: le niveau global qui s’applique à tous les mails qui passent par Maildrop et un niveau pour chaque utilisateur.

 

Niveau global: maildroprc

Ce fichier se trouve dans le répertoire /etc/courier

Il sert par exemple à mettre dans le sous-répertoire Junk de la mailbox tous les spams. Il faut biensur avoir activer un antispam, pour cela, vous pouvez suivre le document suivant: Configuration de SpamAssassin et ClamAV.

Le fichier sera alors de la forme suivante:

if (/^X-Spam-Flag:.*YES/)
{
        exception {
                to $DEFAULT/.Junk/
        }
}

Ce qui correspond à: si on trouve le flag Spam, on met le mail dans le répertoire .Junk qui est un sous-répertoire de la inbox qui est ici représenté par $DEFAULT.

On peut aussi avec des cas plus complexes comme celui-ci qui permet de créer automatiquement la mailbox d’un utilisateur qui vient de recevoir pour la première fois un mail. Cela crée aussi les quelques sous-répertoires de base:

# Si la mailbox représenté par $DEFAULT n'existe pas
`test -e $DEFAULT/`
if ( $RETURNCODE != 0 )
{
  # On la crée
  `maildirmake $DEFAULT`
  #  ainsi que les quelques sous-répertoire de base
  `maildirmake -f Junk $DEFAULT`
  `maildirmake -f Sent $DEFAULT`
  `maildirmake -f Trash $DEFAULT`
  # Puis on change les droits
  `chmod -R go-rwx $DEFAULT`
}

On utilise des commandes linux de base grâce aux ` `

 

Niveau utilisateur: .mailfilter

Ce fichier se trouve dans le répertoire home de l’utilisateur. Dans le cas de nos utilisateurs virtuels, ça se trouve quelque part dans un sous-répertoire de /srv/vmail.

Ce fichier sera de la forme suivante:

# On définit où se trouve le maildir de l'utilisateur
# silencer est l'utilisateur dans cet exemple
MAILDIR=/srv/vmail/free-4ever.net/silencer/Maildir/

# Les mails qui viennent de debian-user@lists.debian.org
# sont mis dans le sous-répertoire .z_mailing_lists.debian-user
# de la inbox
# L'arborescence est un peu étrange dans une inbox, les clients IMAP
# crée les répertoires comme ça.
if (/.*debian-user@lists.debian.org/:h)
{
    to "$MAILDIR/.z_Mailing_lists.debian-user/"
}
On peut insérer d'autres filtres, faire des else, etc...
[...]
# Le reste des mails est déposé dans la inbox normale
to "$MAILDIR"

 

Application des modifications

Pas grand chose à faire, si on a modifié la configuration de Postfix, il faut le redémarrer.

Sinon, si c’est juste un changement dans les filtres, le fichier de configuration est lu à chaque lancement de maildrop quand Postfix l’appelle pour déposer un mail.

 

Mot de la fin

Cette configuration est très pratique pour avoir les filtres côté serveur si on utilise différents clients mail comme Thunderbird sur plusieurs machines ou encore un webmail.

A propos de webmail, Squirrelmail a un plugin qui permet de gérer ses filtres depuis l’interface web. Cela implique que le serveur web s’exécute avec le même utilisateur que celui qui dépose les mails, car les homedirs de nos utilisateurs virtuels appartiennent à cet utilisateur, vmail dans notre cas.

 

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s