====== Filtrer les mails avec Dovecot ====== 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". ===== Configurer Dovecot ===== 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 ===== Configurer Postfix ===== 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