This documentation is for Dovecot v2.x, see wiki1 for v1.x documentation.
Differences between revisions 18 and 19
Revision 18 as of 2019-02-11 16:47:02
Size: 3406
Editor: AkiTuomi
Revision 19 as of 2019-09-11 14:29:21
Size: 78
Comment: Moved to new doc
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= LMTP Server =

LMTP uses the same settings as [[LDA]], as specified in {{{conf.d/15-lda.conf}}} in example configuration. There is also a bit of extra configuration in {{{conf.d/20-lmtp.conf}}}. The main difference is that the LDA is a short-running process, started as a binary from command line, while LMTP is a long-running process started by Dovecot's master process.

== Envelope Addresses ==

Compared to dovecot-lda parameters, the addresses are taken from:

 * -f / Envelope sender address: This is the MAIL FROM: value from LMTP session.
 * -r / Final envelope recipient address: This is the RCPT TO: value from LMTP session.
 * -a / Original envelope recipient address: This defaults to same as RCPT TO: value, but may be overridden by reading it from a header specified by {{{lda_original_recipient_header}}} setting.
 * -d / Destination username: This is the same as RCPT TO: value, but with the "+extension" part removed when {{{recipient_delimiter}}} setting is set. If usernames differ from recipient email addresses, the userdb must handle the translation.

== Listeners ==

You can configure LMTP to be listening on TCP or UNIX sockets:

# add lmtp to protocols, otherwise its listeners are ignored
protocols = imap pop3 lmtp

service lmtp {
  inet_listener lmtp {
    address = ::1
    port = 24

  unix_listener lmtp {
    #mode = 0666

The UNIX listener on $base_dir/lmtp is enabled by default when protocols setting contains lmtp.

== Security ==

Unfortunately LMTP process currently needs to run as root, and only temporarily drop privileges to users. Otherwise it couldn't handle mail deliveries to more than a single user with different UID. If you're using only a single global UID/GID, you can improve security by running lmtp processes as that user:

service lmtp {
  user = vmail

== LMTP Proxying ==

It's possible to use Dovecot LMTP server as a proxy to remote LMTP or SMTP servers. The configuration is similar to [[PasswordDatabase/ExtraFields/Proxy|IMAP/POP3 proxying]], but you'll need to tell Dovecot LMTP to issue passdb lookups:

lmtp_proxy = yes

== Performance ==

For higher volume sites, it may be desirable to increase the number of active listener processes. A range of 5 to 20 is probably good for most sites:

service lmtp {
  process_min_avail = 5

== Logging ==
If you want to store LMTP delivery logs to a different file, you can do it with:
service lmtp {
  executable = lmtp -L
protocol lmtp {
  info_log_path = /var/log/dovecot-lmtp.log

For rawlogs, please see [[Debugging/Rawlog]]

== Plugins ==
 * Most of the [[Plugins|Dovecot plugins]] work with LMTP.
 * Virtual quota can be enforced using [[Quota|Quota plugin]].
  * `lmtp_rcpt_check_quota = yes` enables quota checking already at RCPT TO stage. This check isn't done for proxied connections.
 * Sieve language support can be added with the [[Pigeonhole/Sieve|Pigeonhole Sieve plugin]].

== Address extension delivery ==
To make address extension work with LMTP you must check these variables are set
 * lmtp_save_to_detail_mailbox = yes
 * recipient_delimiter = +

== Using LMTP with different MTAs ==
 * [[HowTo/PostfixDovecotLMTP|Postfix]]
 * [[LMTP/Exim|Exim]]
 * [[|HALON]]
Moved to

None: LMTP (last edited 2019-09-11 14:29:21 by MichaelSlusarz)