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. 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 822 (ARPA Internet Text Messages)
RFC 1651 (SMTP service extensions)
RFC 1652 (8bit-MIME transport)
RFC 1870 (Message Size Declaration)
RFC 2045 (MIME: Format of Internet Message Bodies)
RFC 2046 (MIME: Media Types)
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

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.

smtp_host_lookup
    What host lookup mechanism the SMTP client should use. Specify dns (use DNS lookup) and/or native (use the native naming service which also uses /etc/hosts). This setting is ignored when DNS lookups are disabled.

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 of 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. See also the proxy_interfaces parameter.

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

proxy_interfaces
    Network interfaces that this mail system receives mail on by way of a proxy or network address translator. 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. See also the inet_interfaces parameter.

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_bind_address
    Numerical source network address to bind to when making a connection.

smtp_line_length_limit
    Length limit for SMTP message content lines. Zero means no limit. Some SMTP servers misbehave on long lines.

smtp_helo_name
    The hostname to be used in HELO and EHLO commands.

smtp_quote_rfc821_envelope
    Whether or not to quote MAIL FROM and RCPT TO addresses as per the rules laid out in RFC 821.

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_pix_workaround_delay_time
    The time to pause before sending .<CR><LF>, while working around the CISCO PIX firewall <CR><LF>.<CR><LF> bug.

smtp_pix_workaround_threshold_time
    The time a message must be queued before the CISCO PIX firewall <CR><LF>.<CR><LF> bug workaround is turned on.

MIME Conversion

disable_mime_output_conversion
    Disable the conversion of 8BITMIME format to 7BIT format when the remote system does not advertise 8BITMIME support.

mime_boundary_length_limit
    The amount of space that will be allocated for MIME multipart boundary strings. The MIME processor is unable to distinguish between boundary strings that do not differ in the first $mime_boundary_length_limit characters.

mime_nesting_limit
    The maximal nesting level of multipart mail that the MIME processor can handle. Refuse mail that is nested deeper, when converting from 8BITMIME format to 7BIT format.

Authentication controls

smtp_sasl_auth_enable
    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_rset_timeout
    Timeout for sending the RSET command.

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