LMTP Server
===========
LMTP uses the same settings as <LDA.txt>, 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 = 192.168.0.24 127.0.0.1 ::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 <IMAP/POP3 proxying>
[PasswordDatabase.ExtraFields.Proxy.txt], 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.txt>
Plugins
-------
* Most of the <Dovecot plugins> [Plugins.txt] work with LMTP.
* Virtual quota can be enforced using <Quota plugin> [Quota.txt].
* '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 plugin>
[Pigeonhole.Sieve.txt].
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
------------------------------
* <Postfix> [HowTo.PostfixDovecotLMTP.txt]
* <Exim> [LMTP.Exim.txt]
* HALON [http://wiki.halon.se/LMTP]
(This file was created from the wiki on 2019-06-19 12:42)
Copyright 2K16 - 2K18 Indonesian Hacker Rulez