Filtrer sur les en-têtes d’un message = Sieve et ManageSieve avec Dovecot 2.1 et Roundcube 0.7
Mise en œuvre du filtrage de message électronique sur une installation Debian Squeeze, Postfix, Dovecot, Roundcube. Le mécanisme sieve (rfc5228) sera utilisé via Dovecot.
1/ Backport Dovecot
La version de Dovecot 1.x (supportée par Debian squeeze) intègre deux plugins de filtrage (http://wiki.dovecot.org/LDA/Sieve). Mais j’ai choisi de backporter Dovecot 2.x pour bénéficier des améliorations apportées avec les nouveaux plugins « Pigeonhole » (principalement une meilleur gestion des scripts et des messages d’erreurs).
A ajouter au /etc/apt/source.list
deb http://www.backports.org/debian squeeze-backports main contrib non-free
1,5/ installation ou mise à jour de Dovecot
sudo apt-get -t squeeze-backports install dovecot-imapd dovecot-sieve dovecot-managesieved
2/ LDA dovecot conf postfix
http://wiki2.dovecot.org/LDA/Postfix
Adaptation de postfix /etc/postfix/main.cf
# pour dire à postfix d’utiliser dovecot comme LDA
mailbox_command = /usr/lib/dovecot/deliver
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
postfix reload
3/ Dovecot configuration
Il faut distinguer deux choses : le filtrage sur le LDA (http://wiki2.dovecot.org/Pigeonhole/Sieve) et le filtrage par un manager qui permet de piloter les filtrages par le réseau (http://wiki2.dovecot.org/Pigeonhole/ManageSieve/Configuration)
Adaptation de la configuration /etc/dovecot/dovecot.conf
(les chemins sont à adapter en fonction de la configuration initiale)
protocols = imap imaps sieve
plugin {
# pour chaque boite
sieve = ~/.dovecot.sieve
# globalement
sieve_global_path = /home/vmail/globalsieverc
}# Port sur lequel tournera le manager
service managesieve-login {
inet_listener sieve {
port = 4190
}# Pour rester compatible…
inet_listener sieve_deprecated {
port = 2000
}}
service managesieve {
# Max. number of ManageSieve processes (connections)
process_limit = 1024
}
/etc/init.d/dovecot restart
4/ Filtre global
On peut voir dans la configuration de Dovecot : /home/vmail/globalsieverc
avec par exemple la régle suivante (valable pour tous les messages)
require [« fileinto »];
if header :contains [« X-Spam-Flag »] [« YES »] {
fileinto « Junk »;
}
Les headers marqués avec le flag X-Spam-Flag seront déplacé vers le répertoire Junk.
5/ Plugin Roundcube
Maintenant, on ajuste Roundcube pour intégrer le plugin qui permettra de générer les filtres via le managesieve Dovecot.
Meme chose que pour Dovecot, je backporte Roundcube pour bénéficier de plugins plus récent notamment.
apt-get -t squeeze-backports install roundcube roundcube-plugins
6/ Configuration du plugin managsieve
Ajoute à la configuration de Roundcube le plugin managesieve : /etc/roundcube/main.inc.php
$rcmail_config[‘plugins’] = array(‘managesieve’);
La configuration du plugin managesieve (rien à modifier théoriquement) : /etc/roundcube/plugins/managesieve/config.inc.php
Et voila…vous trouverez un onglet « FILTRE » dans les paramétrés de Roundcube qui vous permettra de gérer vos filtres. Il est cependant toujours possible de créer directement des filtres dans le fichier ~/.dovecot.sieve quelques exemples ici http://sieve.info/.
Cet article Filtrer sur les en-têtes d’un message = Sieve et ManageSieve avec Dovecot 2.1 et Roundcube 0.7 est apparu en premier sur PointRoot.org.