====== 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