LMTP Server =========== LMTP uses the same settings as , 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 [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 Plugins ------- * Most of the [Plugins.txt] work with LMTP. * Virtual quota can be enforced using [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.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 ------------------------------ * [HowTo.PostfixDovecotLMTP.txt] * [LMTP.Exim.txt] * HALON [http://wiki.halon.se/LMTP] (This file was created from the wiki on 2019-06-19 12:42)