Si on est inscrit à deux mailing-lists, et qu’un mail est envoyé à ces deux mailing-lists, alors on va le recevoir deux fois. Ou même si on est simplement en copie du mail envoyé à la mailing list. Il est possible de supprimer ces doublons, en se basant sur vnd.dovecot.duplicate. C’est une extension sieve. Le principe est que chaque mail contient un « msgid » unique, et le plugin se base sur cet ID afin de détecter les doublons.

Sous Debian, Pingeonhole s’installe de la façon suivante :

apt-get install dovecot-sieve dovecot-managesieved

Ensuite, il faut activer le plugin dans la configuration dovecot. Le plugin est disponible à partir de la version 0.3.1 de Pigeonhole.

vim /etc/dovecot/conf.d/90-sieve.conf
plugin {
  sieve = ~/.dovecot.sieve
  sieve_default = /var/lib/dovecot/sieve/default.sieve
  sieve_dir = ~/sieve
  sieve_global_dir = /var/lib/dovecot/sieve/global/
  sieve_extensions = +vnd.dovecot.duplicate
}

Il faut redémarrer dovecot pour que les changements soient pris en compte:

/etc/init.d/dovecot restart

Puis on crée le répertoire dans lequel on va placer notre règle globale (pour tous les utilisateurs) :

mkdir -p /var/lib/dovecot/sieve/global
chown -R vmail:mail /var/lib/dovecot
chmod u+x /var/lib/dovecot

Il est aussi possible d’appliquer cette règle uniquement pour certains utilisateurs, voir la documentation Dovecot

Enfin, on crée la règle dans le fichier /var/lib/dovecot/sieve/default.sieve

require ["vnd.dovecot.duplicate", "fileinto", "mailbox", "imap4flags"]; 

if header :contains "X-Spam-Status" "Yes" { 
        fileinto "Spam"; 
} 

if duplicate {
        setflag "\\seen";
        fileinto "Trash"; 
}

On place les droits :

chown vmail:mail /var/lib/dovecot/sieve/default.sieve

Cette règle place le spam dans un répertoire spam, et place les doublons dans la corbeille, en les marquant comme ‘lus’

Il ne reste plus qu’à tester. Par défaut, les erreurs sont logguées dans le fichier /var/log/mail.log.