mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-31 14:17:41 +00:00
postfix-2.3-20051228
This commit is contained in:
committed by
Viktor Dukhovni
parent
29f0936a9d
commit
4049d5fab2
@@ -11690,6 +11690,23 @@ Apologies for any names omitted.
|
||||
(example: sockaddr_to_hostaddr: Unknown error: success).
|
||||
File: util/myaddrinfo.c.
|
||||
|
||||
20051228
|
||||
|
||||
Workaround: don't pipeline the DOT+QUIT commands in the
|
||||
SMTP client. The 20050929 paranoia about malformed server
|
||||
replies eliminated a rare occurrence of "lost mail" with
|
||||
sites that mis-implement DOT+QUIT pipelining. However, we
|
||||
now have a larger occurrence of repeated deliveries to sites
|
||||
with different implementation errors.
|
||||
|
||||
The default "smtp_pipeline_dot_quit = never" setting
|
||||
eliminates the repeated deliveries at the cost of a small
|
||||
performance loss with normal deliveries. Other settings
|
||||
are "always" (always pipeline the DOT+QUIT commands, when
|
||||
pipelining is enabled) and "newmail" (pipeline DOT+QUIT
|
||||
only when mail is newer than $minimal_backoff_time).
|
||||
Files: smtp/smtp_proto.c, smtp/smtp.c.
|
||||
|
||||
Open problems:
|
||||
|
||||
"postsuper -r" no longer resets the message arrival time,
|
||||
|
@@ -17,6 +17,20 @@ Incompatibility with Postfix 2.1 and earlier
|
||||
If you upgrade from Postfix 2.1 or earlier, read RELEASE_NOTES-2.2
|
||||
before proceeding.
|
||||
|
||||
Incompatibility with snapshot 20051228
|
||||
======================================
|
||||
|
||||
New parameter "smtp_pipeline_dot_quit" (default: "never") to work
|
||||
around broken servers and firewalls. After one documented case of
|
||||
lost mail, as of 20050929 Postfix is more paranoid about malformed
|
||||
SMTP server replies. Unfortuately this results in repeated delivery
|
||||
attempts with other broken systems. To avoid this, the SMTP+LMTP
|
||||
client no longer pipelines the DOT+QUIT commands by default. Instead
|
||||
of "never" you can specify "always" (self-evident) or "newmail"
|
||||
(pipeline DOT+QUIT only when mail is newer than $minimal_backoff_time,
|
||||
so that the number of duplicate deliveries is limited). More details
|
||||
are in the postconf(5) manual.
|
||||
|
||||
Major changes with snapshot 20051222
|
||||
====================================
|
||||
|
||||
|
@@ -3224,7 +3224,7 @@ case insensitive lists of LHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the LMTP client will ignore in the LHLO response
|
||||
from a remote LMTP server. See <a href="postconf.5.html#lmtp_discard_lhlo_keywords">lmtp_discard_lhlo_keywords</a> for
|
||||
details. The table is not indexed by hostname for consistency with
|
||||
smtpd_discard_ehlo_keyword_address_map </p>
|
||||
<a href="postconf.5.html#smtpd_discard_ehlo_keyword_address_maps">smtpd_discard_ehlo_keyword_address_maps</a>. </p>
|
||||
|
||||
<p> This feature is available in Postfix 2.3 and later. </p>
|
||||
|
||||
@@ -3377,6 +3377,15 @@ parameter. See there for details. </p>
|
||||
<p> This feature is available in Postfix 2.3 and later. </p>
|
||||
|
||||
|
||||
</DD>
|
||||
|
||||
<DT><b><a name="lmtp_pipeline_dot_quit">lmtp_pipeline_dot_quit</a>
|
||||
(default: never)</b></DT><DD>
|
||||
|
||||
<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_pipeline_dot_quit">smtp_pipeline_dot_quit</a>
|
||||
configuration parameter. See there for details. </p>
|
||||
|
||||
|
||||
</DD>
|
||||
|
||||
<DT><b><a name="lmtp_pix_workaround_delay_time">lmtp_pix_workaround_delay_time</a>
|
||||
@@ -6892,6 +6901,45 @@ complete the EHLO and TLS handshake (Postfix version 2.3 and later). </p>
|
||||
<a href="postconf.5.html#smtp_always_send_ehlo">smtp_always_send_ehlo</a> parameter. </p>
|
||||
|
||||
|
||||
</DD>
|
||||
|
||||
<DT><b><a name="smtp_pipeline_dot_quit">smtp_pipeline_dot_quit</a>
|
||||
(default: never)</b></DT><DD>
|
||||
|
||||
<p> When ESMTP command pipelining is enabled, whether or not the
|
||||
SMTP client will send the QUIT command before it has received the
|
||||
server's END-OF-DATA reply. </p>
|
||||
|
||||
<p> Specify one of the following: </p>
|
||||
|
||||
<dl>
|
||||
|
||||
<dt> <b>always</b> </dt> <dd> Always pipeline the END-OF-DATA and
|
||||
QUIT commands. With servers or firewalls that mis-implement
|
||||
END-OF-DATA + QUIT pipelining, mail will be delivered repeatedly
|
||||
until it expires in the queue. </dd>
|
||||
|
||||
<dt> <b>never</b> </dt> <dd> Wait for the server's END-OF-DATA reply
|
||||
before sending the QUIT command. This avoids repeated delivery
|
||||
attempts with servers and firewalls that mis-implement END-OF-DATA
|
||||
+ QUIT pipelining, at the cost of a small performance loss with
|
||||
sites that correctly implement SMTP. </dd>
|
||||
|
||||
<dt> <b>newmail</b> </dt> <dd> Pipeline the END-OF-DATA and QUIT
|
||||
commands only when mail is newer than $<a href="postconf.5.html#minimal_backoff_time">minimal_backoff_time</a>. This
|
||||
limits the number of repeated deliveries with servers and firewalls
|
||||
that mis-implement END-OF-DATA + QUIT pipelining, while avoiding
|
||||
the performance loss associated with the "never" setting for normal
|
||||
deliveries. </dd>
|
||||
|
||||
</dl>
|
||||
|
||||
<p> Note: when <a href="postconf.5.html#smtp_fallback_relay">smtp_fallback_relay</a> is used, the "always" and "newmail"
|
||||
settings become identical in practice. </p>
|
||||
|
||||
<p> This feature is available in Postfix 2.3 and later. </p>
|
||||
|
||||
|
||||
</DD>
|
||||
|
||||
<DT><b><a name="smtp_pix_workaround_delay_time">smtp_pix_workaround_delay_time</a>
|
||||
|
@@ -170,18 +170,24 @@ SMTP(8) SMTP(8)
|
||||
The maximal length of message header and body lines
|
||||
that Postfix will send via SMTP.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_pipeline_dot_quit">smtp_pipeline_dot_quit</a> (never)</b>
|
||||
When ESMTP command pipelining is enabled, whether
|
||||
or not the SMTP client will send the QUIT command
|
||||
before it has received the server's END-OF-DATA
|
||||
reply.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_pix_workaround_delay_time">smtp_pix_workaround_delay_time</a> (10s)</b>
|
||||
How long the Postfix SMTP client pauses before
|
||||
How long the Postfix SMTP client pauses before
|
||||
sending ".<CR><LF>" in order to work around the PIX
|
||||
firewall "<CR><LF>.<CR><LF>" bug.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_pix_workaround_threshold_time">smtp_pix_workaround_threshold_time</a> (500s)</b>
|
||||
How long a message must be queued before the PIX
|
||||
firewall "<CR><LF>.<CR><LF>" bug workaround is
|
||||
How long a message must be queued before the PIX
|
||||
firewall "<CR><LF>.<CR><LF>" bug workaround is
|
||||
turned on.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_quote_rfc821_envelope">smtp_quote_rfc821_envelope</a> (yes)</b>
|
||||
Quote addresses in SMTP MAIL FROM and RCPT TO com-
|
||||
Quote addresses in SMTP MAIL FROM and RCPT TO com-
|
||||
mands as required by <a href="http://www.faqs.org/rfcs/rfc821.html">RFC 821</a>.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_skip_5xx_greeting">smtp_skip_5xx_greeting</a> (yes)</b>
|
||||
@@ -189,7 +195,7 @@ SMTP(8) SMTP(8)
|
||||
(go away, do not try again later).
|
||||
|
||||
<b><a href="postconf.5.html#smtp_skip_quit_response">smtp_skip_quit_response</a> (yes)</b>
|
||||
Do not wait for the response to the SMTP QUIT com-
|
||||
Do not wait for the response to the SMTP QUIT com-
|
||||
mand.
|
||||
|
||||
Available in Postfix version 2.0 and earlier:
|
||||
@@ -201,36 +207,36 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.2 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_discard_ehlo_keyword_address_maps">smtp_discard_ehlo_keyword_address_maps</a> (empty)</b>
|
||||
Lookup tables, indexed by the remote SMTP server
|
||||
address, with case insensitive lists of EHLO key-
|
||||
words (pipelining, starttls, auth, etc.) that the
|
||||
Lookup tables, indexed by the remote SMTP server
|
||||
address, with case insensitive lists of EHLO key-
|
||||
words (pipelining, starttls, auth, etc.) that the
|
||||
SMTP client will ignore in the EHLO response from a
|
||||
remote SMTP server.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_discard_ehlo_keywords">smtp_discard_ehlo_keywords</a> (empty)</b>
|
||||
A case insensitive list of EHLO keywords (pipelin-
|
||||
ing, starttls, auth, etc.) that the SMTP client
|
||||
A case insensitive list of EHLO keywords (pipelin-
|
||||
ing, starttls, auth, etc.) that the SMTP client
|
||||
will ignore in the EHLO response from a remote SMTP
|
||||
server.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_generic_maps">smtp_generic_maps</a> (empty)</b>
|
||||
Optional lookup tables that perform address rewrit-
|
||||
ing in the SMTP client, typically to transform a
|
||||
ing in the SMTP client, typically to transform a
|
||||
locally valid address into a globally valid address
|
||||
when sending mail across the Internet.
|
||||
|
||||
Available in Postfix version 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_discard_lhlo_keyword_address_maps">lmtp_discard_lhlo_keyword_address_maps</a> (empty)</b>
|
||||
Lookup tables, indexed by the remote LMTP server
|
||||
address, with case insensitive lists of LHLO key-
|
||||
words (pipelining, starttls, auth, etc.) that the
|
||||
Lookup tables, indexed by the remote LMTP server
|
||||
address, with case insensitive lists of LHLO key-
|
||||
words (pipelining, starttls, auth, etc.) that the
|
||||
LMTP client will ignore in the LHLO response from a
|
||||
remote LMTP server.
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_discard_lhlo_keywords">lmtp_discard_lhlo_keywords</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
||||
A case insensitive list of LHLO keywords (pipelin-
|
||||
ing, starttls, auth, etc.) that the LMTP client
|
||||
A case insensitive list of LHLO keywords (pipelin-
|
||||
ing, starttls, auth, etc.) that the LMTP client
|
||||
will ignore in the LHLO response from a remote LMTP
|
||||
server.
|
||||
|
||||
@@ -238,7 +244,7 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.0 and later:
|
||||
|
||||
<b><a href="postconf.5.html#disable_mime_output_conversion">disable_mime_output_conversion</a> (no)</b>
|
||||
Disable the conversion of 8BITMIME format to 7BIT
|
||||
Disable the conversion of 8BITMIME format to 7BIT
|
||||
format.
|
||||
|
||||
<b><a href="postconf.5.html#mime_boundary_length_limit">mime_boundary_length_limit</a> (2048)</b>
|
||||
@@ -253,132 +259,132 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.1 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_send_xforward_command">smtp_send_xforward_command</a> (no)</b>
|
||||
Send the non-standard XFORWARD command when the
|
||||
Postfix SMTP server EHLO response announces XFOR-
|
||||
Send the non-standard XFORWARD command when the
|
||||
Postfix SMTP server EHLO response announces XFOR-
|
||||
WARD support.
|
||||
|
||||
<b>SASL AUTHENTICATION CONTROLS</b>
|
||||
<b><a href="postconf.5.html#smtp_sasl_auth_enable">smtp_sasl_auth_enable</a> (no)</b>
|
||||
Enable SASL authentication in the Postfix SMTP
|
||||
Enable SASL authentication in the Postfix SMTP
|
||||
client.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_password_maps">smtp_sasl_password_maps</a> (empty)</b>
|
||||
Optional SMTP client lookup tables with one user-
|
||||
name:password entry per remote hostname or domain,
|
||||
Optional SMTP client lookup tables with one user-
|
||||
name:password entry per remote hostname or domain,
|
||||
or sender address when sender-dependent authentica-
|
||||
tion is enabled.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_security_options">smtp_sasl_security_options</a> (noplaintext, noanonymous)</b>
|
||||
SASL security options; as of Postfix 2.3 the list
|
||||
of available features depends on the SASL client
|
||||
implementation that is selected with
|
||||
SASL security options; as of Postfix 2.3 the list
|
||||
of available features depends on the SASL client
|
||||
implementation that is selected with
|
||||
<b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b>.
|
||||
|
||||
Available in Postfix version 2.2 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_mechanism_filter">smtp_sasl_mechanism_filter</a> (empty)</b>
|
||||
If non-empty, a Postfix SMTP client filter for the
|
||||
remote SMTP server's list of offered SASL mecha-
|
||||
If non-empty, a Postfix SMTP client filter for the
|
||||
remote SMTP server's list of offered SASL mecha-
|
||||
nisms.
|
||||
|
||||
Available in Postfix version 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sender_dependent_authentication">smtp_sender_dependent_authentication</a> (no)</b>
|
||||
Enable sender-dependent authentication in the SMTP
|
||||
client; this is available only with SASL authenti-
|
||||
cation, and disables SMTP connection caching to
|
||||
ensure that mail from different senders will use
|
||||
Enable sender-dependent authentication in the SMTP
|
||||
client; this is available only with SASL authenti-
|
||||
cation, and disables SMTP connection caching to
|
||||
ensure that mail from different senders will use
|
||||
the appropriate credentials.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_path">smtp_sasl_path</a> (empty)</b>
|
||||
Implementation-specific information that is passed
|
||||
through to the SASL plug-in implementation that is
|
||||
Implementation-specific information that is passed
|
||||
through to the SASL plug-in implementation that is
|
||||
selected with <b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b>.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a> (cyrus)</b>
|
||||
The SASL plug-in type that the Postfix SMTP client
|
||||
The SASL plug-in type that the Postfix SMTP client
|
||||
should use for authentication.
|
||||
|
||||
<b>STARTTLS SUPPORT CONTROLS</b>
|
||||
Detailed information about STARTTLS configuration may be
|
||||
Detailed information about STARTTLS configuration may be
|
||||
found in the <a href="TLS_README.html">TLS_README</a> document.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_use_tls">smtp_use_tls</a> (no)</b>
|
||||
Opportunistic mode: use TLS when a remote SMTP
|
||||
server announces STARTTLS support, otherwise send
|
||||
Opportunistic mode: use TLS when a remote SMTP
|
||||
server announces STARTTLS support, otherwise send
|
||||
the mail in the clear.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a> (no)</b>
|
||||
Enforcement mode: require that remote SMTP servers
|
||||
use TLS encryption, and never send mail in the
|
||||
Enforcement mode: require that remote SMTP servers
|
||||
use TLS encryption, and never send mail in the
|
||||
clear.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_sasl_tls_security_options">smtp_sasl_tls_security_options</a> ($<a href="postconf.5.html#smtp_sasl_security_options">smtp_sasl_secu</a>-</b>
|
||||
<b><a href="postconf.5.html#smtp_sasl_security_options">rity_options</a>)</b>
|
||||
The SASL authentication security options that the
|
||||
Postfix SMTP client uses for TLS encrypted SMTP
|
||||
The SASL authentication security options that the
|
||||
Postfix SMTP client uses for TLS encrypted SMTP
|
||||
sessions.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_starttls_timeout">smtp_starttls_timeout</a> (300s)</b>
|
||||
Time limit for Postfix SMTP client write and read
|
||||
operations during TLS startup and shutdown hand-
|
||||
Time limit for Postfix SMTP client write and read
|
||||
operations during TLS startup and shutdown hand-
|
||||
shake procedures.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a> (empty)</b>
|
||||
The file with the certificate of the certification
|
||||
authority (CA) that issued the Postfix SMTP client
|
||||
The file with the certificate of the certification
|
||||
authority (CA) that issued the Postfix SMTP client
|
||||
certificate.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a> (empty)</b>
|
||||
Directory with PEM format certificate authority
|
||||
certificates that the Postfix SMTP client uses to
|
||||
Directory with PEM format certificate authority
|
||||
certificates that the Postfix SMTP client uses to
|
||||
verify a remote SMTP server certificate.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a> (empty)</b>
|
||||
File with the Postfix SMTP client RSA certificate
|
||||
File with the Postfix SMTP client RSA certificate
|
||||
in PEM format.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_cipherlist">smtp_tls_cipherlist</a> (empty)</b>
|
||||
Controls the Postfix SMTP client TLS cipher selec-
|
||||
Controls the Postfix SMTP client TLS cipher selec-
|
||||
tion scheme.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a> (empty)</b>
|
||||
File with the Postfix SMTP client DSA certificate
|
||||
File with the Postfix SMTP client DSA certificate
|
||||
in PEM format.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_dkey_file">smtp_tls_dkey_file</a> ($<a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a>)</b>
|
||||
File with the Postfix SMTP client DSA private key
|
||||
File with the Postfix SMTP client DSA private key
|
||||
in PEM format.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a> (yes)</b>
|
||||
When TLS encryption is enforced, require that the
|
||||
When TLS encryption is enforced, require that the
|
||||
remote SMTP server hostname matches the information
|
||||
in the remote SMTP server certificate.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_key_file">smtp_tls_key_file</a> ($<a href="postconf.5.html#smtp_tls_cert_file">smtp_tls_cert_file</a>)</b>
|
||||
File with the Postfix SMTP client RSA private key
|
||||
File with the Postfix SMTP client RSA private key
|
||||
in PEM format.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_loglevel">smtp_tls_loglevel</a> (0)</b>
|
||||
Enable additional Postfix SMTP client logging of
|
||||
Enable additional Postfix SMTP client logging of
|
||||
TLS activity.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_note_starttls_offer">smtp_tls_note_starttls_offer</a> (no)</b>
|
||||
Log the hostname of a remote SMTP server that
|
||||
offers STARTTLS, when TLS is not already enabled
|
||||
Log the hostname of a remote SMTP server that
|
||||
offers STARTTLS, when TLS is not already enabled
|
||||
for that server.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> (empty)</b>
|
||||
Optional lookup tables with the Postfix SMTP client
|
||||
TLS usage policy by next-hop domain name and by
|
||||
TLS usage policy by next-hop domain name and by
|
||||
remote SMTP server hostname.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_scert_verifydepth">smtp_tls_scert_verifydepth</a> (5)</b>
|
||||
The verification depth for remote SMTP server cer-
|
||||
The verification depth for remote SMTP server cer-
|
||||
tificates.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a> (empty)</b>
|
||||
Name of the file containing the optional Postfix
|
||||
Name of the file containing the optional Postfix
|
||||
SMTP client TLS session cache.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_tls_session_cache_timeout">smtp_tls_session_cache_timeout</a> (3600s)</b>
|
||||
@@ -386,35 +392,35 @@ SMTP(8) SMTP(8)
|
||||
sion cache information.
|
||||
|
||||
<b><a href="postconf.5.html#tls_daemon_random_bytes">tls_daemon_random_bytes</a> (32)</b>
|
||||
The number of pseudo-random bytes that an <a href="smtp.8.html"><b>smtp</b>(8)</a>
|
||||
or <a href="smtpd.8.html"><b>smtpd</b>(8)</a> process requests from the <a href="tlsmgr.8.html"><b>tlsmgr</b>(8)</a>
|
||||
server in order to seed its internal pseudo random
|
||||
The number of pseudo-random bytes that an <a href="smtp.8.html"><b>smtp</b>(8)</a>
|
||||
or <a href="smtpd.8.html"><b>smtpd</b>(8)</a> process requests from the <a href="tlsmgr.8.html"><b>tlsmgr</b>(8)</a>
|
||||
server in order to seed its internal pseudo random
|
||||
number generator (PRNG).
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
<b><a href="postconf.5.html#smtp_destination_concurrency_limit">smtp_destination_concurrency_limit</a> ($<a href="postconf.5.html#default_destination_concurrency_limit">default_destina</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_concurrency_limit">tion_concurrency_limit</a>)</b>
|
||||
The maximal number of parallel deliveries to the
|
||||
same destination via the smtp message delivery
|
||||
The maximal number of parallel deliveries to the
|
||||
same destination via the smtp message delivery
|
||||
transport.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_destination_recipient_limit">smtp_destination_recipient_limit</a> ($<a href="postconf.5.html#default_destination_recipient_limit">default_destina</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_recipient_limit">tion_recipient_limit</a>)</b>
|
||||
The maximal number of recipients per delivery via
|
||||
The maximal number of recipients per delivery via
|
||||
the smtp message delivery transport.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_connect_timeout">smtp_connect_timeout</a> (30s)</b>
|
||||
The SMTP client time limit for completing a TCP
|
||||
The SMTP client time limit for completing a TCP
|
||||
connection, or zero (use the operating system
|
||||
built-in time limit).
|
||||
|
||||
<b><a href="postconf.5.html#smtp_helo_timeout">smtp_helo_timeout</a> (300s)</b>
|
||||
The SMTP client time limit for sending the HELO or
|
||||
EHLO command, and for receiving the initial server
|
||||
The SMTP client time limit for sending the HELO or
|
||||
EHLO command, and for receiving the initial server
|
||||
response.
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_lhlo_timeout">lmtp_lhlo_timeout</a> (300s)</b>
|
||||
The LMTP client time limit for sending the LHLO
|
||||
The LMTP client time limit for sending the LHLO
|
||||
command, and for receiving the initial server
|
||||
response.
|
||||
|
||||
@@ -423,30 +429,30 @@ SMTP(8) SMTP(8)
|
||||
command, and for receiving the server response.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_mail_timeout">smtp_mail_timeout</a> (300s)</b>
|
||||
The SMTP client time limit for sending the MAIL
|
||||
FROM command, and for receiving the server
|
||||
The SMTP client time limit for sending the MAIL
|
||||
FROM command, and for receiving the server
|
||||
response.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_rcpt_timeout">smtp_rcpt_timeout</a> (300s)</b>
|
||||
The SMTP client time limit for sending the SMTP
|
||||
RCPT TO command, and for receiving the server
|
||||
The SMTP client time limit for sending the SMTP
|
||||
RCPT TO command, and for receiving the server
|
||||
response.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_data_init_timeout">smtp_data_init_timeout</a> (120s)</b>
|
||||
The SMTP client time limit for sending the SMTP
|
||||
DATA command, and for receiving the server
|
||||
The SMTP client time limit for sending the SMTP
|
||||
DATA command, and for receiving the server
|
||||
response.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_data_xfer_timeout">smtp_data_xfer_timeout</a> (180s)</b>
|
||||
The SMTP client time limit for sending the SMTP
|
||||
The SMTP client time limit for sending the SMTP
|
||||
message content.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_data_done_timeout">smtp_data_done_timeout</a> (600s)</b>
|
||||
The SMTP client time limit for sending the SMTP
|
||||
The SMTP client time limit for sending the SMTP
|
||||
".", and for receiving the server response.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_quit_timeout">smtp_quit_timeout</a> (300s)</b>
|
||||
The SMTP client time limit for sending the QUIT
|
||||
The SMTP client time limit for sending the QUIT
|
||||
command, and for receiving the server response.
|
||||
|
||||
Available in Postfix version 2.1 and later:
|
||||
@@ -457,12 +463,12 @@ SMTP(8) SMTP(8)
|
||||
lookups, or zero (no limit).
|
||||
|
||||
<b><a href="postconf.5.html#smtp_mx_session_limit">smtp_mx_session_limit</a> (2)</b>
|
||||
The maximal number of SMTP sessions per delivery
|
||||
request before giving up or delivering to a fall-
|
||||
The maximal number of SMTP sessions per delivery
|
||||
request before giving up or delivering to a fall-
|
||||
back <a href="postconf.5.html#relayhost">relay host</a>, or zero (no limit).
|
||||
|
||||
<b><a href="postconf.5.html#smtp_rset_timeout">smtp_rset_timeout</a> (20s)</b>
|
||||
The SMTP client time limit for sending the RSET
|
||||
The SMTP client time limit for sending the RSET
|
||||
command, and for receiving the server response.
|
||||
|
||||
Available in Postfix version 2.2 and earlier:
|
||||
@@ -474,11 +480,11 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.2 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_connection_cache_destinations">smtp_connection_cache_destinations</a> (empty)</b>
|
||||
Permanently enable SMTP connection caching for the
|
||||
Permanently enable SMTP connection caching for the
|
||||
specified destinations.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_connection_cache_on_demand">smtp_connection_cache_on_demand</a> (yes)</b>
|
||||
Temporarily enable SMTP connection caching while a
|
||||
Temporarily enable SMTP connection caching while a
|
||||
destination has a high volume of mail in the active
|
||||
queue.
|
||||
|
||||
@@ -488,57 +494,57 @@ SMTP(8) SMTP(8)
|
||||
|
||||
<b><a href="postconf.5.html#smtp_connection_cache_time_limit">smtp_connection_cache_time_limit</a> (2s)</b>
|
||||
When SMTP connection caching is enabled, the amount
|
||||
of time that an unused SMTP client socket is kept
|
||||
of time that an unused SMTP client socket is kept
|
||||
open before it is closed.
|
||||
|
||||
Available in Postfix version 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#connection_cache_protocol_timeout">connection_cache_protocol_timeout</a> (5s)</b>
|
||||
Time limit for connection cache connect, send or
|
||||
Time limit for connection cache connect, send or
|
||||
receive operations.
|
||||
|
||||
<b>TROUBLE SHOOTING CONTROLS</b>
|
||||
<b><a href="postconf.5.html#debug_peer_level">debug_peer_level</a> (2)</b>
|
||||
The increment in verbose logging level when a
|
||||
remote client or server matches a pattern in the
|
||||
The increment in verbose logging level when a
|
||||
remote client or server matches a pattern in the
|
||||
<a href="postconf.5.html#debug_peer_list">debug_peer_list</a> parameter.
|
||||
|
||||
<b><a href="postconf.5.html#debug_peer_list">debug_peer_list</a> (empty)</b>
|
||||
Optional list of remote client or server hostname
|
||||
or network address patterns that cause the verbose
|
||||
logging level to increase by the amount specified
|
||||
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 $<a href="postconf.5.html#debug_peer_level">debug_peer_level</a>.
|
||||
|
||||
<b><a href="postconf.5.html#error_notice_recipient">error_notice_recipient</a> (postmaster)</b>
|
||||
The recipient of postmaster notifications about
|
||||
mail delivery problems that are caused by policy,
|
||||
The recipient of postmaster notifications about
|
||||
mail delivery problems that are caused by policy,
|
||||
resource, software or protocol errors.
|
||||
|
||||
<b><a href="postconf.5.html#notify_classes">notify_classes</a> (resource, software)</b>
|
||||
The list of error classes that are reported to the
|
||||
The list of error classes that are reported to the
|
||||
postmaster.
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#best_mx_transport">best_mx_transport</a> (empty)</b>
|
||||
Where the Postfix SMTP client should deliver mail
|
||||
Where the Postfix SMTP client should deliver mail
|
||||
when it detects a "mail loops back to myself" error
|
||||
condition.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix main.cf and
|
||||
The default location of the Postfix main.cf and
|
||||
master.cf configuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
How much time a Postfix daemon process may take to
|
||||
handle a request before it is terminated by a
|
||||
How much time a Postfix daemon process may take to
|
||||
handle a request before it is terminated by a
|
||||
built-in watchdog timer.
|
||||
|
||||
<b><a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a> (2)</b>
|
||||
The maximal number of digits after the decimal
|
||||
The maximal number of digits after the decimal
|
||||
point when logging sub-second delay values.
|
||||
|
||||
<b><a href="postconf.5.html#disable_dns_lookups">disable_dns_lookups</a> (no)</b>
|
||||
Disable DNS lookups in the Postfix SMTP and LMTP
|
||||
Disable DNS lookups in the Postfix SMTP and LMTP
|
||||
clients.
|
||||
|
||||
<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> (all)</b>
|
||||
@@ -546,7 +552,7 @@ SMTP(8) SMTP(8)
|
||||
tem receives mail on.
|
||||
|
||||
<b><a href="postconf.5.html#inet_protocols">inet_protocols</a> (ipv4)</b>
|
||||
The Internet protocols Postfix will attempt to use
|
||||
The Internet protocols Postfix will attempt to use
|
||||
when making or accepting connections.
|
||||
|
||||
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
|
||||
@@ -554,74 +560,74 @@ SMTP(8) SMTP(8)
|
||||
over an internal communication channel.
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_tcp_port">lmtp_tcp_port</a> (24)</b>
|
||||
The default TCP port that the Postfix LMTP client
|
||||
The default TCP port that the Postfix LMTP client
|
||||
connects to.
|
||||
|
||||
<b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
|
||||
The maximum amount of time that an idle Postfix
|
||||
daemon process waits for the next service request
|
||||
The maximum amount of time that an idle Postfix
|
||||
daemon process waits for the next service request
|
||||
before exiting.
|
||||
|
||||
<b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
|
||||
The maximal number of connection requests before a
|
||||
The maximal number of connection requests before a
|
||||
Postfix daemon process terminates.
|
||||
|
||||
<b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
|
||||
The process ID of a Postfix command or daemon
|
||||
The process ID of a Postfix command or daemon
|
||||
process.
|
||||
|
||||
<b><a href="postconf.5.html#process_name">process_name</a> (read-only)</b>
|
||||
The process name of a Postfix command or daemon
|
||||
The process name of a Postfix command or daemon
|
||||
process.
|
||||
|
||||
<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> (empty)</b>
|
||||
The network interface addresses that this mail sys-
|
||||
tem receives mail on by way of a proxy or network
|
||||
tem receives mail on by way of a proxy or network
|
||||
address translation unit.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a> (empty)</b>
|
||||
An optional numerical network address that the SMTP
|
||||
client should bind to when making an IPv4 connec-
|
||||
client should bind to when making an IPv4 connec-
|
||||
tion.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a> (empty)</b>
|
||||
An optional numerical network address that the SMTP
|
||||
client should bind to when making an IPv6 connec-
|
||||
client should bind to when making an IPv6 connec-
|
||||
tion.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_helo_name">smtp_helo_name</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
||||
The hostname to send in the SMTP EHLO or HELO com-
|
||||
The hostname to send in the SMTP EHLO or HELO com-
|
||||
mand.
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_lhloname">lmtp_lhlo_name</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
||||
The hostname to send in the LMTP LHLO command.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_host_lookup">smtp_host_lookup</a> (dns)</b>
|
||||
What mechanisms when the SMTP client uses to look
|
||||
What mechanisms when the SMTP client uses to look
|
||||
up a host's IP address.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_randomize_addresses">smtp_randomize_addresses</a> (yes)</b>
|
||||
Randomize the order of equal-preference MX host
|
||||
Randomize the order of equal-preference MX host
|
||||
addresses.
|
||||
|
||||
<b><a href="postconf.5.html#syslog_facility">syslog_facility</a> (mail)</b>
|
||||
The syslog facility of Postfix logging.
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (postfix)</b>
|
||||
The mail system name that is prepended to the
|
||||
process name in syslog records, so that "smtpd"
|
||||
The mail system name that is prepended to the
|
||||
process name in syslog records, so that "smtpd"
|
||||
becomes, for example, "postfix/smtpd".
|
||||
|
||||
Available with Postfix 2.2 and earlier:
|
||||
|
||||
<b><a href="postconf.5.html#fallback_relay">fallback_relay</a> (empty)</b>
|
||||
Optional list of relay hosts for SMTP destinations
|
||||
Optional list of relay hosts for SMTP destinations
|
||||
that can't be found or that are unreachable.
|
||||
|
||||
Available with Postfix 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_fallback_relay">smtp_fallback_relay</a> ($<a href="postconf.5.html#fallback_relay">fallback_relay</a>)</b>
|
||||
Optional list of relay hosts for SMTP destinations
|
||||
Optional list of relay hosts for SMTP destinations
|
||||
that can't be found or that are unreachable.
|
||||
|
||||
<b>SEE ALSO</b>
|
||||
@@ -639,7 +645,7 @@ SMTP(8) SMTP(8)
|
||||
<a href="TLS_README.html">TLS_README</a>, Postfix STARTTLS howto
|
||||
|
||||
<b>LICENSE</b>
|
||||
The Secure Mailer license must be distributed with this
|
||||
The Secure Mailer license must be distributed with this
|
||||
software.
|
||||
|
||||
<b>AUTHOR(S)</b>
|
||||
|
@@ -1729,7 +1729,7 @@ case insensitive lists of LHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the LMTP client will ignore in the LHLO response
|
||||
from a remote LMTP server. See lmtp_discard_lhlo_keywords for
|
||||
details. The table is not indexed by hostname for consistency with
|
||||
smtpd_discard_ehlo_keyword_address_map
|
||||
smtpd_discard_ehlo_keyword_address_maps.
|
||||
.PP
|
||||
This feature is available in Postfix 2.3 and later.
|
||||
.SH lmtp_discard_lhlo_keywords (default: $myhostname)
|
||||
@@ -1808,6 +1808,9 @@ The LMTP-specific version of the smtp_mx_session_limit configuration
|
||||
parameter. See there for details.
|
||||
.PP
|
||||
This feature is available in Postfix 2.3 and later.
|
||||
.SH lmtp_pipeline_dot_quit (default: never)
|
||||
The LMTP-specific version of the smtp_pipeline_dot_quit
|
||||
configuration parameter. See there for details.
|
||||
.SH lmtp_pix_workaround_delay_time (default: 10s)
|
||||
The LMTP-specific version of the smtp_pix_workaround_delay_time
|
||||
configuration parameter. See there for details.
|
||||
@@ -3838,6 +3841,35 @@ This feature is available in Postfix 2.1 and later.
|
||||
.SH smtp_never_send_ehlo (default: no)
|
||||
Never send EHLO at the start of an SMTP session. See also the
|
||||
smtp_always_send_ehlo parameter.
|
||||
.SH smtp_pipeline_dot_quit (default: never)
|
||||
When ESMTP command pipelining is enabled, whether or not the
|
||||
SMTP client will send the QUIT command before it has received the
|
||||
server's END-OF-DATA reply.
|
||||
.PP
|
||||
Specify one of the following:
|
||||
.IP "\fBalways\fR"
|
||||
Always pipeline the END-OF-DATA and
|
||||
QUIT commands. With servers or firewalls that mis-implement
|
||||
END-OF-DATA + QUIT pipelining, mail will be delivered repeatedly
|
||||
until it expires in the queue.
|
||||
.IP "\fBnever\fR"
|
||||
Wait for the server's END-OF-DATA reply
|
||||
before sending the QUIT command. This avoids repeated delivery
|
||||
attempts with servers and firewalls that mis-implement END-OF-DATA
|
||||
+ QUIT pipelining, at the cost of a small performance loss with
|
||||
sites that correctly implement SMTP.
|
||||
.IP "\fBnewmail\fR"
|
||||
Pipeline the END-OF-DATA and QUIT
|
||||
commands only when mail is newer than $minimal_backoff_time. This
|
||||
limits the number of repeated deliveries with servers and firewalls
|
||||
that mis-implement END-OF-DATA + QUIT pipelining, while avoiding
|
||||
the performance loss associated with the "never" setting for normal
|
||||
deliveries.
|
||||
.PP
|
||||
Note: when smtp_fallback_relay is used, the "always" and "newmail"
|
||||
settings become identical in practice.
|
||||
.PP
|
||||
This feature is available in Postfix 2.3 and later.
|
||||
.SH smtp_pix_workaround_delay_time (default: 10s)
|
||||
How long the Postfix SMTP client pauses before sending
|
||||
".<CR><LF>" in order to work around the PIX firewall
|
||||
|
@@ -165,6 +165,10 @@ Defer mail delivery when no MX record resolves to an IP address.
|
||||
.IP "\fBsmtp_line_length_limit (990)\fR"
|
||||
The maximal length of message header and body lines that Postfix
|
||||
will send via SMTP.
|
||||
.IP "\fBsmtp_pipeline_dot_quit (never)\fR"
|
||||
When ESMTP command pipelining is enabled, whether or not the
|
||||
SMTP client will send the QUIT command before it has received the
|
||||
server's END-OF-DATA reply.
|
||||
.IP "\fBsmtp_pix_workaround_delay_time (10s)\fR"
|
||||
How long the Postfix SMTP client pauses before sending
|
||||
".<CR><LF>" in order to work around the PIX firewall
|
||||
@@ -190,9 +194,9 @@ again later).
|
||||
Available in Postfix version 2.2 and later:
|
||||
.IP "\fBsmtp_discard_ehlo_keyword_address_maps (empty)\fR"
|
||||
Lookup tables, indexed by the remote SMTP server address, with
|
||||
case insensitive lists of EHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the SMTP client will ignore in the EHLO response
|
||||
from a remote SMTP server.
|
||||
case insensitive lists of EHLO keywords (pipelining, starttls, auth,
|
||||
etc.) that the SMTP client will ignore in the EHLO response from a
|
||||
remote SMTP server.
|
||||
.IP "\fBsmtp_discard_ehlo_keywords (empty)\fR"
|
||||
A case insensitive list of EHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the SMTP client will ignore in the EHLO response
|
||||
|
@@ -387,6 +387,7 @@ while (<>) {
|
||||
s;\bsmtp_mx_session_limit\b;<a href="postconf.5.html#smtp_mx_session_limit">$&</a>;g;
|
||||
s;\bsmtp_never_send_ehlo\b;<a href="postconf.5.html#smtp_never_send_ehlo">$&</a>;g;
|
||||
s;\bsmtp_sender_depen[-</bB>]*\n*[ <bB>]*dent_authentication\b;<a href="postconf.5.html#smtp_sender_dependent_authentication">$&</a>;g;
|
||||
s;\bsmtp_pipeline_dot_quit\b;<a href="postconf.5.html#smtp_pipeline_dot_quit">$&</a>;g;
|
||||
s;\bsmtp_pix_workaround_delay_time\b;<a href="postconf.5.html#smtp_pix_workaround_delay_time">$&</a>;g;
|
||||
s;\bsmtp_pix_workaround_threshold_time\b;<a href="postconf.5.html#smtp_pix_workaround_threshold_time">$&</a>;g;
|
||||
s;\bsmtp_quit_timeout\b;<a href="postconf.5.html#smtp_quit_timeout">$&</a>;g;
|
||||
|
@@ -8837,7 +8837,7 @@ case insensitive lists of LHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the LMTP client will ignore in the LHLO response
|
||||
from a remote LMTP server. See lmtp_discard_lhlo_keywords for
|
||||
details. The table is not indexed by hostname for consistency with
|
||||
smtpd_discard_ehlo_keyword_address_map </p>
|
||||
smtpd_discard_ehlo_keyword_address_maps. </p>
|
||||
|
||||
<p> This feature is available in Postfix 2.3 and later. </p>
|
||||
|
||||
@@ -9125,3 +9125,43 @@ is rejected by the <b>reject_plaintext_session</b> restriction.
|
||||
rejecting the address as invalid. </p>
|
||||
|
||||
<p> This feature is available in Postfix 2.3 and later.
|
||||
|
||||
%PARAM smtp_pipeline_dot_quit never
|
||||
|
||||
<p> When ESMTP command pipelining is enabled, whether or not the
|
||||
SMTP client will send the QUIT command before it has received the
|
||||
server's END-OF-DATA reply. </p>
|
||||
|
||||
<p> Specify one of the following: </p>
|
||||
|
||||
<dl>
|
||||
|
||||
<dt> <b>always</b> </dt> <dd> Always pipeline the END-OF-DATA and
|
||||
QUIT commands. With servers or firewalls that mis-implement
|
||||
END-OF-DATA + QUIT pipelining, mail will be delivered repeatedly
|
||||
until it expires in the queue. </dd>
|
||||
|
||||
<dt> <b>never</b> </dt> <dd> Wait for the server's END-OF-DATA reply
|
||||
before sending the QUIT command. This avoids repeated delivery
|
||||
attempts with servers and firewalls that mis-implement END-OF-DATA
|
||||
+ QUIT pipelining, at the cost of a small performance loss with
|
||||
sites that correctly implement SMTP. </dd>
|
||||
|
||||
<dt> <b>newmail</b> </dt> <dd> Pipeline the END-OF-DATA and QUIT
|
||||
commands only when mail is newer than $minimal_backoff_time. This
|
||||
limits the number of repeated deliveries with servers and firewalls
|
||||
that mis-implement END-OF-DATA + QUIT pipelining, while avoiding
|
||||
the performance loss associated with the "never" setting for normal
|
||||
deliveries. </dd>
|
||||
|
||||
</dl>
|
||||
|
||||
<p> Note: when smtp_fallback_relay is used, the "always" and "newmail"
|
||||
settings become identical in practice. </p>
|
||||
|
||||
<p> This feature is available in Postfix 2.3 and later. </p>
|
||||
|
||||
%PARAM lmtp_pipeline_dot_quit never
|
||||
|
||||
<p> The LMTP-specific version of the smtp_pipeline_dot_quit
|
||||
configuration parameter. See there for details. </p>
|
||||
|
@@ -1006,6 +1006,16 @@ extern int var_smtp_pix_thresh;
|
||||
#define DEF_LMTP_PIX_DELAY "10s"
|
||||
extern int var_smtp_pix_delay;
|
||||
|
||||
#define SMTP_PIPE_DOT_QUIT_NEVER "never"
|
||||
#define SMTP_PIPE_DOT_QUIT_NEWMAIL "newmail"
|
||||
#define SMTP_PIPE_DOT_QUIT_ALWAYS "always"
|
||||
|
||||
#define VAR_SMTP_PIPE_DOT_QUIT "smtp_pipeline_dot_quit"
|
||||
#define DEF_SMTP_PIPE_DOT_QUIT SMTP_PIPE_DOT_QUIT_NEVER
|
||||
#define VAR_LMTP_PIPE_DOT_QUIT "lmtp_pipeline_dot_quit"
|
||||
#define DEF_LMTP_PIPE_DOT_QUIT SMTP_PIPE_DOT_QUIT_NEVER
|
||||
extern char *var_smtp_pipe_dot_quit;
|
||||
|
||||
#define VAR_SMTP_DEFER_MXADDR "smtp_defer_if_no_mx_address_found"
|
||||
#define DEF_SMTP_DEFER_MXADDR 0
|
||||
#define VAR_LMTP_DEFER_MXADDR "lmtp_defer_if_no_mx_address_found"
|
||||
|
@@ -20,7 +20,7 @@
|
||||
* Patches change both the patchlevel and the release date. Snapshots have no
|
||||
* patchlevel; they change the release date only.
|
||||
*/
|
||||
#define MAIL_RELEASE_DATE "20051227"
|
||||
#define MAIL_RELEASE_DATE "20051228"
|
||||
#define MAIL_VERSION_NUMBER "2.3"
|
||||
|
||||
#ifdef SNAPSHOT
|
||||
|
@@ -22,6 +22,7 @@
|
||||
VAR_PROP_EXTENSION, DEF_PROP_EXTENSION, &var_prop_extension, 0, 0,
|
||||
VAR_LMTP_GENERIC_MAPS, DEF_LMTP_GENERIC_MAPS, &var_smtp_generic_maps, 0, 0,
|
||||
VAR_LMTP_TCP_PORT, DEF_LMTP_TCP_PORT, &var_lmtp_tcp_port, 0, 0,
|
||||
VAR_LMTP_PIPE_DOT_QUIT, DEF_LMTP_PIPE_DOT_QUIT, &var_smtp_pipe_dot_quit, 1, 0,
|
||||
0,
|
||||
};
|
||||
static CONFIG_TIME_TABLE lmtp_time_table[] = {
|
||||
@@ -43,6 +44,7 @@
|
||||
VAR_LMTP_STARTTLS_TMOUT, DEF_LMTP_STARTTLS_TMOUT, &var_smtp_starttls_tmout, 1, 0,
|
||||
#endif
|
||||
VAR_SCACHE_PROTO_TMOUT, DEF_SCACHE_PROTO_TMOUT, &var_scache_proto_tmout, 1, 0,
|
||||
VAR_MIN_BACKOFF_TIME, DEF_MIN_BACKOFF_TIME, &var_min_backoff_time, 1, 0,
|
||||
0,
|
||||
};
|
||||
static CONFIG_INT_TABLE lmtp_int_table[] = {
|
||||
|
@@ -143,6 +143,10 @@
|
||||
/* .IP "\fBsmtp_line_length_limit (990)\fR"
|
||||
/* The maximal length of message header and body lines that Postfix
|
||||
/* will send via SMTP.
|
||||
/* .IP "\fBsmtp_pipeline_dot_quit (never)\fR"
|
||||
/* When ESMTP command pipelining is enabled, whether or not the
|
||||
/* SMTP client will send the QUIT command before it has received the
|
||||
/* server's END-OF-DATA reply.
|
||||
/* .IP "\fBsmtp_pix_workaround_delay_time (10s)\fR"
|
||||
/* How long the Postfix SMTP client pauses before sending
|
||||
/* ".<CR><LF>" in order to work around the PIX firewall
|
||||
@@ -168,9 +172,9 @@
|
||||
/* Available in Postfix version 2.2 and later:
|
||||
/* .IP "\fBsmtp_discard_ehlo_keyword_address_maps (empty)\fR"
|
||||
/* Lookup tables, indexed by the remote SMTP server address, with
|
||||
/* case insensitive lists of EHLO keywords (pipelining, starttls,
|
||||
/* auth, etc.) that the SMTP client will ignore in the EHLO response
|
||||
/* from a remote SMTP server.
|
||||
/* case insensitive lists of EHLO keywords (pipelining, starttls, auth,
|
||||
/* etc.) that the SMTP client will ignore in the EHLO response from a
|
||||
/* remote SMTP server.
|
||||
/* .IP "\fBsmtp_discard_ehlo_keywords (empty)\fR"
|
||||
/* A case insensitive list of EHLO keywords (pipelining, starttls,
|
||||
/* auth, etc.) that the SMTP client will ignore in the EHLO response
|
||||
@@ -526,6 +530,7 @@
|
||||
#include <msg.h>
|
||||
#include <mymalloc.h>
|
||||
#include <name_mask.h>
|
||||
#include <name_code.h>
|
||||
|
||||
/* Global library. */
|
||||
|
||||
@@ -617,6 +622,8 @@ char *var_prop_extension;
|
||||
bool var_smtp_sender_auth;
|
||||
char *var_lmtp_tcp_port;
|
||||
int var_scache_proto_tmout;
|
||||
char *var_smtp_pipe_dot_quit;
|
||||
int var_min_backoff_time;
|
||||
|
||||
/*
|
||||
* Global variables. smtp_errno is set by the address lookup routines and by
|
||||
@@ -629,6 +636,7 @@ SCACHE *smtp_scache;
|
||||
MAPS *smtp_ehlo_dis_maps;
|
||||
MAPS *smtp_generic_maps;
|
||||
int smtp_ext_prop_mask;
|
||||
int smtp_pipe_dot_quit;
|
||||
|
||||
#ifdef USE_TLS
|
||||
|
||||
@@ -722,6 +730,12 @@ static void post_init(char *unused_name, char **unused_argv)
|
||||
SMTP_HOST_LOOKUP_NATIVE, SMTP_HOST_FLAG_NATIVE,
|
||||
0,
|
||||
};
|
||||
static NAME_CODE pipe_dot_quit_codes[] = {
|
||||
SMTP_PIPE_DOT_QUIT_NEVER, SMTP_PIPE_DOT_QUIT_CODE_NEVER,
|
||||
SMTP_PIPE_DOT_QUIT_NEWMAIL, SMTP_PIPE_DOT_QUIT_CODE_NEWMAIL,
|
||||
SMTP_PIPE_DOT_QUIT_ALWAYS, SMTP_PIPE_DOT_QUIT_CODE_ALWAYS,
|
||||
0, SMTP_PIPE_DOT_QUIT_CODE_ERROR,
|
||||
};
|
||||
|
||||
/*
|
||||
* Select hostname lookup mechanisms.
|
||||
@@ -748,6 +762,16 @@ static void post_init(char *unused_name, char **unused_argv)
|
||||
var_ipc_idle_limit,
|
||||
var_ipc_ttl_limit);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Initialize dot-quit pipelining workaround.
|
||||
*/
|
||||
smtp_pipe_dot_quit = name_code(pipe_dot_quit_codes,
|
||||
NAME_CODE_FLAG_NONE,
|
||||
var_smtp_pipe_dot_quit);
|
||||
if (smtp_pipe_dot_quit == SMTP_PIPE_DOT_QUIT_CODE_ERROR)
|
||||
msg_fatal("unknown %s value: %s", VAR_SMTP_PIPE_DOT_QUIT,
|
||||
var_smtp_pipe_dot_quit);
|
||||
}
|
||||
|
||||
/* pre_init - pre-jail initialization */
|
||||
|
@@ -166,6 +166,13 @@ extern SSL_CTX *smtp_tls_ctx; /* client-side TLS engine */
|
||||
|
||||
#endif
|
||||
|
||||
#define SMTP_PIPE_DOT_QUIT_CODE_ERROR 0
|
||||
#define SMTP_PIPE_DOT_QUIT_CODE_NEVER 1
|
||||
#define SMTP_PIPE_DOT_QUIT_CODE_NEWMAIL 2
|
||||
#define SMTP_PIPE_DOT_QUIT_CODE_ALWAYS 3
|
||||
|
||||
extern int smtp_pipe_dot_quit;
|
||||
|
||||
/*
|
||||
* smtp_session.c
|
||||
*/
|
||||
|
@@ -289,7 +289,7 @@ SMTP_RESP *smtp_chat_resp(SMTP_SESSION *session)
|
||||
msg_warn("non-%s response from %s: %s",
|
||||
(session->state->misc_flags &
|
||||
SMTP_MISC_FLAG_USE_LMTP) ? "LMTP" : "ESMTP",
|
||||
session->namaddr, STR(session->buffer));
|
||||
session->namaddrport, STR(session->buffer));
|
||||
vstream_longjmp(session->stream, SMTP_ERR_PROTO);
|
||||
}
|
||||
}
|
||||
|
@@ -23,6 +23,7 @@
|
||||
VAR_PROP_EXTENSION, DEF_PROP_EXTENSION, &var_prop_extension, 0, 0,
|
||||
VAR_SMTP_GENERIC_MAPS, DEF_SMTP_GENERIC_MAPS, &var_smtp_generic_maps, 0, 0,
|
||||
VAR_LMTP_TCP_PORT, DEF_LMTP_TCP_PORT, &var_lmtp_tcp_port, 0, 0,
|
||||
VAR_SMTP_PIPE_DOT_QUIT, DEF_SMTP_PIPE_DOT_QUIT, &var_smtp_pipe_dot_quit, 1, 0,
|
||||
0,
|
||||
};
|
||||
static CONFIG_TIME_TABLE smtp_time_table[] = {
|
||||
@@ -44,6 +45,7 @@
|
||||
VAR_SMTP_STARTTLS_TMOUT, DEF_SMTP_STARTTLS_TMOUT, &var_smtp_starttls_tmout, 1, 0,
|
||||
#endif
|
||||
VAR_SCACHE_PROTO_TMOUT, DEF_SCACHE_PROTO_TMOUT, &var_scache_proto_tmout, 1, 0,
|
||||
VAR_MIN_BACKOFF_TIME, DEF_MIN_BACKOFF_TIME, &var_min_backoff_time, 1, 0,
|
||||
0,
|
||||
};
|
||||
static CONFIG_INT_TABLE smtp_int_table[] = {
|
||||
|
@@ -926,8 +926,16 @@ static int smtp_loop(SMTP_STATE *state, NOCLOBBER int send_state,
|
||||
#define SENDER_IS_AHEAD \
|
||||
(recv_state < send_state || recv_rcpt != send_rcpt)
|
||||
|
||||
#define DONT_PIPELINE_DOT_QUIT \
|
||||
(smtp_pipe_dot_quit == SMTP_PIPE_DOT_QUIT_CODE_NEVER \
|
||||
|| (smtp_pipe_dot_quit == SMTP_PIPE_DOT_QUIT_CODE_NEWMAIL \
|
||||
&& request->msg_stats.incoming_arrival.tv_sec \
|
||||
< vstream_ftime(session->stream) - var_min_backoff_time))
|
||||
|
||||
#define SENDER_IN_WAIT_STATE \
|
||||
(send_state == SMTP_STATE_DOT || send_state == SMTP_STATE_LAST)
|
||||
(send_state == SMTP_STATE_DOT || send_state == SMTP_STATE_LAST \
|
||||
|| (recv_state == SMTP_STATE_DOT && send_state == SMTP_STATE_QUIT \
|
||||
&& DONT_PIPELINE_DOT_QUIT))
|
||||
|
||||
#define SENDING_MAIL \
|
||||
(recv_state <= SMTP_STATE_DOT)
|
||||
@@ -1144,7 +1152,8 @@ static int smtp_loop(SMTP_STATE *state, NOCLOBBER int send_state,
|
||||
break;
|
||||
|
||||
/*
|
||||
* Build the "." command before we have seen the DATA response.
|
||||
* Build the "." command after we have seen the DATA response
|
||||
* (DATA is a protocol synchronization point).
|
||||
*
|
||||
* Changing the connection caching state here is safe because it
|
||||
* affects none of the not-yet processed replies to
|
||||
|
Reference in New Issue
Block a user