Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/04/2010, à 22:31

Phi

Problèmes pour utiliser SIEVE et Dovecot

Bonjour à tous,

J'ai un serveur mail constitué de postfix, dovecot et d'un webmail roundcube.

Tout fonctionne bien mais j'aimerais utiliser les mécanismes de tri du courrier via SIEVE sur Dovecot. J'ai lu qu'il fallait absolument que Dovecot tienne le rôle de LDA pour que cette configuration soit possible.

1re question : je connais mal tout ce vocabulaire et il m'embrouille. Pouvez-vous m'expliquer un peu plus simplement que sur les sites spécialisés ce que cela veut dire ? Comment m'assurer que je suis dans ce cas ?

Avant d'attaquer mes autres questions, voici mes configurations :

POSTFIX

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
home_mailbox = Maildir/
inet_interfaces = all
mailbox_command = /usr/local/libexec/dovecot/deliver
mydestination = mon-domaine.fr, server-bl, localhost.mon-domaine.fr, localhost
myhostname = mon-domaine.fr
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname
recipient_delimiter = +
relayhost = 
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
unknown_local_recipient_reject_code = 550

DOVECOT

Euh : c'est peut-être là mon problème, j'essaie de faire un dovecot -n pour vous poster ma configuration et voici le retour :

server-bl:~# dovecot -n
# 1.0.15: /usr/local/etc/dovecot.conf
Error: Can't open configuration file /usr/local/etc/dovecot.conf: No such file or directory
Fatal: Invalid configuration in /usr/local/etc/dovecot.conf

Je poursuis au cas où...

J'ai ajouté à la liste des protocols de Dovecot "managesieve" et "lda" puis décommenté le bloc "protocols lda" et l'une de ses lignes par défaut pour activer le plugin cmusieve.

2me question : je m'envoie des mails de tests et les filtres ne sont pas du tout fonctionnels :S Pouvez-vous m'aider ?

INFOS SUPPLEMENTAIRES

J'ai installé un plugin de roundcube pour gérer automatiquement les filtres SIEVE ce qui laisse penser que je n'ai pas d'erreur de syntaxe. D'ailleurs ce mécanisme foncitonne : mon script .dovecot.sieve est actualisé depuis mon client managesieve et je vois les connexions managesieve dans mes logs /var/log/mail*

J'ai eu beaucoup de mal à comprendre de travers ce qui précède aussi, avant de bêtement activé sieve dans Dovecot, j'ai pensé que je devrais le compiler dans le répertoire d'installation de Dovecot et, comble du comble, je me suis trompé d'archive sur le wiki de Debian et j'ai bricolé une installation manuelle de Dovecot dans Dovecot lui-même 0_o Honte sur moi. Cela peut avoir déréglé certaines choses et entraîné mon problème avec la commande dovecot -n peut-être ? Cependant, j'ai quelque doute car rien n'a cessé de fonctionner comme avant (connexion IMAP, etc.).

Merci beaucoup pour votre aide.

Hors ligne

#2 Le 20/04/2010, à 00:33

Phi

Re : Problèmes pour utiliser SIEVE et Dovecot

J'ai toujours très exactement le même problème à ceci près que j'ai réinstallé proprement Dovecot.

Voici donc ma configuration :

server-bl:~# dovecot -n
# 1.0.15: /etc/dovecot/dovecot.conf
log_timestamp: %Y-%m-%d %H:%M:%S 
protocols: imap imaps managesieve
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(managesieve): /usr/lib/dovecot/managesieve-login
mail_privileged_group: mail
mail_location: maildir:~/Maildir
mail_executable(default): /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/imap
mail_executable(managesieve): /usr/lib/dovecot/managesieve
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve
sieve_storage(default): 
sieve_storage(imap): 
sieve_storage(managesieve): ~/sieve
sieve(default): 
sieve(imap): 
sieve(managesieve): ~/.dovecot.sieve
auth default:
  passdb:
    driver: pam
  userdb:
    driver: passwd

Hors ligne

#3 Le 20/04/2010, à 13:06

Phi

Re : Problèmes pour utiliser SIEVE et Dovecot

Sieve semble bien fonctionner maintenant que j'ai réinstallé proprement.

