Table des matières
Dovecot et LMTP
Aprés avoir vu une migration rapide vers Dovecot , on va configurer Postfix
pour qu'il laisse Dovecot
livrer les e-mails dans les Maildir
des utilisateurs.
~~READMORE~~
Pourquoi Dovecot ?
Si on laisse Postfix
déposer lui-même les e-mails dans les Maildir
alors certains apports de Dovecot
fonctionneront mal, comme:
Sieve
: un filtre de e-mail (un peu commeProcMail
, mais en plus simple)Quota
: gestion des quotas.
Par contre, on va y perdre Procmail
(enfin, pas totalement).
Dovecot LDA
Dans la plupart des configurations proposés, c'est “dovecot-lda
” qui est mis en avant.
Or, dans la doc il est dit que “dovecot-lmtp
” est plus simple et plus performant.
"LMTP is easier to configure and gives better performance"
LMTP
a pour but de livrer le mail dans les boites locales… alors on va l'utiliser.
Dovecot-LMTP
Installer le package
# aptitude install dovecot-lmtpd ... Creating config file /etc/dovecot/conf.d/20-lmtp.conf with new version ...
A part les commentaires, le fichier est vide: parfait.
Le protocole “lmtp” est automatiquement activé grâce à ce fichier de configuration: /usr/share/dovecot/protocols.d/lmtpd.protocol
Configurer "dovecot-lmtp"
Dans local.conf
, ajouter:
auth_username_format = %Ln
… afin que le domaine soit striped: http://www.0xf8.org/2012/11/trouble-with-postfix-and-dovecotpam-unknown-user/
Sinon, on aura un truc comme ça dans les logs:
Apr 12 08:20:28 mail postfix/lmtp[10624]: 2858C54C86: to=<XXX@mail.local.eez.fr>, orig_to=<XXX@tjaouen.fr>, relay=mail.eez.fr[private/dovecot-lmtp], delay=0.34, delays=0.24/0.01/0.05/0.04, dsn=5.1.1, status=bounced (host mail.eez.fr[private/dovecot-lmtp] said: 550 5.1.1 <XXX@mail.local.eez.fr> User doesn't exist: XXX@mail.local.eez.fr (in reply to RCPT TO command))
… et ajouter aussi:
protocol lmtp { postmaster_address = <EMAIL_POSTMASTER>@<DOMAIN> #mail_fsync = optimized } service lmtp { # ---------------------------------------------------- # Configuration : Postfix => Dovecot-lmtp # ---------------------------------------------------- unix_listener /var/spool/postfix/private/dovecot-lmtp { user = postfix group = postfix mode = 0660 } # ---------------------------------------------------- #process_min_avail = 5 }
# /etc/init.d/dovecot status
et si y a pas d'erreur:
# /etc/init.d/dovecot reload
On voit la socket lmtp
apparaître dans l'environnement de Postfix
:
# ls /var/spool/postfix/private/dovecot-lmtp -l srw-rw---- 1 postfix postfix 0 avril 12 06:59 /var/spool/postfix/private/dovecot-lmtp
Dans ''Postfix''
Editer le fichier /etc/postfix/main.cf
et ajoutant:
mailbox_transport = lmtp:unix:private/dovecot-lmtp lmtp_destination_recipient_limit = 1
# postfix reload
Tester
Quand tout va bien, dans les Logs:
Aug 12 09:24:28 mail dovecot: lmtp(10676): Connect from local Aug 12 09:24:29 mail dovecot: lmtp(10676, userXXX): iIj/M8z3FFK0KQAA7jAOhQ: msgid=<5214F7C1.5090208@gmail.com>: saved mail to INBOX Aug 12 09:24:29 mail postfix/lmtp[10675]: 93C3654C86: to=<userXXX@mail.local.eez.fr>, orig_to=<userXXX@tjaouen.fr>, relay=mail.eez.fr[private/dovecot-lmtp], delay=0.41, delays=0.25/0.01/0.01/0.14, dsn=2.0.0, status=sent (250 2.0.0 <userXXX@mail.local.eez.fr> iIj/M8z3FFK0KQAA7jAOhQ Saved) Aug 12 09:24:29 mail dovecot: lmtp(10676): Disconnect from local: Client quit (in reset) Aug 12 09:24:29 mail postfix/qmgr[10600]: 93C3654C86: removed
Si par malheur Dovecot-lmtp
est hors service, Postfix
va faire son travail en gardant les messages en attente dans la “mailq”: donc, rien de dramatique si l'interruption est momentannée.
Bilan
A défaut d'autres choses, maitenant, les mails sont livrés a Dovecot
via dovecot-lmtp
.
Toutefois, ça marche parce que:
“
The precedence of local(8) delivery features from high to low is:
aliases, .forward files, mailbox_transport_maps, mailbox_transport, mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory, fallback_transport_maps, fallback_transport and luser_relay.
”
En conséquence: prendre garde au “.forward
” (entre autres) dans les “HOME” :
Un “.forward” peut définir que la livraison sera faite par Postfix
et ainsi, “by-passer” la livraison via dovecot-lmtp
; Cela peut être souhaitable si on veut utiliser Procmail
!