LMTP(8)

NAME
lmtp - Postfix local delivery via LMTP

SYNOPSIS
lmtp [generic Postfix daemon options]

DESCRIPTION
The LMTP client processes message delivery requests from the queue manager. Each request specifies a queue file, a sender address, a domain or host to deliver to, and recipient information. This program expects to be run from the master(8) process manager. The LMTP client updates the queue file and marks recipients as finished, or it informs the queue manager that delivery should be tried again at a later time. Delivery problem reports are sent to the bounce(8) or defer(8) daemon as appropriate. The LMTP client connects to the destination specified in the message delivery request. The destination, usually specified in the Postfix transport(5) table, has the form:

unix:pathname
    Connect to the local UNIX-domain server that is bound to the specified pathname. If the process runs chrooted, an absolute pathname is interpreted relative to the changed root directory.

inet:host, inet:host:port (symbolic host)

inet:[addr], inet:[addr]:port (numeric host)
    Connect to the specified IPV4 TCP port on the specified local or remote host. If no port is specified, connect to the port defined as lmtp in services(4). If no such service is found, the lmtp_tcp_port configuration parameter (default value of 24) will be used. The LMTP client does not perform MX (mail exchanger) lookups since those are defined only for mail delivery via SMTP.

If neither unix: nor inet: are specified, inet: is assumed.

SECURITY
The LMTP client is moderately security-sensitive. It talks to LMTP servers and to DNS servers on the network. The LMTP client can be run chrooted at fixed low privilege.

STANDARDS
RFC 821 (SMTP protocol)
RFC 1651 (SMTP service extensions)
RFC 1652 (8bit-MIME transport)
RFC 1870 (Message Size Declaration)
RFC 2033 (LMTP protocol)
RFC 2554 (AUTH command)
RFC 2821 (SMTP protocol)
RFC 2920 (SMTP Pipelining)

DIAGNOSTICS
Problems and transactions are logged to syslogd(8). Corrupted message files are marked so that the queue manager can move them to the corrupt queue for further inspection. Depending on the setting of the notify_classes parameter, the postmaster is notified of bounces, protocol problems, and of other trouble.

BUGS

CONFIGURATION PARAMETERS
The following main.cf parameters are especially relevant to this program. See the Postfix main.cf file for syntax details and for default values. Use the postfix reload command after a configuration change.

Miscellaneous

debug_peer_level
    Verbose logging level increment for hosts that match a pattern in the debug_peer_list parameter.

debug_peer_list
    List of domain or network patterns. When a remote host matches a pattern, increase the verbose logging level by the amount specified in the debug_peer_level parameter.

error_notice_recipient
    Recipient of protocol/policy/resource/software error notices.

notify_classes
    When this parameter includes the protocol class, send mail to the postmaster with transcripts of LMTP sessions with protocol errors.

lmtp_skip_quit_response
    Do not wait for the server response after sending QUIT.

lmtp_tcp_port
    The TCP port to be used when connecting to a LMTP server. Used as backup if the lmtp service is not found in services(4).

lmtp_send_xforward_command
    If the LMTP server announces XFORWARD support, send the name, address, protocol and HELO name of the original client. This can be used to forward client information through a content filter to a downstream queuing LMTP server.

Authentication controls

lmtp_sasl_auth_enable
    Enable per-session authentication as per RFC 2554 (SASL). By default, Postfix is built without SASL support.

lmtp_sasl_password_maps
    Lookup tables with per-host or domain name:password entries. No entry for a host means no attempt to authenticate.

lmtp_sasl_security_options
    Zero or more of the following.

    noplaintext
        Disallow authentication methods that use plaintext passwords.

    noactive
        Disallow authentication methods that are vulnerable to non-dictionary active attacks.

    nodictionary
        Disallow authentication methods that are vulnerable to passive dictionary attack.

    noanonymous
        Disallow anonymous logins.

Resource controls

lmtp_cache_connection
    Should we cache the connection to the LMTP server? The effectiveness of cached connections will be determined by the number of LMTP servers in use, and the concurrency limit specified for the LMTP client. Cached connections are closed under any of the following conditions:

    •   The LMTP client idle time limit is reached. This limit is specified with the Postfix max_idle configuration parameter.

    •   A delivery request specifies a different destination than the one currently cached.

    •   The per-process limit on the number of delivery requests is reached. This limit is specified with the Postfix max_use configuration parameter.

    •   Upon the onset of another delivery request, the LMTP server associated with the current session does not respond to the RSET command.

transport_destination_concurrency_limit
    Limit the number of parallel deliveries to the same destination via this mail delivery transport. transport is the name of the service as specified in the master.cf file. The default limit is taken from the default_destination_concurrency_limit parameter.

transport_destination_recipient_limit
    Limit the number of recipients per message delivery via this mail delivery transport. transport is the name of the service as specified in the master.cf file. The default limit is taken from the default_destination_recipient_limit parameter. This parameter becomes significant if the LMTP client is used for local delivery. Some LMTP servers can optimize delivery of the same message to multiple recipients. The default limit for local mail delivery is 1. Setting this parameter to 0 will lead to an unbounded number of recipients per delivery. However, this could be risky since it may make the machine vulnerable to running out of resources if messages are encountered with an inordinate number of recipients. Exercise care when setting this parameter.

Timeout controls

The default time unit is seconds; an explicit time unit can be specified by appending a one-letter suffix to the value: s (seconds), m (minutes), h (hours), d (days) or w (weeks).

lmtp_connect_timeout
    Timeout for opening a connection to the LMTP server. If no connection can be made within the deadline, the message is deferred.

lmtp_lhlo_timeout
    Timeout for sending the LHLO command, and for receiving the server response.

lmtp_xforward_timeout
    Timeout for sending the XFORWARD command, and for receiving the server response.

lmtp_mail_timeout
    Timeout for sending the MAIL FROM command, and for receiving the server response.

lmtp_rcpt_timeout
    Timeout for sending the RCPT TO command, and for receiving the server response.

lmtp_data_init_timeout
    Timeout for sending the DATA command, and for receiving the server response.

lmtp_data_xfer_timeout
    Timeout for sending the message content.

lmtp_data_done_timeout
    Timeout for sending the "." command, and for receiving the server response. When no response is received, a warning is logged that the mail may be delivered multiple times.

lmtp_rset_timeout
    Timeout for sending the RSET command, and for receiving the server response.

lmtp_quit_timeout
    Timeout for sending the QUIT command, and for receiving the server response.

SEE ALSO
bounce(8) non-delivery status reports
local(8) local mail delivery
master(8) process manager
qmgr(8) queue manager
services(4) Internet services and aliases
spawn(8) auxiliary command spawner
syslogd(8) system logging

LICENSE
The Secure Mailer license must be distributed with this software.

AUTHOR(S)
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
Alterations for LMTP by:
Philip A. Prindeville
Mirapoint, Inc.
USA.
Additional work on LMTP by:
Amos Gouaux
University of Texas at Dallas
P.O. Box 830688, MC34
Richardson, TX 75083, USA