Table des matières
Sieve
Introduction
Les règles sieves permettent une gestion des mails sur le serveur. C'est à dire que le tri des messages est exécuté sur le serveur par le serveur . Ce qui permet d'établir des règles de message sur un webmail … Exemple de type de règle : tu viens de la mailing maison du libre , je te déplace dans la poub…heu dans le dossier prévu a cet effet e
Prerequis
avoir installé les services postfix,ldap, dovecot, roundcube …etc selon les pages du wiki En bref c'est d'avoir suivi toute ces doc
Mise à jour de dovecot
Nous allons activer les dépots backports pour installer la dernière version de dovecot. Son moteur de gestions sieve a été entierement revu.
Ajout du dépôt backports dans /etc/apt/sources.list
vi /etc/apt/sources.list
Et ajouter la ligne
deb http://backports.debian.org/debian-backports lenny-backports main contrib non-free
Ensuite on crée le fichier /etc/apt/preferences pour que le système installe le dovecot du backports par défaut.
vi /etc/apt/preferences
et lui mettre
# APT PINNING PREFERENCES Package: dovecot-common Pin: release a=lenny-backports Pin-Priority: 999 Package: dovecot-pop3d Pin: release a=lenny-backports Pin-Priority: 999 Package: dovecot-imapd Pin: release a=lenny-backports Pin-Priority: 999
Le deliver dovecot
C'est dovecot qui gère les règles sieve et exécute ces règles. il faut donc que le depot du mail passe par dovecot. C'est donc le deliver de dovecot qu'il faut utiliser.
nous allons éditer le main.cf
vi /etc/postfix/main.cf
et ajouter
# Dovecot LDA virtual_transport = dovecot dovecot_destination_recipient_limit = 1 mailbox_command = /usr/lib/dovecot/deliver
ensuite dans le fichier master.cf
vi /etc/postfix/master.cf
ajoutez
# Dovecot LDA dovecot unix - n n - - pipe flags=DRhu user=utilisateurmail:utilisateurmail argv=/usr/lib/dovecot/deliver -d $recipient
Puis on modifie le dovecot.conf pour paramétrer le LDA (le deliver dovecot) nous allons en profiter pour modifier la structure du répertoire /var/mail/uid. pour que ca deviennent /var/mail/[trois premières lettres de l'uid]/l'uid
de cette configuration nous en retirons au moins deux bénéfices. nous serons sur d'utiliser le LDA dovecot. Ainsi si jamais les règles sieves ne fonctionne pas, nous serons sur que le pb ne vient pas de la non utilisation de dovecot pour la délivrance des mails.
cela apporte aussi une stabilité au niveau des perf. mettre toutes les boites mails dans un même répertoire, les perfs du système de fichier diminueront au fur et à mesure que le nombre d'utilisateur augmentera.
donc on édite le fichier /etc/dovecot/dovecot.conf
vi /etc/dovecot/dovecot.conf
et ajoute les lignes ci dessous(du a l'installation de dovecot backports)
mail_uid= 2009 mail_gid= 2009
on modifie la ligne
mail_location = maildir:/var/mai/%n
en
mail_location = maildir:/var/mail/%3n/%n
on ajoute le bloc ci dessous
protocol lda { postmaster_address = postmaster auth_socket_path = /var/run/dovecot/auth-master #log_path = /var/log/dovecot-local-deliver.log #info_log_path = /var/log/dovecot-local-deliver.log }
juste apres le bloc
passdb ldap { args = /etc/dovecot/dovecot-passdb-ldap.conf }
on insere le bloc
userdb ldap { args = /etc/dovecot/dovecot-userdb-ldap.conf }
et on vérifie le bloc master pour qu'il soit identique que le bloc lda
master { # doit etre identique que pour le lda path = /var/run/dovecot/auth-master mode = 0666 }
et enfin on crée le fichier /etc/dovecot/dovecot-userdb-ldap.conf
vi /etc/dovecot/dovecot-userdb-ldap.conf
on on insère dedans
hosts = ldap.mdl29 default_pass_scheme = PLAIN auth_bind = yes ldap_version = 3 base = dc=mdl29,dc=net deref = never scope = subtree user_attrs = uid=user user_filter = (&(|(mail=%u)(uid=%u))(mailhost=mail.mdl29.net))
On redemarre postfix , dovecot
/etc/init.d/postfix restart /etc/init.d/dovecot restart
et on envoi un mail pour voir si tout fonctionne , pour voir si le LDA dépose bien dans /var/mail/[3 lettre UID]/uid . si ce n'est pas le cas alors la doc est mal faite il faut la corriger
si c'est le cas on continue
Activation de sieve dans dovecot
bien maintenant que le LDA fonctionne nous allons pouvoir activer les règles sieves pour ce faire on édite dovecot.conf
vi /etc/dovecot/dovecot.conf
et dans le bloc LDA on insère la ligne
mail_plugins = sieve
ce qui nous donne
protocol lda { postmaster_address = postmaster auth_socket_path = /var/run/dovecot/auth-master mail_plugins = sieve #log_path = /var/log/dovecot-local-deliver.log #info_log_path = /var/log/dovecot-local-deliver.log }
et en dessous de ce bloc on ajoute le bloc ci dessous
plugin {
sieve = /var/sieve-scripts/%3u/%u/perso.sieve sieve_dir = /var/sieve-scripts/%3u/%u }
on redémarre dovecot
/etc/init.d/dovecot restart
maintenant on peut créer une règle sieve a la main pour tester si sieve fonctionne donc nous créeons le fichier /var/sieve-scripts/%3u/%u/perso.sieve
vi /var/sieve-scripts/%3u/%u/perso.sieve
et lui mettre dedans
require ["fileinto"]; # rule:[ma petite regle] if anyof (header :contains "From" "maison-du-libre@mdl29.net") { fileinto "trash"; stop; }
Bien entendu vous pouvez modifier le from et le fileto (ici trash) qui doit être un répertoire qui existe si tout marche bien les messages from maison-du-libre@mdl29.net devrait atterrir dans trash (la corbeille)
activation du protocole manage sieve
bon créer les scripts à la main c'est gentil mais ce n'est pas très très userfriendly. Il existe un protocole sieve qui permet a n'importe quel client (sieve) de générer les scripts sieves. on va activer le daemon dans /etc/dovcote/dovecot.conf on modifie la ligne
protocols =imap pop3
pour qu'elle ressemble a cela
protocols =imap pop3 managesieve
et on ajoute le bloc
protocol managesieve { # Specify an alternative address:port the daemon must listen on # (default: *:2000) listen = *:2000 mail_debug=yes managesieve_logout_format = bytes ( in=%i : out=%o ) mail_executable =/usr/lib/dovecot/managesieve login_executable = /usr/lib/dovecot/managesieve-login }
on referme on restart dovecot
/etc/init.d/dovecot restart
on vérifie qu'il y a bien un processus managesieve-login
et on peut installer le plugin manage sieve dans roundcube
installation du plugin manage sieve dans rouncube
Le plugin sieve de roundcube est déjà installé (il est compris dans rouncube en fait), il suffit de l'activer. Pour cela, il suffit de modifier le fichier de configuration de roundcube (le main.inc.php). et d'ajouter le plugin.
// List of active plugins (in plugins/ directory) $rcmail_config['plugins'] = array('managesieve');
voilà.