SMTP(8)

NAME
smtp - Postfix remote delivery via SMTP

SYNOPSIS
smtp [generic Postfix daemon options]

DESCRIPTION
The SMTP 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 SMTP 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 SMTP client looks up a list of mail exchanger addresses for the destination host, sorts the list by preference, and connects to each listed address until it finds a server that responds. When the domain or host is specified as a comma/whitespace separated list, the SMTP client repeats the above process for all destinations until it finds a server that responds. Once the SMTP client has received the server greeting banner, no error will cause it to proceed to the next address on the mail exchanger list. Instead, the message is either bounced, or its delivery is deferred until later.

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

STANDARDS
RFC 821 (SMTP protocol)
RFC 1651 (SMTP service extensions)
RFC 1870 (Message Size Declaration)
RFC 2197 (Pipelining)
RFC 2554 (AUTH command)

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

best_mx_transport
    Name of the delivery transport to use when the local machine is the most-preferred mail exchanger (by default, a mailer loop is reported, and the message is bounced).

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.

disable_dns_lookups
    Disable DNS lookups. This means that mail must be forwarded via a smart relay host.

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

fallback_relay
    Hosts to hand off mail to if a message destination is not found or if a destination is unreachable.

ignore_mx_lookup_error
    When a name server fails to respond to an MX query, search for an A record instead deferring mail delivery.

inet_interfaces
    The network interface addresses that this mail system receives mail on. When any of those addresses appears in the list of mail exchangers for a remote destination, the list is truncated to avoid mail delivery loops.

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

smtp_always_send_ehlo
    Always send EHLO at the start of a connection.

smtp_never_send_ehlo
    Never send EHLO at the start of a connection.

smtp_skip_4xx_greeting
    Skip servers that greet us with a 4xx status code.

smtp_skip_5xx_greeting
    Skip servers that greet us with a 5xx status code.

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

smtp_bind_address
    Numerical network address to bind to when making a connection.

Authentication controls

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

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

smtp_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

smtp_destination_concurrency_limit
    Limit the number of parallel deliveries to the same destination. The default limit is taken from the default_destination_concurrency_limit parameter.

smtp_destination_recipient_limit
    Limit the number of recipients per message delivery. The default limit is taken from the default_destination_recipient_limit 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).

smtp_connect_timeout
    Timeout for completing a TCP connection. When no connection can be made within the deadline, the SMTP client tries the next address on the mail exchanger list.

smtp_helo_timeout
    Timeout for receiving the SMTP greeting banner. When the server drops the connection without sending a greeting banner, or when it sends no greeting banner within the deadline, the SMTP client tries the next address on the mail exchanger list.

smtp_helo_timeout
    Timeout for sending the HELO command, and for receiving the server response.

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

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

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

smtp_data_xfer_timeout
    Timeout for sending the message content.

smtp_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.

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

SEE ALSO
bounce(8) non-delivery status reports
master(8) process manager
qmgr(8) queue manager
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