Filtrer sur les en-têtes d’un message = Sieve et ManageSieve avec Dovecot 2.1 et Roundcube 0.7

0/ Contexte

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.

Vus : 1733
Publié par pointroot.org : 17