Bilan

Nous disposons d'une solution tout à fait exploitable, si nous avons peu de comptes à gérer et un seul domaine de messagerie. Dovecot est un serveur POP/IMAP de bonne facture et qui peut aller bien au delà de ce que nous lui avons demandé ici. Au train où vont les choses, il pourra sans doute rapidement rivaliser avec le serveur Cyrus que nous verrons dans la solution suivante.

Nous aurions également pu utiliser courier-imap. Il est plus lourd que Dovecot et ne se justifie pas forcément ici, mais la solution n'est pas à écarter.

Il nous manque juste la gestion de comptes de messagerie qui ne nécessite pas de créer un compte unix, et la possibilité de gérer plusieurs domaines de messagerie. C'est ce que nous allons faire dans le chapitre suivant.

A propos du MDA

Nous avons utilisé ici un MDA interne à Postfix. Nous pouvons aussi utiliser un MDA plus configurable, comme procmail, qui permet par exemple de créer des règles de filtrage personnalisées pour chaque compte. Procmail peut ainsi déposer directement les messages dans des dossiers IMAP dédiés en fonctions de critères de tri. Il suffit dans ce cas d'ajouter la ligne :

mailbox_command = /usr/bin/procmail -a "$EXTENSION"

à notre main.cf, puis d'écrire des fichiers .procmailrc dans le répertoire des utilisateurs. Procmail dispose d'un langage de script très puissant, mais peu intuitif.

Dovecot propose également un MDA. Dans un cas comme celui que nous traitons ici (sans domaines virtuels), nous aurions pu nous en servir en plaçant dans main.cf la ligne :

mailbox_command = /usr/lib/dovecot/deliver

Dovecot dispose d'un plug-in qui permet alors de filtrer les messages au niveau du MDA en utilisant le langage sieve1).

Si c'est ce MDA (nommé aussi LDA dans la documentation Dovecot) qui est utilisé, quelques ajouts doivent être faits dans le fichier de configuration de Dovecot.

Quelques paramètres spécifiques à la configuration de deliver :

protocol lda {
  postmaster_address = postmaster@nain-t.net
  mail_plugin_dir = /usr/lib/dovecot/modules/lda
  sendmail_path = /usr/lib/sendmail
  mail_plugins = cmusieve
}

Et une ligne pour spécifier à deliver que l'on souhaite utiliser le format Maildir (en effet, la ligne qui le spécifie dans main.cf de Postfix ne sert plus à rien puisque l'on utilise plus le MDA de Postfix) :

mail_location = maildir:~/Maildir

En ce qui concerne l'emploi de sieve, Dovecot distribué par Debian ne permet pas à l'utilisateur de placer ses scripts autrement que par FTP ou SSH pour l'instant. Sur ce point, nous verrons que dans l'état actuel (au 26 juin 2008), Cyrus conserve une longueur d'avance.

1)
Sieve est un langage normalisé, plus facilement compréhensible que celui de procmail, mais moins puissant. Les MDA qui l'implémentent complètement proposent un service qui permet à l'utilisateur de placer facilement ses règles de tri sur le serveur, en utilisant par exemple un webmail comme Squirrelmail