SMTP(8) 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 recip-
ient information. This program expects to be run from the
master(8) process manager.
The SMTP client updates the queue file and marks recipi-
ents as finished, or it informs the queue manager that
delivery should be tried again at a later time. Delivery
status reports are sent to the bounce(8), defer(8) or
trace(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 a server is not reachable, or when mail delivery
fails due to a recoverable error condition, the SMTP
client will try to deliver the mail to an alternate host.
After a successful mail transaction, a session may be
saved to the scache(8) connection cache server, so that it
may be used by any SMTP client for a subsequent transac-
tion.
By default, connection caching is enabled temporarily for
destinations that have a high volume of mail in the active
queue. Session caching can be enabled permanently for spe-
cific destinations.
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). Cor-
rupted 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
SMTP connection caching does not work with TLS. The neces-
sary support for TLS object passivation and re-activation
does not exist without closing the session, which defeats
the purpose.
SMTP connection caching assumes that SASL credentials are
valid for all destinations that map onto the same IP
address and TCP port, and for all sender and recipient
addresses.
CONFIGURATION PARAMETERS
Changes to main.cf are picked up automatically, as smtp(8)
processes run for only a limited amount of time. Use the
command "postfix reload" to speed up a change.
The text below provides only a parameter summary. See
postconf(5) for more details including examples.
COMPATIBILITY CONTROLS
ignore_mx_lookup_error (no)
Ignore DNS MX lookups that produce no response.
smtp_always_send_ehlo (yes)
Always send EHLO at the start of an SMTP session.
smtp_never_send_ehlo (no)
Never send EHLO at the start of an SMTP session.
smtp_defer_if_no_mx_address_found (no)
Defer mail delivery when no MX record resolves to
an IP address.
smtp_line_length_limit (990)
The maximal length of message header and body lines
that Postfix will send via SMTP.
smtp_pix_workaround_delay_time (10s)
How long the Postfix SMTP client pauses before
sending ".<CR><LF>" in order to work around the PIX
firewall "<CR><LF>.<CR><LF>" bug.
smtp_pix_workaround_threshold_time (500s)
How long a message must be queued before the PIX
firewall "<CR><LF>.<CR><LF>" bug workaround is
turned on.
smtp_quote_rfc821_envelope (yes)
Quote addresses in SMTP MAIL FROM and RCPT TO com-
mands as required by RFC 821.
smtp_skip_5xx_greeting (yes)
Skip SMTP servers that greet with a 5XX status code
(go away, do not try again later).
smtp_skip_quit_response (yes)
Do not wait for the response to the SMTP QUIT com-
mand.
Available in Postfix version 2.0 and earlier:
smtp_skip_4xx_greeting (yes)
Skip SMTP servers that greet with a 4XX status code
(go away, try again later).
MIME PROCESSING CONTROLS
Available in Postfix version 2.0 and later:
disable_mime_output_conversion (no)
Disable the conversion of 8BITMIME format to 7BIT
format.
mime_boundary_length_limit (2048)
The maximal length of MIME multipart boundary
strings.
mime_nesting_limit (100)
The maximal recursion level that the MIME processor
will handle.
EXTERNAL CONTENT INSPECTION CONTROLS
Available in Postfix version 2.1 and later:
smtp_send_xforward_command (no)
Send the non-standard XFORWARD command when the
Postfix SMTP server EHLO response announces XFOR-
WARD support.
SASL AUTHENTICATION CONTROLS
smtp_sasl_auth_enable (no)
Enable SASL authentication in the Postfix SMTP
client.
smtp_sasl_password_maps (empty)
Optional SMTP client lookup tables with one user-
name:password entry per remote hostname or domain.
smtp_sasl_security_options (noplaintext, noanonymous)
What authentication mechanisms the Postfix SMTP
client is allowed to use.
Available in Postfix version 2.2 and later:
smtp_sasl_mechanism_filter (empty)
If non-empty, filters the SMTP server's list of
offered SASL mechanisms.
RESOURCE AND RATE CONTROLS
smtp_destination_concurrency_limit ($default_destina-
tion_concurrency_limit)
The maximal number of parallel deliveries to the
same destination via the smtp message delivery
transport.
smtp_destination_recipient_limit ($default_destina-
tion_recipient_limit)
The maximal number of recipients per delivery via
the smtp message delivery transport.
smtp_connect_timeout (30s)
The SMTP client time limit for completing a TCP
connection, or zero (use the operating system
built-in time limit).
smtp_helo_timeout (300s)
The SMTP client time limit for sending the HELO or
EHLO command, and for receiving the initial server
response.
smtp_xforward_timeout (300s)
The SMTP client time limit for sending the XFORWARD
command, and for receiving the server response.
smtp_mail_timeout (300s)
The SMTP client time limit for sending the MAIL
FROM command, and for receiving the server
response.
smtp_rcpt_timeout (300s)
The SMTP client time limit for sending the SMTP
RCPT TO command, and for receiving the server
response.
smtp_data_init_timeout (120s)
The SMTP client time limit for sending the SMTP
DATA command, and for receiving the server
response.
smtp_data_xfer_timeout (180s)
The SMTP client time limit for sending the SMTP
message content.
smtp_data_done_timeout (600s)
The SMTP client time limit for sending the SMTP
".", and for receiving the server response.
smtp_quit_timeout (300s)
The SMTP client time limit for sending the QUIT
command, and for receiving the server response.
Available in Postfix version 2.1 and later:
smtp_mx_address_limit (0)
The maximal number of MX (mail exchanger) IP
addresses that can result from mail exchanger
lookups, or zero (no limit).
smtp_mx_session_limit (2)
The maximal number of SMTP sessions per delivery
request before giving up or delivering to a fall-
back relay host, or zero (no limit).
smtp_rset_timeout (20s)
The SMTP client time limit for sending the RSET
command, and for receiving the server response.
Available in Postfix version 2.2 and later:
smtp_connection_cache_destinations (empty)
Permanently enable SMTP connection caching for the
specified destinations.
smtp_connection_cache_on_demand (yes)
Temporarily enable SMTP connection caching while a
destination has a high volume of mail in the active
queue.
smtp_connection_cache_reuse_limit (10)
When SMTP connection caching is enabled, the number
of times that an SMTP session is reused before it
is closed.
smtp_connection_cache_time_limit (2s)
When SMTP connection caching is enabled, the amount
of time that an unused SMTP client socket is kept
open before it is closed.
TROUBLE SHOOTING CONTROLS
debug_peer_level (2)
The increment in verbose logging level when a
remote client or server matches a pattern in the
debug_peer_list parameter.
debug_peer_list (empty)
Optional list of remote client or server hostname
or network address patterns that cause the verbose
logging level to increase by the amount specified
in $debug_peer_level.
error_notice_recipient (postmaster)
The recipient of postmaster notifications about
mail delivery problems that are caused by policy,
resource, software or protocol errors.
notify_classes (resource, software)
The list of error classes that are reported to the
postmaster.
MISCELLANEOUS CONTROLS
best_mx_transport (empty)
Where the Postfix SMTP client should deliver mail
when it detects a "mail loops back to myself" error
condition.
config_directory (see 'postconf -d' output)
The default location of the Postfix main.cf and
master.cf configuration files.
daemon_timeout (18000s)
How much time a Postfix daemon process may take to
handle a request before it is terminated by a
built-in watchdog timer.
disable_dns_lookups (no)
Disable DNS lookups in the Postfix SMTP and LMTP
clients.
fallback_relay (empty)
Optional list of relay hosts for SMTP destinations
that can't be found or that are unreachable.
inet_interfaces (all)
The network interface addresses that this mail sys-
tem receives mail on.
ipc_timeout (3600s)
The time limit for sending or receiving information
over an internal communication channel.
max_idle (100s)
The maximum amount of time that an idle Postfix
daemon process waits for the next service request
before exiting.
max_use (100)
The maximal number of connection requests before a
Postfix daemon process terminates.
process_id (read-only)
The process ID of a Postfix command or daemon pro-
cess.
process_name (read-only)
The process name of a Postfix command or daemon
process.
proxy_interfaces (empty)
The network interface addresses that this mail sys-
tem receives mail on by way of a proxy or network
address translation unit.
smtp_bind_address (empty)
An optional numerical network address that the SMTP
client should bind to when making a connection.
smtp_helo_name ($myhostname)
The hostname to send in the SMTP EHLO or HELO com-
mand.
smtp_host_lookup (dns)
What mechanisms when the SMTP client uses to look
up a host's IP address.
smtp_randomize_addresses (yes)
Randomize the order of equal-preference MX host
addresses.
syslog_facility (mail)
The syslog facility of Postfix logging.
syslog_name (postfix)
The mail system name that is prepended to the pro-
cess name in syslog records, so that "smtpd"
becomes, for example, "postfix/smtpd".
SEE ALSO
qmgr(8), queue manager
bounce(8), delivery status reports
scache(8), connection cache server
postconf(5), configuration parameters
master(8), process manager
syslogd(8), system logging
README FILES
SASL_README, Postfix SASL howto
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
Command pipelining in cooperation with:
Jon Ribbens
Oaktree Internet Solutions Ltd.,
Internet House,
Canal Basin,
Coventry,
CV1 4LY, United Kingdom.
Connection caching in cooperation with:
Victor Duchovni
Morgan Stanley
SMTP(8)