This documentation is for Dovecot v2.x, see wiki1 for v1.x documentation.
Differences between revisions 13 and 14
Revision 13 as of 2018-09-07 01:43:16
Size: 2728
Editor: modemcable095
Revision 14 as of 2018-09-07 01:43:37
Size: 2729
Editor: modemcable095
Deletions are marked like this. Additions are marked like this.
Line 24: Line 24:
Note that the socket needs to be place there because Postfix access is limited to this directory. Note that the socket needs to be placed there because Postfix access is limited to this directory.

Postfix and Dovecot LMTP

Starting with Dovecot 2.x a LMTP-Server has been added.

Basic Configuration

The first step is to enable its stack via /etc/dovecot/dovecot.conf

!include conf.d/*.conf
protocols = imap lmtp

Socket configuration

The actual socket is configured in /etc/dovecot/conf.d/10-master.conf. The LMTP service can be bound to both INET or Unix sockets. In this example a Unix socket is placed inside the Postfix spool with appropriate permissions set:

service lmtp {
 unix_listener /var/spool/postfix/private/dovecot-lmtp {
   group = postfix
   mode = 0600
   user = postfix

Note that the socket needs to be placed there because Postfix access is limited to this directory.

Plugin Support

Plugin support can be enabled at protocol level via /etc/dovecot/conf.d/20-lmtp.conf, for Quota and Sieve here:

protocol lmtp {
  postmaster_address = postmaster@domainname   # required
  mail_plugins = quota sieve

Postfix Configuration

The final step is to tell Postfix to use this socket for final delivery, in this case in a virtual user scenario:

virtual_transport = lmtp:unix:private/dovecot-lmtp

For a non virtual user setup ( as when mail_location = maildir:~/.maildir ) :

mailbox_transport = lmtp:unix:private/dovecot-lmtp

Dynamic address verification with LMTP

With Dovecot 2.0 you can also use LMTP and the Postfix setting "reject_unverified_recipient" for dynamic address verification. It's really nice because Postfix doesn't need to query an external datasource (MySQL, LDAP...). Postfix maintain a local database with existing/non existing addresses (you can configure how long positive/negative results should be cached). Postfix reject_unverified_recipient

To use LMTP and dynamic address verification you must first get Dovecot working. Then you can configure Postfix to use LMTP and set "reject_unverified_recipient" in the smtpd_recipient_restrictions.

On every incoming email Postfix will probe if the recipient address exists. You will see similar entries in your logfile:

Recipient address rejected: undeliverable address: host[private/dovecot-lmtp] said: 550 5.1.1 < > User doesn't exist: (in reply to RCPT TO command); from=< > to=< >

If the recipient address exists (status=deliverable) Postfix accepts the mail.

Info: you can not use "reject_unverified_recipient" with "pipe" so this doesn't work with the Dovecot LDA "deliver".

None: HowTo/PostfixDovecotLMTP (last edited 2018-09-07 01:43:37 by modemcable095)