deliver(philippe): 2010-04-20 12:58:48 Info: Loading modules from directory: /usr/lib/dovecot/modules/lda
deliver(philippe): 2010-04-20 12:58:48 Info: Module loaded: /usr/lib/dovecot/modules/lda/lib90_cmusieve_plugin.so
deliver(philippe): 2010-04-20 12:58:48 Info: maildir: data=/srv/mail/philippe/Maildir
deliver(philippe): 2010-04-20 12:58:48 Info: maildir: root=/srv/mail/philippe/Maildir, index=/srv/mail/philippe/Maildir, control=, inbox=
deliver(philippe): 2010-04-20 12:58:48 Info: cmusieve: Using sieve path: /srv/mail/philippe/.dovecot.sieve
deliver(philippe): 2010-04-20 12:58:48 Info: cmusieve: Executing script /srv/mail/philippe/.dovecot.sievec
deliver(philippe): 2010-04-20 12:58:48 Info: msgid=<k2u878cc8911004200358o1b9547f8gb04d08ce063bf1bb@mail.gmail.com>: saved mail to INBOX

Je dis "semble" parce que cela ne fonctionne pas, je ne voulais pas que ce mail de test aille dans INBOX mais dans INBOX.test sad

Pour le moment, les règles générées automatiquement par ManageSIEVE sont les suivantes :

require ["fileinto"];
# rule:[test]
if anyof (header :is "From" "pnom@gmail.com")
{
        fileinto "INBOX.test";
}
# rule:[fail2ban]
elsif allof (header :contains "Subject" "Fail2Ban",
        header :is "From" "root@nom.fr")
{
        fileinto "server-bl.fail2ban";
        stop;
}
# rule:[cron]
elsif allof (header :contains "Subject" "Cron",
        header :is "From" "root@nom.fr")
{
        fileinto "server-bl.cron"; 
        stop;
}
# rule:[debian-user-french]
elsif allof (header :is "To" "debian-user-french@lists.debian.org")
{
        fileinto "logiciel-libre.mailing-lists.debian-user-french";
        stop;
}

Hors ligne

#4 Le 20/04/2010, à 13:32

Phi

Re : Problèmes pour utiliser SIEVE et Dovecot

Mon test ne fonctionnait pas. J'ai l'impression que l'adresse de l'expéditeur était un peu transformée... Je ne suis pas sûr de bien comprendre. Si vous avez des éléments de réponse, je suis preneur.

En tout cas, SIEVE n'est pas en cause car un test plus simple fonctionne (je teste par exemple si le sujet contient "test").

Hors ligne

#5 Le 28/05/2010, à 08:13

El_Karibou

Re : Problèmes pour utiliser SIEVE et Dovecot

Bonjour,


Tes problèmes sont résolus ?

A tu un lien pour installer dovecot/sieve sur ubuntu 10.04 ?

J'avoue que je ne trouve rien de concret sur le net ... sad

Merci.

Hors ligne

#6 Le 28/05/2010, à 22:57

Phi

Re : Problèmes pour utiliser SIEVE et Dovecot

Bonjour El_Karibou,

Voici ma doc, en son état actuel :

##============================================================================
## Fichier     : mail.txt
## Auteur      : Phil
## Licence     : GNU FDL v1.3 - http://www.gnu.org/licenses/fdl.html
## Description : Installation et configuration d'un serveur de mail
##============================================================================

Postfix
-------

L'installation de Postfix permettra de disposer d'un server SMTP et fera le
lien vers la future installation de Dovecot pour la partie IMAP du sujet.

Attention, l'installation de postfix est en conflit avec la présence par
défaut des paquets d'exim4. Il faudra donc s'attarder sur la résolution du
conflit via aptitude en supprimant l'initial exim4 pour le remplacer par
postfix.

# aptitude install -y postfix

Lors de l'installation, il est demandé quelques informations telles que :
- le mode d'installation : Site internet ;
- le nom de domaine du serveur de courrier : nom.fr.

Il est possible de modifier ses premières configurations en exécutant à
nouveau la commande : dpkg-reconfigure postfix.

Réglage du serveur postfix via le fichier /etc/postfix/main.cf (on prendra la
précuation de sauvegarder la configuration initiale) :

# cp /etc/postfix/main.cf /etc/postfix/main.cf.dist
# vi /etc/postfix/main.cf

    alias_database = hash:/etc/aliases
    alias_maps = hash:/etc/aliases
    command_directory = /usr/sbin
    config_directory = /etc/postfix
    daemon_directory = /usr/lib/postfix
    data_directory = /var/lib/postfix
    home_mailbox = Maildir/
    inet_interfaces = all
    mydestination = nom.fr, server-bl, localhost.nom.fr, localhost
    myhostname = nom.fr
    mynetworks = 127.0.0.0/8
    myorigin = /etc/mailname
    recipient_delimiter = +
    relayhost = 
    smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
    unknown_local_recipient_reject_code = 550

