Ce tutoriel explique comment installer et configurer le plugin sieve pour le filtrage automatique des emails sur un serveur mail postfix/dovecot installé sur une distribution Ubuntu serveur 12.04.

Pré-requis : Installation du serveur mail et mise à jour pour Ubuntu 12.04.

La première étape consiste à installer le paquet contenant le plugin sieve pour dovecot : ce plugin n’est pas disponible dans l’installation de base de dovecot :

sudo apt-get install dovecot-sieve

En super-utilisateur, on édite ensuite le fichier /etc/dovecot/dovecot.conf :

  • pour demander à dovecot d’utiliser sieve, on modifie la section protocol lda
    protocol lda {
      auth_socket_path = /var/run/dovecot/auth-master
      log_path =
      mail_plugins = sieve
      postmaster_address = tuxette@domain-name.com
    }
  • puis on précise l’emplacement du fichier de règles (je n’utiliserai, dans la suite, que le fichier global sieve_global_pathqui applique les mêmes filtres pour tous les utilisateurs :
    plugin {
      sieve = /home/mail/%d/%n/Maildir/.dovecot.sieve
      sieve_dir = /home/mail/%d/%n/Maildir/sieve
      sieve_global_path = /home/mail/sieve.default
    }

Sous l’utilisateur mailuser on édite enfin le fichier /home/mail/sieve.default pour faire un essai de règle :

sudo su mail
cd /home/mail
nano sieve.default

dans lequel on copie, par exemple, la règle suivante :

require ["fileinto"];
if header :contains "subject" ["[SPAM]", "[MESSAGE MARQUE SPAM]"] {
  fileinto "Junk";
} else {
  keep;
}

qui déplacera les messages contenant [SPAM] et [MESSAGE MARQUE SPAM] dans la boîte “Junk” (la boîte aux lettres doit avoir été préalablement créée dans /home/mail/%d/%n/Maildir). D’autres exemples de règles de filtrage peuvent être trouvés à ce lien.

En guise d’essai, envoyez vous un message à une des adresses de votre serveur mail. Le fichier de log doit alors contenir une ligne du type

Aug 19 17:40:09 SERVER dovecot: lda(tuxette@domain-name.org): sieve: msgid=<xxxxx>: stored
mail into mailbox 'Junk'

et le message doit avoir été stocké dans la boîte “Junk”.