Il est possible d'appliquer des filtres soit du côté client, notamment avec Thunderbird et/ou du côté serveur. Admettons que nous recevons beaucoup de mail dont certains portant le sujet “SPAM”. Nous allons ci-dessous voir comment les déplacer automatiquement dans une sous-boite appelé “Junk”.
Nous aurons besoin de ce paquet :
apt-get install dovecot-sieve
Indiquons où se trouvera les fichiers où l'on écrira les règles de filtrage :
nano /etc/dovecot/dovecot.conf
protocol lda { mail_plugins = sieve } lda_mailbox_autocreate = yes plugin { sieve = /var/mail/%d/%n/.dovecot.sieve sieve_global_path = /var/mail/sieve.default }
Ainsi dès qu'un mail arrivera, Dovecot lira en premier le contenu de la valeur “sieve” puis regardera ensuite dans le fichier défini dans la directive “sieve_global_path”.
Commençons par définir le filtrage par défaut :
sudo -u vmail nano /var/mail/sieve.default
require ["fileinto"]; if header :contains "subject" ["SPAM", "**SPAM**"]"] { fileinto "Junk"; } elsif header :contains "subject" "un-mot-a-filtrer" { fileinto "une-mailbox-custom"; } else { keep; }
Ajoutons ensuite des règles plus spécifique liée à un compte personnel tel que contact@domaine.com :
sudo -u vmail nano /var/mail/domaine.com/contact/.dovecot.sieve
# Sieve Filters # http://wiki.dovecot.org/Pigeonhole/Sieve/Examples # https://tools.ietf.org/html/rfc5228 require "fileinto"; require "envelope"; require "variables"; require "subaddress"; require "regex"; require "vacation"; #require "vnd.dovecot.debug"; ######################################################################## # spam # possible improvement, server-side: # http://wiki.dovecot.org/Pigeonhole/Sieve/Examples#Filtering_using_the_spamtest_and_virustest_extensions if header :contains "X-Spam-Flag" "YES" { fileinto "Junk"; stop; } elsif header :contains "X-Spam-Level" "***" { fileinto "Junk"; stop; }
Toujours vérifier qu'il n'y a pas d'erreur de syntaxe et on recharge la configuration :
doveconf -n >/dev/null /etc/init.d/dovecot reload
Il nous reste plus qu'a mettre au courant Postfix:
nano /etc/postfix/main.cf
En ajoutant cette directive :
virtual_transport = dovecot
Et le plus important en modifiants son comportement :
nano /etc/postfix/master.cf
A ajouté en fin de fichier :
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -f ${sender} -d ${recipient}
Comme d'hab, vérif + reload :
postconf >/dev/null /etc/init.d/postfix reload