Redémarrage du serveur de messagerie :

# /etc/init.d/postfix restart

Dovecot
-------

# aptitude install -y dovecot-imapd

Réglage de /etc/dovecot/dovecot.conf :

# cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.dist
# vi /etc/dovecot/dovecot.conf

      mail_location = maildir:~/Maildir

# /etc/init.d/dovecot restart

Roundcube
---------

Attention, le paquet de roundcube est malheureusement disponible, à ce jour,
uniquement sur les dépôts testing de Debian.

# aptitude install -y roundcube-mysql roundcube

L'installation de Roundcube nécessite de donner le mot de passe de
l'administrateur de MySQL. Il faudra également communiquer un nouveau mot de
passe pour l'utilisateur roundcube (afin que ce dernier puisse de connecter à
la base de données sans connaître le mot de passe administrateur).

Avant de configurer Roundcube, pensera à faire une sauvegarde du fichier de
configuration par défaut :

# cp /etc/roundcube/main.inc.php /etc/roundcube/main.inc.php.dist
# vi /etc/roundcube/main.inc.php

    $rcmail_config['default_host'] = 'ssl://nom.fr';
    $rcmail_config['default_port'] = 993;

Il faut indiquer configurer Apache pour qu'il donne accès à l'interface en
ligne de Roundcube :

# cp /srv/reseau/ressources/apache/roundcube /etc/apache2/sites-available/

Les modules SSL et Rewrite doivent être activés pour respectivement autoriser
le HTTPS et pour rediriger automatiquement les requêtes HTTP justement vers
HTTPS. Leur activation nécessite un redémarrage d'Apache (qui permettra dans
le même temps de prendre en compte le nouveau fichier de configuration déposé
dans le répertoire sites-available) :

# a2enmod ssl rewrite
# a2ensite roundcube
# /etc/init.d/apache2 restart

La base de données roundcube sera sauvegardée chaque nuit, après exécution par
le cron d'un script dédié à cette tâche.

Sieve et ManageSieve
--------------------

Sieve est une solution pour trier automatiquement le courrier entrant avant de
le déposer dans les répertoires IMAP. Il a l'avantage d'utiliser comme règles
de tris un fichier entièrement standardisé et, par la même, qu'il est possible
de généré automatiquement depuis son client de messagerie si ce dernier
dispose d'un plugin ManageSieve. Cette documentation prévoit l'installation
d'un tel plugin pour Roundcube.

Pour en tirer parti avec Dovecot, il faut absolument que la livraison du
courier soit assurée par ce dernier. Pour cela, il faut ajouter le réglage
suivant dans le fichier main.cf de Postfix :

# vi /etc/postfix/main.cf

    mailbox_command = /usr/lib/dovecot/deliver

Dovecot, sous Debian, est compilé par défaut avec le plugin cmusieve qui
implémente Sieve. Il faut cependant l'activer dans notre configuration.

Pour ce faire, éditons le fichier /etc/dovecot/dovecot.conf :

# vi /etc/dovecot/dovecot.conf

    protocol lda {
        postmaster_address = postmaster@nom.fr
        mail_plugins = cmusieve
    }

Notes :
- Cette configuration est déjà présente mais doit être décommentée.
- A priori, les mails reçus par postmaster sont redirigés sur l'adresse e-mail
  de l'utilisateur principal, à la manière des e-mails de root.

À ce stade, le tri du courrier est déjà opérationnel à condition de créer
soi-même le fichier de règles. Pour s'en dispenser, activons ManageSieve dans
la configuration de Dovecot en ajoutant la mention managesieve à la liste des
protocoles gérés par Dovecot :

# vi /etc/dovecot/dovecot.conf

    protocols = imap imaps managesieve

Note : Par défaut, les règles de chaque utilisateur seront sauvegardées dans
le fichier ~/.dovecot.sieve qui sera compilé lors de sa première utilisation
et à chaque modification via ManageSieve. Cette compilation est assurée par
l'outil Sievec.

Il reste à autoriser la manipulation du fichier de règle par le client de
messagerie. Pour Roundcube, il faut installer le plugin ManageSieve
téléchargeable sur le site suivant :

http://trac.roundcube.net/browser/branches/release-0.3.1/plugins/managesieve

Après avoir téléchargé le plugin et l'avoir déposé sur le serveur, il convient
de déplacer le répertoire managesieve (il y a plusieurs niveau de répertoire
dans l'archive zip téléchargée avant de trouver le répertoire en question)
dans le répertoire /var/lib/roundcube/plugins/ puis de le déclarer dans la
configuration de roundcube de cette façon :

# vi /var/lib/roundcube/config/main.inc.php

    $rcmail_config['plugins'] = array('managesieve');

Création des boîtes mail
------------------------

La création d'une boîte de messagerie se fait comme suit (notons qu'en
utilisant l'option --home, on peut choisir un emplacement sur le disque qui
est soumis aux sauvegardes) :

# adduser prenom --home /srv/mail/prenom
# su prenom -c "maildirmake.dovecot /srv/mail/prenom/Maildir"

On en profitera pour rediriger les mails du Cron vers cette nouvelle adresse
en ajoutant la ligne suivante via crontab :

# crontab -e

    MAILTO=prenom@nom.fr

Sauvegarde automatique des boîtes mail
--------------------------------------

La sauvegarde des mails se fera par une simple commande de synchronisation
rsync en ajoutant la ligne suivante dans le cron de l'utilisateur root :

# crontab -e

    40 5 * * * rsync -a /srv/mail /srv/sauvegardes/

vim:ft=txt:tw=78

J'espère que cela t'aidera. Bon courage.

Hors ligne

#7 Le 26/07/2010, à 17:20

cuicui.oizo

Re : Problèmes pour utiliser SIEVE et Dovecot

Je me permets un petit "up" de ce sujet pour remercier Phi car sa doc (très claire) m'a bien sorti de la panade.

J'étais englué dans le paramétrage des filtres pour Dovecot/maildir : j'ai eu le malheur d'utiliser procmail et ça ne marchait pas, là en 5 minutes tout était résolu.

Avec en prime le plugin pour RoundCube (dont j'ignorai l'existence) qui évite de faire le paramétrage des filtres sieve à la main, ya pas à dire, c'est Noël wink

Merci!

Hors ligne

#8 Le 26/07/2010, à 19:30

Phi

Re : Problèmes pour utiliser SIEVE et Dovecot

Ravi d'avoir pu t'aider big_smile

Dernière modification par Phi (Le 26/07/2010, à 19:30)

Hors ligne

#9 Le 12/08/2010, à 22:50

KamZo

Re : Problèmes pour utiliser SIEVE et Dovecot

Mille mercis Phi, après 5h de cassage de dents sur Dovecot et la gestion Sieve je suis tombé sur ton tuto qui m'a débloqué en 5 minutes ! Génial

Hors ligne

#10 Le 28/02/2011, à 19:58

octav

Re : Problèmes pour utiliser SIEVE et Dovecot

Merci Phi.

Je me permets de compléter et de mettre à jour : le plugin dovecot cmusieve ayant été renommé sieve


Dans dovecot.conf, on a donc

    protocol lda {
        postmaster_address = postmaster@nom.fr
        mail_plugins = cmusieve
    }

qui devient :

    protocol lda {
        postmaster_address = postmaster@nom.fr
        mail_plugins = sieve
    }

Par ailleurs, pour ma config, j'ai du changé

args = uid=5000 gid=5000 home=/home/var/vmail/%d/%n allow_all_users=yes

en

args = uid=5000 gid=5000 home=/var/spool/vmail/%d/%n/Maildir/sieve/ allow_all_users=yes 

car le chemin n'était pas bon (j'ai mes mails stockés dans /var/spool/vmail/, les utilisateurs sont définis dans une base mysql pour dovecot, postfix et roundcube.


J'ai aussi du créer un fichier de config du plugin managesieve de roundcube :

 cp webmail/plugin/managesieve/config.inc.php.dist webmail/plugin/managesieve/config.inc.php

Et j'ai changé ça dedans (même si je ne sais pas si ça sert) :

$rcmail_config['managesieve_default'] = '';

En tout cas merci aussi pour ta doc smile

Hors ligne

#11 Le 02/03/2011, à 13:08

nannick

Re : Problèmes pour utiliser SIEVE et Dovecot

Bonjour,

je me permets de remonter ce post très bien écrit car je suis confronté à quelques soucis. Je fais exactement la manip pour modifier /etc/dovecot/dovecot.conf avec :

protocols = ... managesieve

et ensuite quand je relance dovecot via /etc/init.d/dovecot restart, il me donne l'erreur suivante:

Fatal: Unknown protocol managesieve

Ma version de Dovecot est 1.0.11 (trouvée gràce à dovecot --version) et je suis sous Ubuntu Server 8.04.

Merci d'avance pour votre aide

Hors ligne