mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-22 09:57:34 +00:00
postfix-2.12-20140321
This commit is contained in:
parent
1b55748771
commit
48a0b6fc23
@ -19627,10 +19627,25 @@ Apologies for any names omitted.
|
|||||||
Feature: local_bounce_defer_filter support. Files:
|
Feature: local_bounce_defer_filter support. Files:
|
||||||
global/bounce.[hc], global/defer.[hc], local/command.c,
|
global/bounce.[hc], global/defer.[hc], local/command.c,
|
||||||
local/file.c, local/bounce_workaround.c, local/local.c,
|
local/file.c, local/bounce_workaround.c, local/local.c,
|
||||||
global/mail_params.h.
|
global/mail_params.h, mantools/postlink.
|
||||||
|
|
||||||
20140318
|
20140318
|
||||||
|
|
||||||
Refinement: don't throttle an SMTP destination when the new
|
Refinement: don't throttle an SMTP destination when the new
|
||||||
smtp_bounce_defer_filter feature turns a soft bounce into
|
smtp_bounce_defer_filter feature turns a soft bounce into
|
||||||
a hard bounce. File: smtp/smtp_trouble.c.
|
a hard bounce. File: smtp/smtp_trouble.c.
|
||||||
|
|
||||||
|
20140320
|
||||||
|
|
||||||
|
Feature: support to replace successful delivery status code
|
||||||
|
and explanatory text. This can be used to to hide local
|
||||||
|
details such as destination commands or file names when a
|
||||||
|
remote sender requests confirmation of delivery. As of now
|
||||||
|
*_bounce_defer_filter is renamed into *_delivery_status_filter.
|
||||||
|
Files: global/bounce.c, global/bounce.h, global/defer.c,
|
||||||
|
global/defer.h, global/dsn_filter.c, global/dsn_filter.h,
|
||||||
|
global/mail_params.c, global/mail_params.h, global/sent.c,
|
||||||
|
local/local.c, master/event_server.c, master/multi_server.c,
|
||||||
|
master/single_server.c, master/trigger_server.c, pipe/pipe.c,
|
||||||
|
smtp/lmtp_params.c, smtp/smtp.c, smtp/smtp_params.c,
|
||||||
|
virtual/virtual.c, mantools/postlink.
|
||||||
|
@ -16,42 +16,53 @@ specifies the release date of a stable release or snapshot release.
|
|||||||
If you upgrade from Postfix 2.10 or earlier, read RELEASE_NOTES-2.11
|
If you upgrade from Postfix 2.10 or earlier, read RELEASE_NOTES-2.11
|
||||||
before proceeding.
|
before proceeding.
|
||||||
|
|
||||||
Major changes with snapshot 20140318
|
Major changes with snapshot 20140321
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
Support to change arbitrary hard delivery errors into soft errors
|
Delivery status filter support, to replace the delivery status codes
|
||||||
and vice versa, or to replace the descriptive text in non-delivery
|
and explanatory text of successful or unsuccessful deliveries. This
|
||||||
notifications. This was originally implemented for sites that want
|
was originally implemented for sites that want to turn certain soft
|
||||||
to bounce mail when no remote SMTP server supports STARTTLS.
|
delivery errors into hard delivery errors, but it can also be used
|
||||||
|
to censor out information from delivery confirmation reports.
|
||||||
|
|
||||||
This feature is implemented as a filter that replaces the three-number
|
This feature is implemented as a filter that replaces the three-number
|
||||||
enhanced status code and descriptive text in Postfix delivery agent
|
enhanced status code and descriptive text in Postfix delivery agent
|
||||||
bounce/defer messages. Note: this will not override "soft_bounce=yes".
|
success, bounce, or defer messages. Note: this will not override
|
||||||
|
"soft_bounce=yes", and this will not change a successful delivery
|
||||||
|
status into an unsuccessful status or vice versa.
|
||||||
|
|
||||||
The following example turns specific soft TLS errors into hard
|
The first example turns specific soft TLS errors into hard
|
||||||
errors, by overriding the first number in the enhanced status code.
|
errors, by overriding the first number in the enhanced status code.
|
||||||
|
|
||||||
/etc/postfix/main.cf:
|
/etc/postfix/main.cf:
|
||||||
smtp_bounce_defer_filter = pcre:/etc/postfix/smtp_ndr_filter
|
smtp_delivery_status_filter = pcre:/etc/postfix/smtp_dsn_filter
|
||||||
|
|
||||||
/etc/postfix/smtp_ndr_filter:
|
/etc/postfix/smtp_dsn_filter:
|
||||||
/^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/ 5$1
|
/^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/ 5$1
|
||||||
/^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/ 5$1
|
/^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/ 5$1
|
||||||
|
|
||||||
|
The second example removes the destination command name and file
|
||||||
|
name from local(8) successful delivery reports, so that they will
|
||||||
|
not be reported when a sender requests confirmation of delivery.
|
||||||
|
|
||||||
|
/etc/postfix/main.cf:
|
||||||
|
local_delivery_status_filter = pcre:/etc/postfix/local_dsn_filter
|
||||||
|
|
||||||
|
/etc/postfix/local_dsn_filter:
|
||||||
|
/^(2\S+ delivered to file).+/ $1
|
||||||
|
/^(2\S+ delivered to command).+/ $1
|
||||||
|
|
||||||
This feature is supported in the lmtp(8), local(8), pipe(8), smtp(8)
|
This feature is supported in the lmtp(8), local(8), pipe(8), smtp(8)
|
||||||
and virtual(8) delivery agents. That is, all delivery agents that
|
and virtual(8) delivery agents. That is, all delivery agents that
|
||||||
actually deliver mail.
|
actually deliver mail.
|
||||||
|
|
||||||
This feature will not be supported in the error(8) or retry(8) dummy
|
|
||||||
delivery agents, because lots of things would break.
|
|
||||||
|
|
||||||
The new main.cf parameters and default values are:
|
The new main.cf parameters and default values are:
|
||||||
|
|
||||||
default_bounce_defer_filter =
|
default_delivery_status_filter =
|
||||||
lmtp_bounce_defer_filter = $default_bounce_defer_filter
|
lmtp_delivery_status_filter = $default_delivery_status_filter
|
||||||
local_bounce_defer_filter = $default_bounce_defer_filter
|
local_delivery_status_filter = $default_delivery_status_filter
|
||||||
pipe_bounce_defer_filter = $default_bounce_defer_filter
|
pipe_delivery_status_filter = $default_delivery_status_filter
|
||||||
smtp_bounce_defer_filter = $default_bounce_defer_filter
|
smtp_delivery_status_filter = $default_delivery_status_filter
|
||||||
virtual_bounce_defer_filter = $default_bounce_defer_filter
|
virtual_delivery_status_filter = $default_delivery_status_filter
|
||||||
|
|
||||||
See the postconf(5) manpage for more details.
|
See the postconf(5) manpage for more details.
|
||||||
|
@ -292,9 +292,10 @@ SMTP(8) SMTP(8)
|
|||||||
|
|
||||||
Available in Postfix version 2.12 and later:
|
Available in Postfix version 2.12 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_bounce_defer_filter">smtp_bounce_defer_filter</a> ($<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a>)</b>
|
<b><a href="postconf.5.html#smtp_delivery_status_filter">smtp_delivery_status_filter</a> ($<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b>
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
Optional filter for the <a href="smtp.8.html"><b>smtp</b>(8)</a> delivery agent to change the
|
||||||
soft errors and vice versa in the <a href="smtp.8.html"><b>smtp</b>(8)</a> delivery agent.
|
delivery status code or explanatory text of successful or unsuc-
|
||||||
|
cessful deliveries.
|
||||||
|
|
||||||
<b>MIME PROCESSING CONTROLS</b>
|
<b>MIME PROCESSING CONTROLS</b>
|
||||||
Available in Postfix version 2.0 and later:
|
Available in Postfix version 2.0 and later:
|
||||||
@ -312,7 +313,7 @@ SMTP(8) SMTP(8)
|
|||||||
Available in Postfix version 2.1 and later:
|
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>
|
<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
|
Send the non-standard XFORWARD command when the Postfix SMTP
|
||||||
server EHLO response announces XFORWARD support.
|
server EHLO response announces XFORWARD support.
|
||||||
|
|
||||||
<b>SASL AUTHENTICATION CONTROLS</b>
|
<b>SASL AUTHENTICATION CONTROLS</b>
|
||||||
@ -320,62 +321,62 @@ SMTP(8) SMTP(8)
|
|||||||
Enable SASL authentication in the Postfix SMTP client.
|
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>
|
<b><a href="postconf.5.html#smtp_sasl_password_maps">smtp_sasl_password_maps</a> (empty)</b>
|
||||||
Optional Postfix SMTP client lookup tables with one user-
|
Optional Postfix SMTP client lookup tables with one user-
|
||||||
name:password entry per remote hostname or domain, or sender
|
name:password entry per remote hostname or domain, or sender
|
||||||
address when sender-dependent authentication is enabled.
|
address when sender-dependent authentication is enabled.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_security_options">smtp_sasl_security_options</a> (noplaintext, noanonymous)</b>
|
<b><a href="postconf.5.html#smtp_sasl_security_options">smtp_sasl_security_options</a> (noplaintext, noanonymous)</b>
|
||||||
Postfix SMTP client SASL security options; as of Postfix 2.3 the
|
Postfix SMTP client SASL security options; as of Postfix 2.3 the
|
||||||
list of available features depends on the SASL client implemen-
|
list of available features depends on the SASL client implemen-
|
||||||
tation that is selected with <b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b>.
|
tation 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:
|
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>
|
<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
|
If non-empty, a Postfix SMTP client filter for the remote SMTP
|
||||||
server's list of offered SASL mechanisms.
|
server's list of offered SASL mechanisms.
|
||||||
|
|
||||||
Available in Postfix version 2.3 and later:
|
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>
|
<b><a href="postconf.5.html#smtp_sender_dependent_authentication">smtp_sender_dependent_authentication</a> (no)</b>
|
||||||
Enable sender-dependent authentication in the Postfix SMTP
|
Enable sender-dependent authentication in the Postfix SMTP
|
||||||
client; this is available only with SASL authentication, and
|
client; this is available only with SASL authentication, and
|
||||||
disables SMTP connection caching to ensure that mail from dif-
|
disables SMTP connection caching to ensure that mail from dif-
|
||||||
ferent senders will use the appropriate credentials.
|
ferent senders will use the appropriate credentials.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_path">smtp_sasl_path</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_sasl_path">smtp_sasl_path</a> (empty)</b>
|
||||||
Implementation-specific information that the Postfix SMTP client
|
Implementation-specific information that the Postfix SMTP client
|
||||||
passes through to the SASL plug-in implementation that is
|
passes 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>.
|
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>
|
<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 should use
|
The SASL plug-in type that the Postfix SMTP client should use
|
||||||
for authentication.
|
for authentication.
|
||||||
|
|
||||||
Available in Postfix version 2.5 and later:
|
Available in Postfix version 2.5 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> (empty)</b>
|
||||||
An optional table to prevent repeated SASL authentication fail-
|
An optional table to prevent repeated SASL authentication fail-
|
||||||
ures with the same remote SMTP server hostname, username and
|
ures with the same remote SMTP server hostname, username and
|
||||||
password.
|
password.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_auth_cache_time">smtp_sasl_auth_cache_time</a> (90d)</b>
|
<b><a href="postconf.5.html#smtp_sasl_auth_cache_time">smtp_sasl_auth_cache_time</a> (90d)</b>
|
||||||
The maximal age of an <a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> entry before it
|
The maximal age of an <a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> entry before it
|
||||||
is removed.
|
is removed.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_auth_soft_bounce">smtp_sasl_auth_soft_bounce</a> (yes)</b>
|
<b><a href="postconf.5.html#smtp_sasl_auth_soft_bounce">smtp_sasl_auth_soft_bounce</a> (yes)</b>
|
||||||
When a remote SMTP server rejects a SASL authentication request
|
When a remote SMTP server rejects a SASL authentication request
|
||||||
with a 535 reply code, defer mail delivery instead of returning
|
with a 535 reply code, defer mail delivery instead of returning
|
||||||
mail as undeliverable.
|
mail as undeliverable.
|
||||||
|
|
||||||
Available in Postfix version 2.9 and later:
|
Available in Postfix version 2.9 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_send_dummy_mail_auth">smtp_send_dummy_mail_auth</a> (no)</b>
|
<b><a href="postconf.5.html#smtp_send_dummy_mail_auth">smtp_send_dummy_mail_auth</a> (no)</b>
|
||||||
Whether or not to append the "AUTH=<>" option to the MAIL FROM
|
Whether or not to append the "AUTH=<>" option to the MAIL FROM
|
||||||
command in SASL-authenticated SMTP sessions.
|
command in SASL-authenticated SMTP sessions.
|
||||||
|
|
||||||
<b>STARTTLS SUPPORT CONTROLS</b>
|
<b>STARTTLS SUPPORT CONTROLS</b>
|
||||||
Detailed information about STARTTLS configuration may be found in the
|
Detailed information about STARTTLS configuration may be found in the
|
||||||
<a href="TLS_README.html">TLS_README</a> document.
|
<a href="TLS_README.html">TLS_README</a> document.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> (empty)</b>
|
||||||
@ -385,20 +386,20 @@ SMTP(8) SMTP(8)
|
|||||||
<a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a>.
|
<a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a>.
|
||||||
|
|
||||||
<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_security_options</a>)</b>
|
<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_security_options</a>)</b>
|
||||||
The SASL authentication security options that the Postfix SMTP
|
The SASL authentication security options that the Postfix SMTP
|
||||||
client uses for TLS encrypted SMTP sessions.
|
client uses for TLS encrypted SMTP sessions.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_starttls_timeout">smtp_starttls_timeout</a> (300s)</b>
|
<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
|
Time limit for Postfix SMTP client write and read operations
|
||||||
during TLS startup and shutdown handshake procedures.
|
during TLS startup and shutdown handshake procedures.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a> (empty)</b>
|
||||||
A file containing CA certificates of root CAs trusted to sign
|
A file containing CA certificates of root CAs trusted to sign
|
||||||
either remote SMTP server certificates or intermediate CA cer-
|
either remote SMTP server certificates or intermediate CA cer-
|
||||||
tificates.
|
tificates.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a> (empty)</b>
|
||||||
Directory with PEM format certificate authority certificates
|
Directory with PEM format certificate authority certificates
|
||||||
that the Postfix SMTP client uses to verify a remote SMTP server
|
that the Postfix SMTP client uses to verify a remote SMTP server
|
||||||
certificate.
|
certificate.
|
||||||
|
|
||||||
@ -406,7 +407,7 @@ SMTP(8) SMTP(8)
|
|||||||
File with the Postfix SMTP client RSA certificate in PEM format.
|
File with the Postfix SMTP client RSA certificate in PEM format.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> (medium)</b>
|
<b><a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> (medium)</b>
|
||||||
The minimum TLS cipher grade that the Postfix SMTP client will
|
The minimum TLS cipher grade that the Postfix SMTP client will
|
||||||
use with mandatory TLS encryption.
|
use with mandatory TLS encryption.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a> (empty)</b>
|
||||||
@ -414,8 +415,8 @@ SMTP(8) SMTP(8)
|
|||||||
client cipher list at all TLS security levels.
|
client cipher list at all TLS security levels.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a> (empty)</b>
|
||||||
Additional list of ciphers or cipher types to exclude from the
|
Additional list of ciphers or cipher types to exclude from the
|
||||||
Postfix SMTP client cipher list at mandatory TLS security lev-
|
Postfix SMTP client cipher list at mandatory TLS security lev-
|
||||||
els.
|
els.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a> (empty)</b>
|
||||||
@ -431,7 +432,7 @@ SMTP(8) SMTP(8)
|
|||||||
Enable additional Postfix SMTP client logging of TLS activity.
|
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>
|
<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,
|
Log the hostname of a remote SMTP server that offers STARTTLS,
|
||||||
when TLS is not already enabled for that server.
|
when TLS is not already enabled for that server.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> (empty)</b>
|
||||||
@ -440,14 +441,14 @@ SMTP(8) SMTP(8)
|
|||||||
fied, this overrides the obsolete <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> parameter.
|
fied, this overrides the obsolete <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> parameter.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> (!SSLv2)</b>
|
<b><a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> (!SSLv2)</b>
|
||||||
List of SSL/TLS protocols that the Postfix SMTP client will use
|
List of SSL/TLS protocols that the Postfix SMTP client will use
|
||||||
with mandatory TLS encryption.
|
with mandatory TLS encryption.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_scert_verifydepth">smtp_tls_scert_verifydepth</a> (9)</b>
|
<b><a href="postconf.5.html#smtp_tls_scert_verifydepth">smtp_tls_scert_verifydepth</a> (9)</b>
|
||||||
The verification depth for remote SMTP server certificates.
|
The verification depth for remote SMTP server certificates.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a> (nexthop, dot-nexthop)</b>
|
<b><a href="postconf.5.html#smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a> (nexthop, dot-nexthop)</b>
|
||||||
How the Postfix SMTP client verifies the server certificate
|
How the Postfix SMTP client verifies the server certificate
|
||||||
peername for the "secure" TLS security level.
|
peername for the "secure" TLS security level.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a> (empty)</b>
|
||||||
@ -455,16 +456,16 @@ SMTP(8) SMTP(8)
|
|||||||
session cache.
|
session cache.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_session_cache_timeout">smtp_tls_session_cache_timeout</a> (3600s)</b>
|
<b><a href="postconf.5.html#smtp_tls_session_cache_timeout">smtp_tls_session_cache_timeout</a> (3600s)</b>
|
||||||
The expiration time of Postfix SMTP client TLS session cache
|
The expiration time of Postfix SMTP client TLS session cache
|
||||||
information.
|
information.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_verify_cert_match">smtp_tls_verify_cert_match</a> (hostname)</b>
|
<b><a href="postconf.5.html#smtp_tls_verify_cert_match">smtp_tls_verify_cert_match</a> (hostname)</b>
|
||||||
How the Postfix SMTP client verifies the server certificate
|
How the Postfix SMTP client verifies the server certificate
|
||||||
peername for the "verify" TLS security level.
|
peername for the "verify" TLS security level.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#tls_daemon_random_bytes">tls_daemon_random_bytes</a> (32)</b>
|
<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>
|
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
|
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).
|
internal pseudo random number generator (PRNG).
|
||||||
|
|
||||||
<b><a href="postconf.5.html#tls_high_cipherlist">tls_high_cipherlist</a> (ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH)</b>
|
<b><a href="postconf.5.html#tls_high_cipherlist">tls_high_cipherlist</a> (ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH)</b>
|
||||||
@ -480,52 +481,52 @@ SMTP(8) SMTP(8)
|
|||||||
The OpenSSL cipherlist for "EXPORT" or higher grade ciphers.
|
The OpenSSL cipherlist for "EXPORT" or higher grade ciphers.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#tls_null_cipherlist">tls_null_cipherlist</a> (eNULL:!aNULL)</b>
|
<b><a href="postconf.5.html#tls_null_cipherlist">tls_null_cipherlist</a> (eNULL:!aNULL)</b>
|
||||||
The OpenSSL cipherlist for "NULL" grade ciphers that provide
|
The OpenSSL cipherlist for "NULL" grade ciphers that provide
|
||||||
authentication without encryption.
|
authentication without encryption.
|
||||||
|
|
||||||
Available in Postfix version 2.4 and later:
|
Available in Postfix version 2.4 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_tls_verified_security_options">smtp_sasl_tls_verified_security_options</a> ($<a href="postconf.5.html#smtp_sasl_tls_security_options">smtp_sasl_tls_secu</a>-</b>
|
<b><a href="postconf.5.html#smtp_sasl_tls_verified_security_options">smtp_sasl_tls_verified_security_options</a> ($<a href="postconf.5.html#smtp_sasl_tls_security_options">smtp_sasl_tls_secu</a>-</b>
|
||||||
<b><a href="postconf.5.html#smtp_sasl_tls_security_options">rity_options</a>)</b>
|
<b><a href="postconf.5.html#smtp_sasl_tls_security_options">rity_options</a>)</b>
|
||||||
The SASL authentication security options that the Postfix SMTP
|
The SASL authentication security options that the Postfix SMTP
|
||||||
client uses for TLS encrypted SMTP sessions with a verified
|
client uses for TLS encrypted SMTP sessions with a verified
|
||||||
server certificate.
|
server certificate.
|
||||||
|
|
||||||
Available in Postfix version 2.5 and later:
|
Available in Postfix version 2.5 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a> (empty)</b>
|
||||||
List of acceptable remote SMTP server certificate fingerprints
|
List of acceptable remote SMTP server certificate fingerprints
|
||||||
for the "fingerprint" TLS security level (<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_secu</a>-</b>
|
for the "fingerprint" TLS security level (<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_secu</a>-</b>
|
||||||
<b><a href="postconf.5.html#smtp_tls_security_level">rity_level</a></b> = fingerprint).
|
<b><a href="postconf.5.html#smtp_tls_security_level">rity_level</a></b> = fingerprint).
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> (md5)</b>
|
<b><a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> (md5)</b>
|
||||||
The message digest algorithm used to construct remote SMTP
|
The message digest algorithm used to construct remote SMTP
|
||||||
server certificate fingerprints.
|
server certificate fingerprints.
|
||||||
|
|
||||||
Available in Postfix version 2.6 and later:
|
Available in Postfix version 2.6 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> (!SSLv2)</b>
|
<b><a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> (!SSLv2)</b>
|
||||||
List of TLS protocols that the Postfix SMTP client will exclude
|
List of TLS protocols that the Postfix SMTP client will exclude
|
||||||
or include with opportunistic TLS encryption.
|
or include with opportunistic TLS encryption.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a> (export)</b>
|
<b><a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a> (export)</b>
|
||||||
The minimum TLS cipher grade that the Postfix SMTP client will
|
The minimum TLS cipher grade that the Postfix SMTP client will
|
||||||
use with opportunistic TLS encryption.
|
use with opportunistic TLS encryption.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a> (empty)</b>
|
||||||
File with the Postfix SMTP client ECDSA certificate in PEM for-
|
File with the Postfix SMTP client ECDSA certificate in PEM for-
|
||||||
mat.
|
mat.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_eckey_file">smtp_tls_eckey_file</a> ($<a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a>)</b>
|
<b><a href="postconf.5.html#smtp_tls_eckey_file">smtp_tls_eckey_file</a> ($<a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a>)</b>
|
||||||
File with the Postfix SMTP client ECDSA private key in PEM for-
|
File with the Postfix SMTP client ECDSA private key in PEM for-
|
||||||
mat.
|
mat.
|
||||||
|
|
||||||
Available in Postfix version 2.7 and later:
|
Available in Postfix version 2.7 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_block_early_mail_reply">smtp_tls_block_early_mail_reply</a> (no)</b>
|
<b><a href="postconf.5.html#smtp_tls_block_early_mail_reply">smtp_tls_block_early_mail_reply</a> (no)</b>
|
||||||
Try to detect a mail hijacking attack based on a TLS protocol
|
Try to detect a mail hijacking attack based on a TLS protocol
|
||||||
vulnerability (CVE-2009-3555), where an attacker prepends mali-
|
vulnerability (CVE-2009-3555), where an attacker prepends mali-
|
||||||
cious HELO, MAIL, RCPT, DATA commands to a Postfix SMTP client
|
cious HELO, MAIL, RCPT, DATA commands to a Postfix SMTP client
|
||||||
TLS session.
|
TLS session.
|
||||||
|
|
||||||
Available in Postfix version 2.8 and later:
|
Available in Postfix version 2.8 and later:
|
||||||
@ -536,11 +537,11 @@ SMTP(8) SMTP(8)
|
|||||||
Available in Postfix version 2.11 and later:
|
Available in Postfix version 2.11 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_trust_anchor_file">smtp_tls_trust_anchor_file</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_trust_anchor_file">smtp_tls_trust_anchor_file</a> (empty)</b>
|
||||||
Zero or more PEM-format files with trust-anchor certificates
|
Zero or more PEM-format files with trust-anchor certificates
|
||||||
and/or public keys.
|
and/or public keys.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_force_insecure_host_tlsa_lookup">smtp_tls_force_insecure_host_tlsa_lookup</a> (no)</b>
|
<b><a href="postconf.5.html#smtp_tls_force_insecure_host_tlsa_lookup">smtp_tls_force_insecure_host_tlsa_lookup</a> (no)</b>
|
||||||
Lookup the associated DANE TLSA RRset even when a hostname is
|
Lookup the associated DANE TLSA RRset even when a hostname is
|
||||||
not an alias and its address records lie in an unsigned zone.
|
not an alias and its address records lie in an unsigned zone.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#tls_dane_trust_anchor_digest_enable">tls_dane_trust_anchor_digest_enable</a> (yes)</b>
|
<b><a href="postconf.5.html#tls_dane_trust_anchor_digest_enable">tls_dane_trust_anchor_digest_enable</a> (yes)</b>
|
||||||
@ -550,49 +551,49 @@ SMTP(8) SMTP(8)
|
|||||||
The name of the <a href="tlsmgr.8.html"><b>tlsmgr</b>(8)</a> service entry in <a href="master.5.html">master.cf</a>.
|
The name of the <a href="tlsmgr.8.html"><b>tlsmgr</b>(8)</a> service entry in <a href="master.5.html">master.cf</a>.
|
||||||
|
|
||||||
<b>OBSOLETE STARTTLS CONTROLS</b>
|
<b>OBSOLETE STARTTLS CONTROLS</b>
|
||||||
The following configuration parameters exist for compatibility with
|
The following configuration parameters exist for compatibility with
|
||||||
Postfix versions before 2.3. Support for these will be removed in a
|
Postfix versions before 2.3. Support for these will be removed in a
|
||||||
future release.
|
future release.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_use_tls">smtp_use_tls</a> (no)</b>
|
<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
|
Opportunistic mode: use TLS when a remote SMTP server announces
|
||||||
STARTTLS support, otherwise send the mail in the clear.
|
STARTTLS support, otherwise send the mail in the clear.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a> (no)</b>
|
<b><a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a> (no)</b>
|
||||||
Enforcement mode: require that remote SMTP servers use TLS
|
Enforcement mode: require that remote SMTP servers use TLS
|
||||||
encryption, and never send mail in the clear.
|
encryption, and never send mail in the clear.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a> (yes)</b>
|
<b><a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a> (yes)</b>
|
||||||
With mandatory TLS encryption, require that the remote SMTP
|
With mandatory TLS encryption, require that the remote SMTP
|
||||||
server hostname matches the information in the remote SMTP
|
server hostname matches the information in the remote SMTP
|
||||||
server certificate.
|
server certificate.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> (empty)</b>
|
<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
|
Optional lookup tables with the Postfix SMTP client TLS usage
|
||||||
policy by next-hop destination and by remote SMTP server host-
|
policy by next-hop destination and by remote SMTP server host-
|
||||||
name.
|
name.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_cipherlist">smtp_tls_cipherlist</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_cipherlist">smtp_tls_cipherlist</a> (empty)</b>
|
||||||
Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS
|
Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS
|
||||||
cipher list.
|
cipher list.
|
||||||
|
|
||||||
<b>RESOURCE AND RATE CONTROLS</b>
|
<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_destination_concur</a>-</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_destination_concur</a>-</b>
|
||||||
<b><a href="postconf.5.html#default_destination_concurrency_limit">rency_limit</a>)</b>
|
<b><a href="postconf.5.html#default_destination_concurrency_limit">rency_limit</a>)</b>
|
||||||
The maximal number of parallel deliveries to the same destina-
|
The maximal number of parallel deliveries to the same destina-
|
||||||
tion via the smtp message delivery transport.
|
tion 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_destination_recipient_limit</a>)</b>
|
<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_destination_recipient_limit</a>)</b>
|
||||||
The maximal number of recipients per message for the smtp mes-
|
The maximal number of recipients per message for the smtp mes-
|
||||||
sage delivery transport.
|
sage delivery transport.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_connect_timeout">smtp_connect_timeout</a> (30s)</b>
|
<b><a href="postconf.5.html#smtp_connect_timeout">smtp_connect_timeout</a> (30s)</b>
|
||||||
The Postfix SMTP client time limit for completing a TCP connec-
|
The Postfix SMTP client time limit for completing a TCP connec-
|
||||||
tion, or zero (use the operating system built-in time limit).
|
tion, 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>
|
<b><a href="postconf.5.html#smtp_helo_timeout">smtp_helo_timeout</a> (300s)</b>
|
||||||
The Postfix SMTP client time limit for sending the HELO or EHLO
|
The Postfix SMTP client time limit for sending the HELO or EHLO
|
||||||
command, and for receiving the initial remote SMTP server
|
command, and for receiving the initial remote SMTP server
|
||||||
response.
|
response.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#lmtp_lhlo_timeout">lmtp_lhlo_timeout</a> (300s)</b>
|
<b><a href="postconf.5.html#lmtp_lhlo_timeout">lmtp_lhlo_timeout</a> (300s)</b>
|
||||||
@ -604,19 +605,19 @@ SMTP(8) SMTP(8)
|
|||||||
mand, and for receiving the remote SMTP server response.
|
mand, and for receiving the remote SMTP server response.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_mail_timeout">smtp_mail_timeout</a> (300s)</b>
|
<b><a href="postconf.5.html#smtp_mail_timeout">smtp_mail_timeout</a> (300s)</b>
|
||||||
The Postfix SMTP client time limit for sending the MAIL FROM
|
The Postfix SMTP client time limit for sending the MAIL FROM
|
||||||
command, and for receiving the remote SMTP server response.
|
command, and for receiving the remote SMTP server response.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_rcpt_timeout">smtp_rcpt_timeout</a> (300s)</b>
|
<b><a href="postconf.5.html#smtp_rcpt_timeout">smtp_rcpt_timeout</a> (300s)</b>
|
||||||
The Postfix SMTP client time limit for sending the SMTP RCPT TO
|
The Postfix SMTP client time limit for sending the SMTP RCPT TO
|
||||||
command, and for receiving the remote SMTP server response.
|
command, and for receiving the remote SMTP server response.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_data_init_timeout">smtp_data_init_timeout</a> (120s)</b>
|
<b><a href="postconf.5.html#smtp_data_init_timeout">smtp_data_init_timeout</a> (120s)</b>
|
||||||
The Postfix SMTP client time limit for sending the SMTP DATA
|
The Postfix SMTP client time limit for sending the SMTP DATA
|
||||||
command, and for receiving the remote SMTP server response.
|
command, and for receiving the remote SMTP server response.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_data_xfer_timeout">smtp_data_xfer_timeout</a> (180s)</b>
|
<b><a href="postconf.5.html#smtp_data_xfer_timeout">smtp_data_xfer_timeout</a> (180s)</b>
|
||||||
The Postfix SMTP client time limit for sending the SMTP message
|
The Postfix SMTP client time limit for sending the SMTP message
|
||||||
content.
|
content.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_data_done_timeout">smtp_data_done_timeout</a> (600s)</b>
|
<b><a href="postconf.5.html#smtp_data_done_timeout">smtp_data_done_timeout</a> (600s)</b>
|
||||||
@ -630,13 +631,13 @@ SMTP(8) SMTP(8)
|
|||||||
Available in Postfix version 2.1 and later:
|
Available in Postfix version 2.1 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_mx_address_limit">smtp_mx_address_limit</a> (5)</b>
|
<b><a href="postconf.5.html#smtp_mx_address_limit">smtp_mx_address_limit</a> (5)</b>
|
||||||
The maximal number of MX (mail exchanger) IP addresses that can
|
The maximal number of MX (mail exchanger) IP addresses that can
|
||||||
result from Postfix SMTP client mail exchanger lookups, or zero
|
result from Postfix SMTP client mail exchanger lookups, or zero
|
||||||
(no limit).
|
(no limit).
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_mx_session_limit">smtp_mx_session_limit</a> (2)</b>
|
<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
|
The maximal number of SMTP sessions per delivery request before
|
||||||
the Postfix SMTP client gives up or delivers to a fall-back
|
the Postfix SMTP client gives up or delivers to a fall-back
|
||||||
<a href="postconf.5.html#relayhost">relay host</a>, or zero (no limit).
|
<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>
|
<b><a href="postconf.5.html#smtp_rset_timeout">smtp_rset_timeout</a> (20s)</b>
|
||||||
@ -646,17 +647,17 @@ SMTP(8) SMTP(8)
|
|||||||
Available in Postfix version 2.2 and earlier:
|
Available in Postfix version 2.2 and earlier:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#lmtp_cache_connection">lmtp_cache_connection</a> (yes)</b>
|
<b><a href="postconf.5.html#lmtp_cache_connection">lmtp_cache_connection</a> (yes)</b>
|
||||||
Keep Postfix LMTP client connections open for up to $<a href="postconf.5.html#max_idle">max_idle</a>
|
Keep Postfix LMTP client connections open for up to $<a href="postconf.5.html#max_idle">max_idle</a>
|
||||||
seconds.
|
seconds.
|
||||||
|
|
||||||
Available in Postfix version 2.2 and later:
|
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>
|
<b><a href="postconf.5.html#smtp_connection_cache_destinations">smtp_connection_cache_destinations</a> (empty)</b>
|
||||||
Permanently enable SMTP connection caching for the specified
|
Permanently enable SMTP connection caching for the specified
|
||||||
destinations.
|
destinations.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_connection_cache_on_demand">smtp_connection_cache_on_demand</a> (yes)</b>
|
<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 destination
|
Temporarily enable SMTP connection caching while a destination
|
||||||
has a high volume of mail in the <a href="QSHAPE_README.html#active_queue">active queue</a>.
|
has a high volume of mail in the <a href="QSHAPE_README.html#active_queue">active queue</a>.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_connection_reuse_time_limit">smtp_connection_reuse_time_limit</a> (300s)</b>
|
<b><a href="postconf.5.html#smtp_connection_reuse_time_limit">smtp_connection_reuse_time_limit</a> (300s)</b>
|
||||||
@ -670,37 +671,37 @@ SMTP(8) SMTP(8)
|
|||||||
Available in Postfix version 2.3 and later:
|
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>
|
<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 receive opera-
|
Time limit for connection cache connect, send or receive opera-
|
||||||
tions.
|
tions.
|
||||||
|
|
||||||
Available in Postfix version 2.9 and later:
|
Available in Postfix version 2.9 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_per_record_deadline">smtp_per_record_deadline</a> (no)</b>
|
<b><a href="postconf.5.html#smtp_per_record_deadline">smtp_per_record_deadline</a> (no)</b>
|
||||||
Change the behavior of the smtp_*_timeout time limits, from a
|
Change the behavior of the smtp_*_timeout time limits, from a
|
||||||
time limit per read or write system call, to a time limit to
|
time limit per read or write system call, to a time limit to
|
||||||
send or receive a complete record (an SMTP command line, SMTP
|
send or receive a complete record (an SMTP command line, SMTP
|
||||||
response line, SMTP message content line, or TLS protocol mes-
|
response line, SMTP message content line, or TLS protocol mes-
|
||||||
sage).
|
sage).
|
||||||
|
|
||||||
Available in Postfix version 2.11 and later:
|
Available in Postfix version 2.11 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_connection_reuse_count_limit">smtp_connection_reuse_count_limit</a> (0)</b>
|
<b><a href="postconf.5.html#smtp_connection_reuse_count_limit">smtp_connection_reuse_count_limit</a> (0)</b>
|
||||||
When SMTP connection caching is enabled, the number of times
|
When SMTP connection caching is enabled, the number of times
|
||||||
that an SMTP session may be reused before it is closed, or zero
|
that an SMTP session may be reused before it is closed, or zero
|
||||||
(no limit).
|
(no limit).
|
||||||
|
|
||||||
<b>TROUBLE SHOOTING CONTROLS</b>
|
<b>TROUBLE SHOOTING CONTROLS</b>
|
||||||
<b><a href="postconf.5.html#debug_peer_level">debug_peer_level</a> (2)</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
|
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.
|
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>
|
<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
|
Optional list of remote client or server hostname or network
|
||||||
address patterns that cause the verbose logging level to
|
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>.
|
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>
|
<b><a href="postconf.5.html#error_notice_recipient">error_notice_recipient</a> (postmaster)</b>
|
||||||
The recipient of postmaster notifications about mail delivery
|
The recipient of postmaster notifications about mail delivery
|
||||||
problems that are caused by policy, resource, software or proto-
|
problems that are caused by policy, resource, software or proto-
|
||||||
col errors.
|
col errors.
|
||||||
|
|
||||||
@ -714,46 +715,46 @@ SMTP(8) SMTP(8)
|
|||||||
|
|
||||||
<b>MISCELLANEOUS CONTROLS</b>
|
<b>MISCELLANEOUS CONTROLS</b>
|
||||||
<b><a href="postconf.5.html#best_mx_transport">best_mx_transport</a> (empty)</b>
|
<b><a href="postconf.5.html#best_mx_transport">best_mx_transport</a> (empty)</b>
|
||||||
Where the Postfix SMTP client should deliver mail when it
|
Where the Postfix SMTP client should deliver mail when it
|
||||||
detects a "mail loops back to myself" error condition.
|
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>
|
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||||
figuration files.
|
figuration files.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
<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
|
How much time a Postfix daemon process may take to handle a
|
||||||
request before it is terminated by a built-in watchdog timer.
|
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>
|
<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 point when log-
|
The maximal number of digits after the decimal point when log-
|
||||||
ging sub-second delay values.
|
ging sub-second delay values.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#disable_dns_lookups">disable_dns_lookups</a> (no)</b>
|
<b><a href="postconf.5.html#disable_dns_lookups">disable_dns_lookups</a> (no)</b>
|
||||||
Disable DNS lookups in the Postfix SMTP and LMTP clients.
|
Disable DNS lookups in the Postfix SMTP and LMTP clients.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> (all)</b>
|
<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> (all)</b>
|
||||||
The network interface addresses that this mail system receives
|
The network interface addresses that this mail system receives
|
||||||
mail on.
|
mail on.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#inet_protocols">inet_protocols</a> (all)</b>
|
<b><a href="postconf.5.html#inet_protocols">inet_protocols</a> (all)</b>
|
||||||
The Internet protocols Postfix will attempt to use when making
|
The Internet protocols Postfix will attempt to use when making
|
||||||
or accepting connections.
|
or accepting connections.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
|
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
|
||||||
The time limit for sending or receiving information over an
|
The time limit for sending or receiving information over an
|
||||||
internal communication channel.
|
internal communication channel.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#lmtp_assume_final">lmtp_assume_final</a> (no)</b>
|
<b><a href="postconf.5.html#lmtp_assume_final">lmtp_assume_final</a> (no)</b>
|
||||||
When a remote LMTP server announces no DSN support, assume that
|
When a remote LMTP server announces no DSN support, assume that
|
||||||
the server performs final delivery, and send "delivered" deliv-
|
the server performs final delivery, and send "delivered" deliv-
|
||||||
ery status notifications instead of "relayed".
|
ery status notifications instead of "relayed".
|
||||||
|
|
||||||
<b><a href="postconf.5.html#lmtp_tcp_port">lmtp_tcp_port</a> (24)</b>
|
<b><a href="postconf.5.html#lmtp_tcp_port">lmtp_tcp_port</a> (24)</b>
|
||||||
The default TCP port that the Postfix LMTP client connects to.
|
The default TCP port that the Postfix LMTP client connects to.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
|
<b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
|
||||||
The maximum amount of time that an idle Postfix daemon process
|
The maximum amount of time that an idle Postfix daemon process
|
||||||
waits for an incoming connection before terminating voluntarily.
|
waits for an incoming connection before terminating voluntarily.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
|
<b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
|
||||||
@ -767,20 +768,20 @@ SMTP(8) SMTP(8)
|
|||||||
The process name of a Postfix command or daemon process.
|
The process name of a Postfix command or daemon process.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> (empty)</b>
|
<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> (empty)</b>
|
||||||
The network interface addresses that this mail system receives
|
The network interface addresses that this mail system receives
|
||||||
mail on by way of a proxy or network address translation unit.
|
mail on by way of a proxy or network address translation unit.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_address_preference">smtp_address_preference</a> (any)</b>
|
<b><a href="postconf.5.html#smtp_address_preference">smtp_address_preference</a> (any)</b>
|
||||||
The address type ("ipv6", "ipv4" or "any") that the Postfix SMTP
|
The address type ("ipv6", "ipv4" or "any") that the Postfix SMTP
|
||||||
client will try first, when a destination has IPv6 and IPv4
|
client will try first, when a destination has IPv6 and IPv4
|
||||||
addresses with equal MX preference.
|
addresses with equal MX preference.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a> (empty)</b>
|
||||||
An optional numerical network address that the Postfix SMTP
|
An optional numerical network address that the Postfix SMTP
|
||||||
client should bind to when making an IPv4 connection.
|
client should bind to when making an IPv4 connection.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a> (empty)</b>
|
||||||
An optional numerical network address that the Postfix SMTP
|
An optional numerical network address that the Postfix SMTP
|
||||||
client should bind to when making an IPv6 connection.
|
client should bind to when making an IPv6 connection.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_helo_name">smtp_helo_name</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
<b><a href="postconf.5.html#smtp_helo_name">smtp_helo_name</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
||||||
@ -800,8 +801,8 @@ SMTP(8) SMTP(8)
|
|||||||
The syslog facility of Postfix logging.
|
The syslog facility of Postfix logging.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||||
The mail system name that is prepended to the process name in
|
The mail system name that is prepended to the process name in
|
||||||
syslog records, so that "smtpd" becomes, for example, "post-
|
syslog records, so that "smtpd" becomes, for example, "post-
|
||||||
fix/smtpd".
|
fix/smtpd".
|
||||||
|
|
||||||
Available with Postfix 2.2 and earlier:
|
Available with Postfix 2.2 and earlier:
|
||||||
|
@ -360,43 +360,44 @@ LOCAL(8) LOCAL(8)
|
|||||||
|
|
||||||
Available in Postfix version 2.12 and later:
|
Available in Postfix version 2.12 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#local_bounce_defer_filter">local_bounce_defer_filter</a> ($<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a>)</b>
|
<b><a href="postconf.5.html#local_delivery_status_filter">local_delivery_status_filter</a> ($<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b>
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
Optional filter for the <a href="local.8.html"><b>local</b>(8)</a> delivery agent to change the
|
||||||
soft errors and vice versa in the <a href="local.8.html"><b>local</b>(8)</a> delivery agent.
|
status code or explanatory text of successful or unsuccessful
|
||||||
|
deliveries.
|
||||||
|
|
||||||
<b>DELIVERY METHOD CONTROLS</b>
|
<b>DELIVERY METHOD CONTROLS</b>
|
||||||
The precedence of <a href="local.8.html"><b>local</b>(8)</a> delivery methods from high to low is:
|
The precedence of <a href="local.8.html"><b>local</b>(8)</a> delivery methods from high to low is:
|
||||||
aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
|
aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
|
||||||
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_direc</a>-
|
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_direc</a>-
|
||||||
<a href="postconf.5.html#mail_spool_directory">tory</a>, <a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a>, and <a href="postconf.5.html#luser_relay">luser_relay</a>.
|
<a href="postconf.5.html#mail_spool_directory">tory</a>, <a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a>, and <a href="postconf.5.html#luser_relay">luser_relay</a>.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#alias_maps">alias_maps</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#alias_maps">alias_maps</a> (see 'postconf -d' output)</b>
|
||||||
The alias databases that are used for <a href="local.8.html"><b>local</b>(8)</a> delivery.
|
The alias databases that are used for <a href="local.8.html"><b>local</b>(8)</a> delivery.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#forward_path">forward_path</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#forward_path">forward_path</a> (see 'postconf -d' output)</b>
|
||||||
The <a href="local.8.html"><b>local</b>(8)</a> delivery agent search list for finding a .forward
|
The <a href="local.8.html"><b>local</b>(8)</a> delivery agent search list for finding a .forward
|
||||||
file with user-specified delivery methods.
|
file with user-specified delivery methods.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a> (empty)</b>
|
<b><a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a> (empty)</b>
|
||||||
Optional lookup tables with per-recipient message delivery
|
Optional lookup tables with per-recipient message delivery
|
||||||
transports to use for <a href="local.8.html"><b>local</b>(8)</a> mailbox delivery, whether or not
|
transports to use for <a href="local.8.html"><b>local</b>(8)</a> mailbox delivery, whether or not
|
||||||
the recipients are found in the UNIX passwd database.
|
the recipients are found in the UNIX passwd database.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#mailbox_transport">mailbox_transport</a> (empty)</b>
|
<b><a href="postconf.5.html#mailbox_transport">mailbox_transport</a> (empty)</b>
|
||||||
Optional message delivery transport that the <a href="local.8.html"><b>local</b>(8)</a> delivery
|
Optional message delivery transport that the <a href="local.8.html"><b>local</b>(8)</a> delivery
|
||||||
agent should use for mailbox delivery to all local recipients,
|
agent should use for mailbox delivery to all local recipients,
|
||||||
whether or not they are found in the UNIX passwd database.
|
whether or not they are found in the UNIX passwd database.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a> (empty)</b>
|
<b><a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a> (empty)</b>
|
||||||
Optional lookup tables with per-recipient external commands to
|
Optional lookup tables with per-recipient external commands to
|
||||||
use for <a href="local.8.html"><b>local</b>(8)</a> mailbox delivery.
|
use for <a href="local.8.html"><b>local</b>(8)</a> mailbox delivery.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#mailbox_command">mailbox_command</a> (empty)</b>
|
<b><a href="postconf.5.html#mailbox_command">mailbox_command</a> (empty)</b>
|
||||||
Optional external command that the <a href="local.8.html"><b>local</b>(8)</a> delivery agent
|
Optional external command that the <a href="local.8.html"><b>local</b>(8)</a> delivery agent
|
||||||
should use for mailbox delivery.
|
should use for mailbox delivery.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#home_mailbox">home_mailbox</a> (empty)</b>
|
<b><a href="postconf.5.html#home_mailbox">home_mailbox</a> (empty)</b>
|
||||||
Optional pathname of a mailbox file relative to a <a href="local.8.html"><b>local</b>(8)</a>
|
Optional pathname of a mailbox file relative to a <a href="local.8.html"><b>local</b>(8)</a>
|
||||||
user's home directory.
|
user's home directory.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a> (see 'postconf -d' output)</b>
|
||||||
@ -408,17 +409,17 @@ LOCAL(8) LOCAL(8)
|
|||||||
not find in the <a href="aliases.5.html"><b>aliases</b>(5)</a> or UNIX password database.
|
not find in the <a href="aliases.5.html"><b>aliases</b>(5)</a> or UNIX password database.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#fallback_transport">fallback_transport</a> (empty)</b>
|
<b><a href="postconf.5.html#fallback_transport">fallback_transport</a> (empty)</b>
|
||||||
Optional message delivery transport that the <a href="local.8.html"><b>local</b>(8)</a> delivery
|
Optional message delivery transport that the <a href="local.8.html"><b>local</b>(8)</a> delivery
|
||||||
agent should use for names that are not found in the <a href="aliases.5.html"><b>aliases</b>(5)</a>
|
agent should use for names that are not found in the <a href="aliases.5.html"><b>aliases</b>(5)</a>
|
||||||
or UNIX password database.
|
or UNIX password database.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#luser_relay">luser_relay</a> (empty)</b>
|
<b><a href="postconf.5.html#luser_relay">luser_relay</a> (empty)</b>
|
||||||
Optional catch-all destination for unknown <a href="local.8.html"><b>local</b>(8)</a> recipients.
|
Optional catch-all destination for unknown <a href="local.8.html"><b>local</b>(8)</a> recipients.
|
||||||
|
|
||||||
Available in Postfix version 2.2 and later:
|
Available in Postfix version 2.2 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#command_execution_directory">command_execution_directory</a> (empty)</b>
|
<b><a href="postconf.5.html#command_execution_directory">command_execution_directory</a> (empty)</b>
|
||||||
The <a href="local.8.html"><b>local</b>(8)</a> delivery agent working directory for delivery to
|
The <a href="local.8.html"><b>local</b>(8)</a> delivery agent working directory for delivery to
|
||||||
external command.
|
external command.
|
||||||
|
|
||||||
<b>MAILBOX LOCKING CONTROLS</b>
|
<b>MAILBOX LOCKING CONTROLS</b>
|
||||||
@ -427,15 +428,15 @@ LOCAL(8) LOCAL(8)
|
|||||||
mailbox file or <a href="bounce.8.html"><b>bounce</b>(8)</a> logfile.
|
mailbox file or <a href="bounce.8.html"><b>bounce</b>(8)</a> logfile.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#deliver_lock_delay">deliver_lock_delay</a> (1s)</b>
|
<b><a href="postconf.5.html#deliver_lock_delay">deliver_lock_delay</a> (1s)</b>
|
||||||
The time between attempts to acquire an exclusive lock on a
|
The time between attempts to acquire an exclusive lock on a
|
||||||
mailbox file or <a href="bounce.8.html"><b>bounce</b>(8)</a> logfile.
|
mailbox file or <a href="bounce.8.html"><b>bounce</b>(8)</a> logfile.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#stale_lock_time">stale_lock_time</a> (500s)</b>
|
<b><a href="postconf.5.html#stale_lock_time">stale_lock_time</a> (500s)</b>
|
||||||
The time after which a stale exclusive mailbox lockfile is
|
The time after which a stale exclusive mailbox lockfile is
|
||||||
removed.
|
removed.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#mailbox_delivery_lock">mailbox_delivery_lock</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#mailbox_delivery_lock">mailbox_delivery_lock</a> (see 'postconf -d' output)</b>
|
||||||
How to lock a UNIX-style <a href="local.8.html"><b>local</b>(8)</a> mailbox before attempting
|
How to lock a UNIX-style <a href="local.8.html"><b>local</b>(8)</a> mailbox before attempting
|
||||||
delivery.
|
delivery.
|
||||||
|
|
||||||
<b>RESOURCE AND RATE CONTROLS</b>
|
<b>RESOURCE AND RATE CONTROLS</b>
|
||||||
@ -448,18 +449,18 @@ LOCAL(8) LOCAL(8)
|
|||||||
<a href="showq.8.html"><b>showq</b>(8)</a> queue displays.
|
<a href="showq.8.html"><b>showq</b>(8)</a> queue displays.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#local_destination_concurrency_limit">local_destination_concurrency_limit</a> (2)</b>
|
<b><a href="postconf.5.html#local_destination_concurrency_limit">local_destination_concurrency_limit</a> (2)</b>
|
||||||
The maximal number of parallel deliveries via the local mail
|
The maximal number of parallel deliveries via the local mail
|
||||||
delivery transport to the same recipient (when "<a href="postconf.5.html#local_destination_recipient_limit">local_destina</a>-
|
delivery transport to the same recipient (when "<a href="postconf.5.html#local_destination_recipient_limit">local_destina</a>-
|
||||||
<a href="postconf.5.html#local_destination_recipient_limit">tion_recipient_limit</a> = 1") or the maximal number of parallel
|
<a href="postconf.5.html#local_destination_recipient_limit">tion_recipient_limit</a> = 1") or the maximal number of parallel
|
||||||
deliveries to the same local domain (when "<a href="postconf.5.html#local_destination_recipient_limit">local_destina</a>-
|
deliveries to the same local domain (when "<a href="postconf.5.html#local_destination_recipient_limit">local_destina</a>-
|
||||||
<a href="postconf.5.html#local_destination_recipient_limit">tion_recipient_limit</a> > 1").
|
<a href="postconf.5.html#local_destination_recipient_limit">tion_recipient_limit</a> > 1").
|
||||||
|
|
||||||
<b><a href="postconf.5.html#local_destination_recipient_limit">local_destination_recipient_limit</a> (1)</b>
|
<b><a href="postconf.5.html#local_destination_recipient_limit">local_destination_recipient_limit</a> (1)</b>
|
||||||
The maximal number of recipients per message delivery via the
|
The maximal number of recipients per message delivery via the
|
||||||
local mail delivery transport.
|
local mail delivery transport.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#mailbox_size_limit">mailbox_size_limit</a> (51200000)</b>
|
<b><a href="postconf.5.html#mailbox_size_limit">mailbox_size_limit</a> (51200000)</b>
|
||||||
The maximal size of any <a href="local.8.html"><b>local</b>(8)</a> individual mailbox or maildir
|
The maximal size of any <a href="local.8.html"><b>local</b>(8)</a> individual mailbox or maildir
|
||||||
file, or zero (no limit).
|
file, or zero (no limit).
|
||||||
|
|
||||||
<b>SECURITY CONTROLS</b>
|
<b>SECURITY CONTROLS</b>
|
||||||
@ -470,49 +471,49 @@ LOCAL(8) LOCAL(8)
|
|||||||
Restrict <a href="local.8.html"><b>local</b>(8)</a> mail delivery to external files.
|
Restrict <a href="local.8.html"><b>local</b>(8)</a> mail delivery to external files.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#command_expansion_filter">command_expansion_filter</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#command_expansion_filter">command_expansion_filter</a> (see 'postconf -d' output)</b>
|
||||||
Restrict the characters that the <a href="local.8.html"><b>local</b>(8)</a> delivery agent allows
|
Restrict the characters that the <a href="local.8.html"><b>local</b>(8)</a> delivery agent allows
|
||||||
in $name expansions of $<a href="postconf.5.html#mailbox_command">mailbox_command</a> and $<a href="postconf.5.html#command_execution_directory">command_execu</a>-
|
in $name expansions of $<a href="postconf.5.html#mailbox_command">mailbox_command</a> and $<a href="postconf.5.html#command_execution_directory">command_execu</a>-
|
||||||
<a href="postconf.5.html#command_execution_directory">tion_directory</a>.
|
<a href="postconf.5.html#command_execution_directory">tion_directory</a>.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#default_privs">default_privs</a> (nobody)</b>
|
<b><a href="postconf.5.html#default_privs">default_privs</a> (nobody)</b>
|
||||||
The default rights used by the <a href="local.8.html"><b>local</b>(8)</a> delivery agent for
|
The default rights used by the <a href="local.8.html"><b>local</b>(8)</a> delivery agent for
|
||||||
delivery to external file or command.
|
delivery to external file or command.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#forward_expansion_filter">forward_expansion_filter</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#forward_expansion_filter">forward_expansion_filter</a> (see 'postconf -d' output)</b>
|
||||||
Restrict the characters that the <a href="local.8.html"><b>local</b>(8)</a> delivery agent allows
|
Restrict the characters that the <a href="local.8.html"><b>local</b>(8)</a> delivery agent allows
|
||||||
in $name expansions of $<a href="postconf.5.html#forward_path">forward_path</a>.
|
in $name expansions of $<a href="postconf.5.html#forward_path">forward_path</a>.
|
||||||
|
|
||||||
Available in Postfix version 2.2 and later:
|
Available in Postfix version 2.2 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#execution_directory_expansion_filter">execution_directory_expansion_filter</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#execution_directory_expansion_filter">execution_directory_expansion_filter</a> (see 'postconf -d' output)</b>
|
||||||
Restrict the characters that the <a href="local.8.html"><b>local</b>(8)</a> delivery agent allows
|
Restrict the characters that the <a href="local.8.html"><b>local</b>(8)</a> delivery agent allows
|
||||||
in $name expansions of $<a href="postconf.5.html#command_execution_directory">command_execution_directory</a>.
|
in $name expansions of $<a href="postconf.5.html#command_execution_directory">command_execution_directory</a>.
|
||||||
|
|
||||||
Available in Postfix version 2.5.3 and later:
|
Available in Postfix version 2.5.3 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#strict_mailbox_ownership">strict_mailbox_ownership</a> (yes)</b>
|
<b><a href="postconf.5.html#strict_mailbox_ownership">strict_mailbox_ownership</a> (yes)</b>
|
||||||
Defer delivery when a mailbox file is not owned by its recipi-
|
Defer delivery when a mailbox file is not owned by its recipi-
|
||||||
ent.
|
ent.
|
||||||
|
|
||||||
<b>MISCELLANEOUS CONTROLS</b>
|
<b>MISCELLANEOUS CONTROLS</b>
|
||||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||||
figuration files.
|
figuration files.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
<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
|
How much time a Postfix daemon process may take to handle a
|
||||||
request before it is terminated by a built-in watchdog timer.
|
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>
|
<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 point when log-
|
The maximal number of digits after the decimal point when log-
|
||||||
ging sub-second delay values.
|
ging sub-second delay values.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#export_environment">export_environment</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#export_environment">export_environment</a> (see 'postconf -d' output)</b>
|
||||||
The list of environment variables that a Postfix process will
|
The list of environment variables that a Postfix process will
|
||||||
export to non-Postfix processes.
|
export to non-Postfix processes.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
|
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
|
||||||
The time limit for sending or receiving information over an
|
The time limit for sending or receiving information over an
|
||||||
internal communication channel.
|
internal communication channel.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#local_command_shell">local_command_shell</a> (empty)</b>
|
<b><a href="postconf.5.html#local_command_shell">local_command_shell</a> (empty)</b>
|
||||||
@ -520,7 +521,7 @@ LOCAL(8) LOCAL(8)
|
|||||||
mand.
|
mand.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
|
<b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
|
||||||
The maximum amount of time that an idle Postfix daemon process
|
The maximum amount of time that an idle Postfix daemon process
|
||||||
waits for an incoming connection before terminating voluntarily.
|
waits for an incoming connection before terminating voluntarily.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
|
<b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
|
||||||
@ -528,8 +529,8 @@ LOCAL(8) LOCAL(8)
|
|||||||
process will service before terminating voluntarily.
|
process will service before terminating voluntarily.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#prepend_delivered_header">prepend_delivered_header</a> (command, file, forward)</b>
|
<b><a href="postconf.5.html#prepend_delivered_header">prepend_delivered_header</a> (command, file, forward)</b>
|
||||||
The message delivery contexts where the Postfix <a href="local.8.html"><b>local</b>(8)</a> deliv-
|
The message delivery contexts where the Postfix <a href="local.8.html"><b>local</b>(8)</a> deliv-
|
||||||
ery agent prepends a Delivered-To: message header with the
|
ery agent prepends a Delivered-To: message header with the
|
||||||
address that the mail was delivered to.
|
address that the mail was delivered to.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
|
<b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
|
||||||
@ -539,15 +540,15 @@ LOCAL(8) LOCAL(8)
|
|||||||
The process name of a Postfix command or daemon process.
|
The process name of a Postfix command or daemon process.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a> (canonical, virtual)</b>
|
<b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a> (canonical, virtual)</b>
|
||||||
What address lookup tables copy an address extension from the
|
What address lookup tables copy an address extension from the
|
||||||
lookup key to the lookup result.
|
lookup key to the lookup result.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#queue_directory">queue_directory</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#queue_directory">queue_directory</a> (see 'postconf -d' output)</b>
|
||||||
The location of the Postfix top-level queue directory.
|
The location of the Postfix top-level queue directory.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> (empty)</b>
|
<b><a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> (empty)</b>
|
||||||
The set of characters that can separate a user name from its
|
The set of characters that can separate a user name from its
|
||||||
extension (example: user+foo), or a .forward file name from its
|
extension (example: user+foo), or a .forward file name from its
|
||||||
extension (example: .forward+foo).
|
extension (example: .forward+foo).
|
||||||
|
|
||||||
<b><a href="postconf.5.html#require_home_directory">require_home_directory</a> (no)</b>
|
<b><a href="postconf.5.html#require_home_directory">require_home_directory</a> (no)</b>
|
||||||
@ -558,8 +559,8 @@ LOCAL(8) LOCAL(8)
|
|||||||
The syslog facility of Postfix logging.
|
The syslog facility of Postfix logging.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||||
The mail system name that is prepended to the process name in
|
The mail system name that is prepended to the process name in
|
||||||
syslog records, so that "smtpd" becomes, for example, "post-
|
syslog records, so that "smtpd" becomes, for example, "post-
|
||||||
fix/smtpd".
|
fix/smtpd".
|
||||||
|
|
||||||
<b>FILES</b>
|
<b>FILES</b>
|
||||||
@ -582,10 +583,10 @@ LOCAL(8) LOCAL(8)
|
|||||||
The Secure Mailer license must be distributed with this software.
|
The Secure Mailer license must be distributed with this software.
|
||||||
|
|
||||||
<b>HISTORY</b>
|
<b>HISTORY</b>
|
||||||
The <b>Delivered-To:</b> message header appears in the <b>qmail</b> system by Daniel
|
The <b>Delivered-To:</b> message header appears in the <b>qmail</b> system by Daniel
|
||||||
Bernstein.
|
Bernstein.
|
||||||
|
|
||||||
The <i>maildir</i> structure appears in the <b>qmail</b> system by Daniel Bernstein.
|
The <i>maildir</i> structure appears in the <b>qmail</b> system by Daniel Bernstein.
|
||||||
|
|
||||||
<b>AUTHOR(S)</b>
|
<b>AUTHOR(S)</b>
|
||||||
Wietse Venema
|
Wietse Venema
|
||||||
|
@ -449,9 +449,10 @@ PIPE(8) PIPE(8)
|
|||||||
|
|
||||||
Available in Postfix version 2.12 and later:
|
Available in Postfix version 2.12 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#pipe_bounce_defer_filter">pipe_bounce_defer_filter</a> ($<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a>)</b>
|
<b><a href="postconf.5.html#pipe_delivery_status_filter">pipe_delivery_status_filter</a> ($<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b>
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
Optional filter for the <a href="pipe.8.html"><b>pipe</b>(8)</a> delivery agent to change the
|
||||||
soft errors and vice versa in the <a href="pipe.8.html"><b>pipe</b>(8)</a> delivery agent.
|
delivery status code or explanatory text of successful or unsuc-
|
||||||
|
cessful deliveries.
|
||||||
|
|
||||||
<b>SEE ALSO</b>
|
<b>SEE ALSO</b>
|
||||||
<a href="qmgr.8.html">qmgr(8)</a>, queue manager
|
<a href="qmgr.8.html">qmgr(8)</a>, queue manager
|
||||||
|
@ -1756,74 +1756,6 @@ Example:
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
|
||||||
|
|
||||||
<DT><b><a name="default_bounce_defer_filter">default_bounce_defer_filter</a>
|
|
||||||
(default: empty)</b></DT><DD>
|
|
||||||
|
|
||||||
<p> Optional filter to change arbitrary hard delivery errors into
|
|
||||||
soft errors and vice versa. This is implemented by rewriting the
|
|
||||||
three-number enhanced status code and the explanatory text in a
|
|
||||||
Postfix delivery agent bounce/defer message. </p>
|
|
||||||
|
|
||||||
<p> Specify zero or more "<a href="DATABASE_README.html">type:table</a>" lookup table names, separated
|
|
||||||
by comma or whitespace. With each bounce or defer request, the
|
|
||||||
tables are queried in the specified order with one line of text
|
|
||||||
that is structured as follows: </p>
|
|
||||||
|
|
||||||
<blockquote>
|
|
||||||
enhanced-status-code SPACE explanatory-text
|
|
||||||
</blockquote>
|
|
||||||
|
|
||||||
<p> The first table match wins. The lookup result must have the
|
|
||||||
same structure as the query: enhanced status codes must have a
|
|
||||||
first numerical field of 4 (defer) or 5 (bounce), and the explanatory
|
|
||||||
text field must be non-empty. Other results will result in a warning.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p> Example: </p>
|
|
||||||
|
|
||||||
<p> The following example turns specific soft TLS errors into hard
|
|
||||||
errors, by overriding the first number in the enhanced status code.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<blockquote>
|
|
||||||
<pre>
|
|
||||||
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
|
||||||
<a href="postconf.5.html#smtp_bounce_defer_filter">smtp_bounce_defer_filter</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/smtp_ndr_filter
|
|
||||||
</pre>
|
|
||||||
</blockquote>
|
|
||||||
|
|
||||||
<blockquote>
|
|
||||||
<pre>
|
|
||||||
/etc/postfix/smtp_ndr_filter:
|
|
||||||
/^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/
|
|
||||||
5$1
|
|
||||||
/^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/
|
|
||||||
5$1
|
|
||||||
# Do not change the following into hard bounces. They may
|
|
||||||
# result from a local configuration problem.
|
|
||||||
# 4.\d+.\d+ TLS is required, but our TLS engine is unavailable
|
|
||||||
# 4.\d+.\d+ TLS is required, but unavailable
|
|
||||||
# 4.\d+.\d+ Cannot start TLS: handshake failure
|
|
||||||
</pre>
|
|
||||||
</blockquote>
|
|
||||||
|
|
||||||
<p> Notes: </p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li> <p> This feature will NOT override the <a href="postconf.5.html#soft_bounce">soft_bounce</a> safety net. </p>
|
|
||||||
|
|
||||||
<li> <p> This feature will change the enhanced status code and text
|
|
||||||
that is logged to the maillog file, and that is reported to the
|
|
||||||
sender. </p>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<DT><b><a name="default_database_type">default_database_type</a>
|
<DT><b><a name="default_database_type">default_database_type</a>
|
||||||
@ -1952,6 +1884,93 @@ name of the message delivery transport.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
</DD>
|
||||||
|
|
||||||
|
<DT><b><a name="default_delivery_status_filter">default_delivery_status_filter</a>
|
||||||
|
(default: empty)</b></DT><DD>
|
||||||
|
|
||||||
|
<p> Optional filter to replace the delivery status code or explanatory
|
||||||
|
text of successful or unsuccessful deliveries. This does, however,
|
||||||
|
not allow the replacement of a successful status code (2.X.X) with
|
||||||
|
an unsuccessful status code (4.X.X or 5.X.X) or vice versa. </p>
|
||||||
|
|
||||||
|
<p> Specify zero or more "<a href="DATABASE_README.html">type:table</a>" lookup table names, separated
|
||||||
|
by comma or whitespace. With each bounce or defer request, the
|
||||||
|
tables are queried in the specified order with one line of text
|
||||||
|
that is structured as follows: </p>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
enhanced-status-code SPACE explanatory-text
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<p> The first table match wins. The lookup result must have the
|
||||||
|
same structure as the query, a successful status code (2.X.X) must
|
||||||
|
be replaced with a successful status code, an unsuccessful status
|
||||||
|
code (4.X.X or 5.X.X) must be replaced with an unsuccessful status
|
||||||
|
code, and the explanatory text field must be non-empty. Other results
|
||||||
|
will result in a warning. </p>
|
||||||
|
|
||||||
|
<p> Example 1: convert specific soft TLS errors into hard errors,
|
||||||
|
by overriding the first number in the enhanced status code. </p>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<pre>
|
||||||
|
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||||
|
<a href="postconf.5.html#smtp_delivery_status_filter">smtp_delivery_status_filter</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/smtp_dsn_filter
|
||||||
|
</pre>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<pre>
|
||||||
|
/etc/postfix/smtp_dsn_filter:
|
||||||
|
/^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/
|
||||||
|
5$1
|
||||||
|
/^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/
|
||||||
|
5$1
|
||||||
|
# Do not change the following into hard bounces. They may
|
||||||
|
# result from a local configuration problem.
|
||||||
|
# 4.\d+.\d+ TLS is required, but our TLS engine is unavailable
|
||||||
|
# 4.\d+.\d+ TLS is required, but unavailable
|
||||||
|
# 4.\d+.\d+ Cannot start TLS: handshake failure
|
||||||
|
</pre>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<p> Example 2: censor the per-recipient delivery status text so
|
||||||
|
that it does not not reveal the destination command or filename
|
||||||
|
when a remote sender requests confirmation of successful delivery.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<pre>
|
||||||
|
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||||
|
<a href="postconf.5.html#local_delivery_status_filter">local_delivery_status_filter</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/local_dsn_filter
|
||||||
|
</pre>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<pre>
|
||||||
|
/etc/postfix/local_dsn_filter:
|
||||||
|
/^(2\S+ delivered to file).+/ $1
|
||||||
|
/^(2\S+ delivered to command).+/ $1
|
||||||
|
</pre>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<p> Notes: </p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li> <p> This feature will NOT override the <a href="postconf.5.html#soft_bounce">soft_bounce</a> safety net. </p>
|
||||||
|
|
||||||
|
<li> <p> This feature will change the enhanced status code and text
|
||||||
|
that is logged to the maillog file, and that is reported to the
|
||||||
|
sender in delivery confirmation or non-delivery notifications.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<DT><b><a name="default_destination_concurrency_failed_cohort_limit">default_destination_concurrency_failed_cohort_limit</a>
|
<DT><b><a name="default_destination_concurrency_failed_cohort_limit">default_destination_concurrency_failed_cohort_limit</a>
|
||||||
@ -3920,17 +3939,6 @@ parameter. See there for details. </p>
|
|||||||
<p> This feature is available in Postfix 2.5 and later. </p>
|
<p> This feature is available in Postfix 2.5 and later. </p>
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
|
||||||
|
|
||||||
<DT><b><a name="lmtp_bounce_defer_filter">lmtp_bounce_defer_filter</a>
|
|
||||||
(default: empty)</b></DT><DD>
|
|
||||||
|
|
||||||
<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_bounce_defer_filter">smtp_bounce_defer_filter</a>
|
|
||||||
configuration parameter. See there for details. </p>
|
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<DT><b><a name="lmtp_cache_connection">lmtp_cache_connection</a>
|
<DT><b><a name="lmtp_cache_connection">lmtp_cache_connection</a>
|
||||||
@ -4132,6 +4140,17 @@ configuration parameter. See there for details. </p>
|
|||||||
<p> This feature is available in Postfix 2.3 and later. </p>
|
<p> This feature is available in Postfix 2.3 and later. </p>
|
||||||
|
|
||||||
|
|
||||||
|
</DD>
|
||||||
|
|
||||||
|
<DT><b><a name="lmtp_delivery_status_filter">lmtp_delivery_status_filter</a>
|
||||||
|
(default: empty)</b></DT><DD>
|
||||||
|
|
||||||
|
<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_delivery_status_filter">smtp_delivery_status_filter</a>
|
||||||
|
configuration parameter. See there for details. </p>
|
||||||
|
|
||||||
|
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<DT><b><a name="lmtp_destination_concurrency_limit">lmtp_destination_concurrency_limit</a>
|
<DT><b><a name="lmtp_destination_concurrency_limit">lmtp_destination_concurrency_limit</a>
|
||||||
@ -5127,18 +5146,6 @@ This feature is available in Postfix 2.1 and later.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
|
||||||
|
|
||||||
<DT><b><a name="local_bounce_defer_filter">local_bounce_defer_filter</a>
|
|
||||||
(default: $<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a>)</b></DT><DD>
|
|
||||||
|
|
||||||
<p> Optional filter to change arbitrary hard delivery errors into
|
|
||||||
soft errors and vice versa in the <a href="local.8.html">local(8)</a> delivery agent. See
|
|
||||||
<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a> for details. </p>
|
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<DT><b><a name="local_command_shell">local_command_shell</a>
|
<DT><b><a name="local_command_shell">local_command_shell</a>
|
||||||
@ -5169,6 +5176,18 @@ Example:
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
</DD>
|
||||||
|
|
||||||
|
<DT><b><a name="local_delivery_status_filter">local_delivery_status_filter</a>
|
||||||
|
(default: $<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b></DT><DD>
|
||||||
|
|
||||||
|
<p> Optional filter for the <a href="local.8.html">local(8)</a> delivery agent to change the
|
||||||
|
status code or explanatory text of successful or unsuccessful
|
||||||
|
deliveries. See <a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a> for details. </p>
|
||||||
|
|
||||||
|
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<DT><b><a name="local_destination_concurrency_limit">local_destination_concurrency_limit</a>
|
<DT><b><a name="local_destination_concurrency_limit">local_destination_concurrency_limit</a>
|
||||||
@ -7013,12 +7032,12 @@ This feature is available in Postfix 2.0 and later.
|
|||||||
|
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<DT><b><a name="pipe_bounce_defer_filter">pipe_bounce_defer_filter</a>
|
<DT><b><a name="pipe_delivery_status_filter">pipe_delivery_status_filter</a>
|
||||||
(default: $<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a>)</b></DT><DD>
|
(default: $<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b></DT><DD>
|
||||||
|
|
||||||
<p> Optional filter to change arbitrary hard delivery errors into
|
<p> Optional filter for the <a href="pipe.8.html">pipe(8)</a> delivery agent to change the
|
||||||
soft errors and vice versa in the <a href="pipe.8.html">pipe(8)</a> delivery agent. See
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a> for details. </p>
|
deliveries. See <a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a> for details. </p>
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||||
|
|
||||||
@ -9588,22 +9607,6 @@ that change the delivery time or destination are not available.
|
|||||||
<p> This feature is available in Postfix 2.5 and later. </p>
|
<p> This feature is available in Postfix 2.5 and later. </p>
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
|
||||||
|
|
||||||
<DT><b><a name="smtp_bounce_defer_filter">smtp_bounce_defer_filter</a>
|
|
||||||
(default: $<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a>)</b></DT><DD>
|
|
||||||
|
|
||||||
<p> Optional filter to change arbitrary hard delivery errors into
|
|
||||||
soft errors and vice versa in the <a href="smtp.8.html">smtp(8)</a> delivery agent. See
|
|
||||||
<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a> for details. </p>
|
|
||||||
|
|
||||||
<p> NOTE: This feature modifies error messages that are generated
|
|
||||||
by the Postfix SMTP client, and that may or may not be derived from
|
|
||||||
remote SMTP server responses. In contrast, the <a href="postconf.5.html#smtp_reply_filter">smtp_reply_filter</a>
|
|
||||||
feature modifies remote SMTP server responses that may result in
|
|
||||||
email non-delivery or delivery. </p>
|
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<DT><b><a name="smtp_cname_overrides_servername">smtp_cname_overrides_servername</a>
|
<DT><b><a name="smtp_cname_overrides_servername">smtp_cname_overrides_servername</a>
|
||||||
@ -9868,6 +9871,21 @@ This feature is available in Postfix 2.1 and later.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
</DD>
|
||||||
|
|
||||||
|
<DT><b><a name="smtp_delivery_status_filter">smtp_delivery_status_filter</a>
|
||||||
|
(default: $<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b></DT><DD>
|
||||||
|
|
||||||
|
<p> Optional filter for the <a href="smtp.8.html">smtp(8)</a> delivery agent to change the
|
||||||
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
|
deliveries. See <a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a> for details. </p>
|
||||||
|
|
||||||
|
<p> NOTE: This feature modifies Postfix SMTP client error or non-error
|
||||||
|
messages that may or may not be derived from remote SMTP server
|
||||||
|
responses. In contrast, the <a href="postconf.5.html#smtp_reply_filter">smtp_reply_filter</a> feature modifies
|
||||||
|
remote SMTP server responses only. </p>
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<DT><b><a name="smtp_destination_concurrency_limit">smtp_destination_concurrency_limit</a>
|
<DT><b><a name="smtp_destination_concurrency_limit">smtp_destination_concurrency_limit</a>
|
||||||
@ -18219,12 +18237,12 @@ This feature is available in Postfix 2.1 and later.
|
|||||||
|
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<DT><b><a name="virtual_bounce_defer_filter">virtual_bounce_defer_filter</a>
|
<DT><b><a name="virtual_delivery_status_filter">virtual_delivery_status_filter</a>
|
||||||
(default: $<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a>)</b></DT><DD>
|
(default: $<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b></DT><DD>
|
||||||
|
|
||||||
<p> Optional filter to change arbitrary hard delivery errors into
|
<p> Optional filter for the <a href="virtual.8.html">virtual(8)</a> delivery agent to change the
|
||||||
soft errors and vice versa in the <a href="virtual.8.html">virtual(8)</a> delivery agent. See
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a> for details. </p>
|
deliveries. See <a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a> for details. </p>
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||||
|
|
||||||
|
@ -292,9 +292,10 @@ SMTP(8) SMTP(8)
|
|||||||
|
|
||||||
Available in Postfix version 2.12 and later:
|
Available in Postfix version 2.12 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_bounce_defer_filter">smtp_bounce_defer_filter</a> ($<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a>)</b>
|
<b><a href="postconf.5.html#smtp_delivery_status_filter">smtp_delivery_status_filter</a> ($<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b>
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
Optional filter for the <a href="smtp.8.html"><b>smtp</b>(8)</a> delivery agent to change the
|
||||||
soft errors and vice versa in the <a href="smtp.8.html"><b>smtp</b>(8)</a> delivery agent.
|
delivery status code or explanatory text of successful or unsuc-
|
||||||
|
cessful deliveries.
|
||||||
|
|
||||||
<b>MIME PROCESSING CONTROLS</b>
|
<b>MIME PROCESSING CONTROLS</b>
|
||||||
Available in Postfix version 2.0 and later:
|
Available in Postfix version 2.0 and later:
|
||||||
@ -312,7 +313,7 @@ SMTP(8) SMTP(8)
|
|||||||
Available in Postfix version 2.1 and later:
|
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>
|
<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
|
Send the non-standard XFORWARD command when the Postfix SMTP
|
||||||
server EHLO response announces XFORWARD support.
|
server EHLO response announces XFORWARD support.
|
||||||
|
|
||||||
<b>SASL AUTHENTICATION CONTROLS</b>
|
<b>SASL AUTHENTICATION CONTROLS</b>
|
||||||
@ -320,62 +321,62 @@ SMTP(8) SMTP(8)
|
|||||||
Enable SASL authentication in the Postfix SMTP client.
|
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>
|
<b><a href="postconf.5.html#smtp_sasl_password_maps">smtp_sasl_password_maps</a> (empty)</b>
|
||||||
Optional Postfix SMTP client lookup tables with one user-
|
Optional Postfix SMTP client lookup tables with one user-
|
||||||
name:password entry per remote hostname or domain, or sender
|
name:password entry per remote hostname or domain, or sender
|
||||||
address when sender-dependent authentication is enabled.
|
address when sender-dependent authentication is enabled.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_security_options">smtp_sasl_security_options</a> (noplaintext, noanonymous)</b>
|
<b><a href="postconf.5.html#smtp_sasl_security_options">smtp_sasl_security_options</a> (noplaintext, noanonymous)</b>
|
||||||
Postfix SMTP client SASL security options; as of Postfix 2.3 the
|
Postfix SMTP client SASL security options; as of Postfix 2.3 the
|
||||||
list of available features depends on the SASL client implemen-
|
list of available features depends on the SASL client implemen-
|
||||||
tation that is selected with <b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b>.
|
tation 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:
|
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>
|
<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
|
If non-empty, a Postfix SMTP client filter for the remote SMTP
|
||||||
server's list of offered SASL mechanisms.
|
server's list of offered SASL mechanisms.
|
||||||
|
|
||||||
Available in Postfix version 2.3 and later:
|
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>
|
<b><a href="postconf.5.html#smtp_sender_dependent_authentication">smtp_sender_dependent_authentication</a> (no)</b>
|
||||||
Enable sender-dependent authentication in the Postfix SMTP
|
Enable sender-dependent authentication in the Postfix SMTP
|
||||||
client; this is available only with SASL authentication, and
|
client; this is available only with SASL authentication, and
|
||||||
disables SMTP connection caching to ensure that mail from dif-
|
disables SMTP connection caching to ensure that mail from dif-
|
||||||
ferent senders will use the appropriate credentials.
|
ferent senders will use the appropriate credentials.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_path">smtp_sasl_path</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_sasl_path">smtp_sasl_path</a> (empty)</b>
|
||||||
Implementation-specific information that the Postfix SMTP client
|
Implementation-specific information that the Postfix SMTP client
|
||||||
passes through to the SASL plug-in implementation that is
|
passes 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>.
|
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>
|
<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 should use
|
The SASL plug-in type that the Postfix SMTP client should use
|
||||||
for authentication.
|
for authentication.
|
||||||
|
|
||||||
Available in Postfix version 2.5 and later:
|
Available in Postfix version 2.5 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> (empty)</b>
|
||||||
An optional table to prevent repeated SASL authentication fail-
|
An optional table to prevent repeated SASL authentication fail-
|
||||||
ures with the same remote SMTP server hostname, username and
|
ures with the same remote SMTP server hostname, username and
|
||||||
password.
|
password.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_auth_cache_time">smtp_sasl_auth_cache_time</a> (90d)</b>
|
<b><a href="postconf.5.html#smtp_sasl_auth_cache_time">smtp_sasl_auth_cache_time</a> (90d)</b>
|
||||||
The maximal age of an <a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> entry before it
|
The maximal age of an <a href="postconf.5.html#smtp_sasl_auth_cache_name">smtp_sasl_auth_cache_name</a> entry before it
|
||||||
is removed.
|
is removed.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_auth_soft_bounce">smtp_sasl_auth_soft_bounce</a> (yes)</b>
|
<b><a href="postconf.5.html#smtp_sasl_auth_soft_bounce">smtp_sasl_auth_soft_bounce</a> (yes)</b>
|
||||||
When a remote SMTP server rejects a SASL authentication request
|
When a remote SMTP server rejects a SASL authentication request
|
||||||
with a 535 reply code, defer mail delivery instead of returning
|
with a 535 reply code, defer mail delivery instead of returning
|
||||||
mail as undeliverable.
|
mail as undeliverable.
|
||||||
|
|
||||||
Available in Postfix version 2.9 and later:
|
Available in Postfix version 2.9 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_send_dummy_mail_auth">smtp_send_dummy_mail_auth</a> (no)</b>
|
<b><a href="postconf.5.html#smtp_send_dummy_mail_auth">smtp_send_dummy_mail_auth</a> (no)</b>
|
||||||
Whether or not to append the "AUTH=<>" option to the MAIL FROM
|
Whether or not to append the "AUTH=<>" option to the MAIL FROM
|
||||||
command in SASL-authenticated SMTP sessions.
|
command in SASL-authenticated SMTP sessions.
|
||||||
|
|
||||||
<b>STARTTLS SUPPORT CONTROLS</b>
|
<b>STARTTLS SUPPORT CONTROLS</b>
|
||||||
Detailed information about STARTTLS configuration may be found in the
|
Detailed information about STARTTLS configuration may be found in the
|
||||||
<a href="TLS_README.html">TLS_README</a> document.
|
<a href="TLS_README.html">TLS_README</a> document.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a> (empty)</b>
|
||||||
@ -385,20 +386,20 @@ SMTP(8) SMTP(8)
|
|||||||
<a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a>.
|
<a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a>.
|
||||||
|
|
||||||
<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_security_options</a>)</b>
|
<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_security_options</a>)</b>
|
||||||
The SASL authentication security options that the Postfix SMTP
|
The SASL authentication security options that the Postfix SMTP
|
||||||
client uses for TLS encrypted SMTP sessions.
|
client uses for TLS encrypted SMTP sessions.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_starttls_timeout">smtp_starttls_timeout</a> (300s)</b>
|
<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
|
Time limit for Postfix SMTP client write and read operations
|
||||||
during TLS startup and shutdown handshake procedures.
|
during TLS startup and shutdown handshake procedures.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_CAfile">smtp_tls_CAfile</a> (empty)</b>
|
||||||
A file containing CA certificates of root CAs trusted to sign
|
A file containing CA certificates of root CAs trusted to sign
|
||||||
either remote SMTP server certificates or intermediate CA cer-
|
either remote SMTP server certificates or intermediate CA cer-
|
||||||
tificates.
|
tificates.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_CApath">smtp_tls_CApath</a> (empty)</b>
|
||||||
Directory with PEM format certificate authority certificates
|
Directory with PEM format certificate authority certificates
|
||||||
that the Postfix SMTP client uses to verify a remote SMTP server
|
that the Postfix SMTP client uses to verify a remote SMTP server
|
||||||
certificate.
|
certificate.
|
||||||
|
|
||||||
@ -406,7 +407,7 @@ SMTP(8) SMTP(8)
|
|||||||
File with the Postfix SMTP client RSA certificate in PEM format.
|
File with the Postfix SMTP client RSA certificate in PEM format.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> (medium)</b>
|
<b><a href="postconf.5.html#smtp_tls_mandatory_ciphers">smtp_tls_mandatory_ciphers</a> (medium)</b>
|
||||||
The minimum TLS cipher grade that the Postfix SMTP client will
|
The minimum TLS cipher grade that the Postfix SMTP client will
|
||||||
use with mandatory TLS encryption.
|
use with mandatory TLS encryption.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_exclude_ciphers">smtp_tls_exclude_ciphers</a> (empty)</b>
|
||||||
@ -414,8 +415,8 @@ SMTP(8) SMTP(8)
|
|||||||
client cipher list at all TLS security levels.
|
client cipher list at all TLS security levels.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_mandatory_exclude_ciphers">smtp_tls_mandatory_exclude_ciphers</a> (empty)</b>
|
||||||
Additional list of ciphers or cipher types to exclude from the
|
Additional list of ciphers or cipher types to exclude from the
|
||||||
Postfix SMTP client cipher list at mandatory TLS security lev-
|
Postfix SMTP client cipher list at mandatory TLS security lev-
|
||||||
els.
|
els.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_dcert_file">smtp_tls_dcert_file</a> (empty)</b>
|
||||||
@ -431,7 +432,7 @@ SMTP(8) SMTP(8)
|
|||||||
Enable additional Postfix SMTP client logging of TLS activity.
|
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>
|
<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,
|
Log the hostname of a remote SMTP server that offers STARTTLS,
|
||||||
when TLS is not already enabled for that server.
|
when TLS is not already enabled for that server.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_policy_maps">smtp_tls_policy_maps</a> (empty)</b>
|
||||||
@ -440,14 +441,14 @@ SMTP(8) SMTP(8)
|
|||||||
fied, this overrides the obsolete <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> parameter.
|
fied, this overrides the obsolete <a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> parameter.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> (!SSLv2)</b>
|
<b><a href="postconf.5.html#smtp_tls_mandatory_protocols">smtp_tls_mandatory_protocols</a> (!SSLv2)</b>
|
||||||
List of SSL/TLS protocols that the Postfix SMTP client will use
|
List of SSL/TLS protocols that the Postfix SMTP client will use
|
||||||
with mandatory TLS encryption.
|
with mandatory TLS encryption.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_scert_verifydepth">smtp_tls_scert_verifydepth</a> (9)</b>
|
<b><a href="postconf.5.html#smtp_tls_scert_verifydepth">smtp_tls_scert_verifydepth</a> (9)</b>
|
||||||
The verification depth for remote SMTP server certificates.
|
The verification depth for remote SMTP server certificates.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a> (nexthop, dot-nexthop)</b>
|
<b><a href="postconf.5.html#smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a> (nexthop, dot-nexthop)</b>
|
||||||
How the Postfix SMTP client verifies the server certificate
|
How the Postfix SMTP client verifies the server certificate
|
||||||
peername for the "secure" TLS security level.
|
peername for the "secure" TLS security level.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_session_cache_database">smtp_tls_session_cache_database</a> (empty)</b>
|
||||||
@ -455,16 +456,16 @@ SMTP(8) SMTP(8)
|
|||||||
session cache.
|
session cache.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_session_cache_timeout">smtp_tls_session_cache_timeout</a> (3600s)</b>
|
<b><a href="postconf.5.html#smtp_tls_session_cache_timeout">smtp_tls_session_cache_timeout</a> (3600s)</b>
|
||||||
The expiration time of Postfix SMTP client TLS session cache
|
The expiration time of Postfix SMTP client TLS session cache
|
||||||
information.
|
information.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_verify_cert_match">smtp_tls_verify_cert_match</a> (hostname)</b>
|
<b><a href="postconf.5.html#smtp_tls_verify_cert_match">smtp_tls_verify_cert_match</a> (hostname)</b>
|
||||||
How the Postfix SMTP client verifies the server certificate
|
How the Postfix SMTP client verifies the server certificate
|
||||||
peername for the "verify" TLS security level.
|
peername for the "verify" TLS security level.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#tls_daemon_random_bytes">tls_daemon_random_bytes</a> (32)</b>
|
<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>
|
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
|
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).
|
internal pseudo random number generator (PRNG).
|
||||||
|
|
||||||
<b><a href="postconf.5.html#tls_high_cipherlist">tls_high_cipherlist</a> (ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH)</b>
|
<b><a href="postconf.5.html#tls_high_cipherlist">tls_high_cipherlist</a> (ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH)</b>
|
||||||
@ -480,52 +481,52 @@ SMTP(8) SMTP(8)
|
|||||||
The OpenSSL cipherlist for "EXPORT" or higher grade ciphers.
|
The OpenSSL cipherlist for "EXPORT" or higher grade ciphers.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#tls_null_cipherlist">tls_null_cipherlist</a> (eNULL:!aNULL)</b>
|
<b><a href="postconf.5.html#tls_null_cipherlist">tls_null_cipherlist</a> (eNULL:!aNULL)</b>
|
||||||
The OpenSSL cipherlist for "NULL" grade ciphers that provide
|
The OpenSSL cipherlist for "NULL" grade ciphers that provide
|
||||||
authentication without encryption.
|
authentication without encryption.
|
||||||
|
|
||||||
Available in Postfix version 2.4 and later:
|
Available in Postfix version 2.4 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_sasl_tls_verified_security_options">smtp_sasl_tls_verified_security_options</a> ($<a href="postconf.5.html#smtp_sasl_tls_security_options">smtp_sasl_tls_secu</a>-</b>
|
<b><a href="postconf.5.html#smtp_sasl_tls_verified_security_options">smtp_sasl_tls_verified_security_options</a> ($<a href="postconf.5.html#smtp_sasl_tls_security_options">smtp_sasl_tls_secu</a>-</b>
|
||||||
<b><a href="postconf.5.html#smtp_sasl_tls_security_options">rity_options</a>)</b>
|
<b><a href="postconf.5.html#smtp_sasl_tls_security_options">rity_options</a>)</b>
|
||||||
The SASL authentication security options that the Postfix SMTP
|
The SASL authentication security options that the Postfix SMTP
|
||||||
client uses for TLS encrypted SMTP sessions with a verified
|
client uses for TLS encrypted SMTP sessions with a verified
|
||||||
server certificate.
|
server certificate.
|
||||||
|
|
||||||
Available in Postfix version 2.5 and later:
|
Available in Postfix version 2.5 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_fingerprint_cert_match">smtp_tls_fingerprint_cert_match</a> (empty)</b>
|
||||||
List of acceptable remote SMTP server certificate fingerprints
|
List of acceptable remote SMTP server certificate fingerprints
|
||||||
for the "fingerprint" TLS security level (<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_secu</a>-</b>
|
for the "fingerprint" TLS security level (<b><a href="postconf.5.html#smtp_tls_security_level">smtp_tls_secu</a>-</b>
|
||||||
<b><a href="postconf.5.html#smtp_tls_security_level">rity_level</a></b> = fingerprint).
|
<b><a href="postconf.5.html#smtp_tls_security_level">rity_level</a></b> = fingerprint).
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> (md5)</b>
|
<b><a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> (md5)</b>
|
||||||
The message digest algorithm used to construct remote SMTP
|
The message digest algorithm used to construct remote SMTP
|
||||||
server certificate fingerprints.
|
server certificate fingerprints.
|
||||||
|
|
||||||
Available in Postfix version 2.6 and later:
|
Available in Postfix version 2.6 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> (!SSLv2)</b>
|
<b><a href="postconf.5.html#smtp_tls_protocols">smtp_tls_protocols</a> (!SSLv2)</b>
|
||||||
List of TLS protocols that the Postfix SMTP client will exclude
|
List of TLS protocols that the Postfix SMTP client will exclude
|
||||||
or include with opportunistic TLS encryption.
|
or include with opportunistic TLS encryption.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a> (export)</b>
|
<b><a href="postconf.5.html#smtp_tls_ciphers">smtp_tls_ciphers</a> (export)</b>
|
||||||
The minimum TLS cipher grade that the Postfix SMTP client will
|
The minimum TLS cipher grade that the Postfix SMTP client will
|
||||||
use with opportunistic TLS encryption.
|
use with opportunistic TLS encryption.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a> (empty)</b>
|
||||||
File with the Postfix SMTP client ECDSA certificate in PEM for-
|
File with the Postfix SMTP client ECDSA certificate in PEM for-
|
||||||
mat.
|
mat.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_eckey_file">smtp_tls_eckey_file</a> ($<a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a>)</b>
|
<b><a href="postconf.5.html#smtp_tls_eckey_file">smtp_tls_eckey_file</a> ($<a href="postconf.5.html#smtp_tls_eccert_file">smtp_tls_eccert_file</a>)</b>
|
||||||
File with the Postfix SMTP client ECDSA private key in PEM for-
|
File with the Postfix SMTP client ECDSA private key in PEM for-
|
||||||
mat.
|
mat.
|
||||||
|
|
||||||
Available in Postfix version 2.7 and later:
|
Available in Postfix version 2.7 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_block_early_mail_reply">smtp_tls_block_early_mail_reply</a> (no)</b>
|
<b><a href="postconf.5.html#smtp_tls_block_early_mail_reply">smtp_tls_block_early_mail_reply</a> (no)</b>
|
||||||
Try to detect a mail hijacking attack based on a TLS protocol
|
Try to detect a mail hijacking attack based on a TLS protocol
|
||||||
vulnerability (CVE-2009-3555), where an attacker prepends mali-
|
vulnerability (CVE-2009-3555), where an attacker prepends mali-
|
||||||
cious HELO, MAIL, RCPT, DATA commands to a Postfix SMTP client
|
cious HELO, MAIL, RCPT, DATA commands to a Postfix SMTP client
|
||||||
TLS session.
|
TLS session.
|
||||||
|
|
||||||
Available in Postfix version 2.8 and later:
|
Available in Postfix version 2.8 and later:
|
||||||
@ -536,11 +537,11 @@ SMTP(8) SMTP(8)
|
|||||||
Available in Postfix version 2.11 and later:
|
Available in Postfix version 2.11 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_trust_anchor_file">smtp_tls_trust_anchor_file</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_trust_anchor_file">smtp_tls_trust_anchor_file</a> (empty)</b>
|
||||||
Zero or more PEM-format files with trust-anchor certificates
|
Zero or more PEM-format files with trust-anchor certificates
|
||||||
and/or public keys.
|
and/or public keys.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_force_insecure_host_tlsa_lookup">smtp_tls_force_insecure_host_tlsa_lookup</a> (no)</b>
|
<b><a href="postconf.5.html#smtp_tls_force_insecure_host_tlsa_lookup">smtp_tls_force_insecure_host_tlsa_lookup</a> (no)</b>
|
||||||
Lookup the associated DANE TLSA RRset even when a hostname is
|
Lookup the associated DANE TLSA RRset even when a hostname is
|
||||||
not an alias and its address records lie in an unsigned zone.
|
not an alias and its address records lie in an unsigned zone.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#tls_dane_trust_anchor_digest_enable">tls_dane_trust_anchor_digest_enable</a> (yes)</b>
|
<b><a href="postconf.5.html#tls_dane_trust_anchor_digest_enable">tls_dane_trust_anchor_digest_enable</a> (yes)</b>
|
||||||
@ -550,49 +551,49 @@ SMTP(8) SMTP(8)
|
|||||||
The name of the <a href="tlsmgr.8.html"><b>tlsmgr</b>(8)</a> service entry in <a href="master.5.html">master.cf</a>.
|
The name of the <a href="tlsmgr.8.html"><b>tlsmgr</b>(8)</a> service entry in <a href="master.5.html">master.cf</a>.
|
||||||
|
|
||||||
<b>OBSOLETE STARTTLS CONTROLS</b>
|
<b>OBSOLETE STARTTLS CONTROLS</b>
|
||||||
The following configuration parameters exist for compatibility with
|
The following configuration parameters exist for compatibility with
|
||||||
Postfix versions before 2.3. Support for these will be removed in a
|
Postfix versions before 2.3. Support for these will be removed in a
|
||||||
future release.
|
future release.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_use_tls">smtp_use_tls</a> (no)</b>
|
<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
|
Opportunistic mode: use TLS when a remote SMTP server announces
|
||||||
STARTTLS support, otherwise send the mail in the clear.
|
STARTTLS support, otherwise send the mail in the clear.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a> (no)</b>
|
<b><a href="postconf.5.html#smtp_enforce_tls">smtp_enforce_tls</a> (no)</b>
|
||||||
Enforcement mode: require that remote SMTP servers use TLS
|
Enforcement mode: require that remote SMTP servers use TLS
|
||||||
encryption, and never send mail in the clear.
|
encryption, and never send mail in the clear.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a> (yes)</b>
|
<b><a href="postconf.5.html#smtp_tls_enforce_peername">smtp_tls_enforce_peername</a> (yes)</b>
|
||||||
With mandatory TLS encryption, require that the remote SMTP
|
With mandatory TLS encryption, require that the remote SMTP
|
||||||
server hostname matches the information in the remote SMTP
|
server hostname matches the information in the remote SMTP
|
||||||
server certificate.
|
server certificate.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_per_site">smtp_tls_per_site</a> (empty)</b>
|
<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
|
Optional lookup tables with the Postfix SMTP client TLS usage
|
||||||
policy by next-hop destination and by remote SMTP server host-
|
policy by next-hop destination and by remote SMTP server host-
|
||||||
name.
|
name.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_tls_cipherlist">smtp_tls_cipherlist</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_tls_cipherlist">smtp_tls_cipherlist</a> (empty)</b>
|
||||||
Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS
|
Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS
|
||||||
cipher list.
|
cipher list.
|
||||||
|
|
||||||
<b>RESOURCE AND RATE CONTROLS</b>
|
<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_destination_concur</a>-</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_destination_concur</a>-</b>
|
||||||
<b><a href="postconf.5.html#default_destination_concurrency_limit">rency_limit</a>)</b>
|
<b><a href="postconf.5.html#default_destination_concurrency_limit">rency_limit</a>)</b>
|
||||||
The maximal number of parallel deliveries to the same destina-
|
The maximal number of parallel deliveries to the same destina-
|
||||||
tion via the smtp message delivery transport.
|
tion 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_destination_recipient_limit</a>)</b>
|
<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_destination_recipient_limit</a>)</b>
|
||||||
The maximal number of recipients per message for the smtp mes-
|
The maximal number of recipients per message for the smtp mes-
|
||||||
sage delivery transport.
|
sage delivery transport.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_connect_timeout">smtp_connect_timeout</a> (30s)</b>
|
<b><a href="postconf.5.html#smtp_connect_timeout">smtp_connect_timeout</a> (30s)</b>
|
||||||
The Postfix SMTP client time limit for completing a TCP connec-
|
The Postfix SMTP client time limit for completing a TCP connec-
|
||||||
tion, or zero (use the operating system built-in time limit).
|
tion, 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>
|
<b><a href="postconf.5.html#smtp_helo_timeout">smtp_helo_timeout</a> (300s)</b>
|
||||||
The Postfix SMTP client time limit for sending the HELO or EHLO
|
The Postfix SMTP client time limit for sending the HELO or EHLO
|
||||||
command, and for receiving the initial remote SMTP server
|
command, and for receiving the initial remote SMTP server
|
||||||
response.
|
response.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#lmtp_lhlo_timeout">lmtp_lhlo_timeout</a> (300s)</b>
|
<b><a href="postconf.5.html#lmtp_lhlo_timeout">lmtp_lhlo_timeout</a> (300s)</b>
|
||||||
@ -604,19 +605,19 @@ SMTP(8) SMTP(8)
|
|||||||
mand, and for receiving the remote SMTP server response.
|
mand, and for receiving the remote SMTP server response.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_mail_timeout">smtp_mail_timeout</a> (300s)</b>
|
<b><a href="postconf.5.html#smtp_mail_timeout">smtp_mail_timeout</a> (300s)</b>
|
||||||
The Postfix SMTP client time limit for sending the MAIL FROM
|
The Postfix SMTP client time limit for sending the MAIL FROM
|
||||||
command, and for receiving the remote SMTP server response.
|
command, and for receiving the remote SMTP server response.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_rcpt_timeout">smtp_rcpt_timeout</a> (300s)</b>
|
<b><a href="postconf.5.html#smtp_rcpt_timeout">smtp_rcpt_timeout</a> (300s)</b>
|
||||||
The Postfix SMTP client time limit for sending the SMTP RCPT TO
|
The Postfix SMTP client time limit for sending the SMTP RCPT TO
|
||||||
command, and for receiving the remote SMTP server response.
|
command, and for receiving the remote SMTP server response.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_data_init_timeout">smtp_data_init_timeout</a> (120s)</b>
|
<b><a href="postconf.5.html#smtp_data_init_timeout">smtp_data_init_timeout</a> (120s)</b>
|
||||||
The Postfix SMTP client time limit for sending the SMTP DATA
|
The Postfix SMTP client time limit for sending the SMTP DATA
|
||||||
command, and for receiving the remote SMTP server response.
|
command, and for receiving the remote SMTP server response.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_data_xfer_timeout">smtp_data_xfer_timeout</a> (180s)</b>
|
<b><a href="postconf.5.html#smtp_data_xfer_timeout">smtp_data_xfer_timeout</a> (180s)</b>
|
||||||
The Postfix SMTP client time limit for sending the SMTP message
|
The Postfix SMTP client time limit for sending the SMTP message
|
||||||
content.
|
content.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_data_done_timeout">smtp_data_done_timeout</a> (600s)</b>
|
<b><a href="postconf.5.html#smtp_data_done_timeout">smtp_data_done_timeout</a> (600s)</b>
|
||||||
@ -630,13 +631,13 @@ SMTP(8) SMTP(8)
|
|||||||
Available in Postfix version 2.1 and later:
|
Available in Postfix version 2.1 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_mx_address_limit">smtp_mx_address_limit</a> (5)</b>
|
<b><a href="postconf.5.html#smtp_mx_address_limit">smtp_mx_address_limit</a> (5)</b>
|
||||||
The maximal number of MX (mail exchanger) IP addresses that can
|
The maximal number of MX (mail exchanger) IP addresses that can
|
||||||
result from Postfix SMTP client mail exchanger lookups, or zero
|
result from Postfix SMTP client mail exchanger lookups, or zero
|
||||||
(no limit).
|
(no limit).
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_mx_session_limit">smtp_mx_session_limit</a> (2)</b>
|
<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
|
The maximal number of SMTP sessions per delivery request before
|
||||||
the Postfix SMTP client gives up or delivers to a fall-back
|
the Postfix SMTP client gives up or delivers to a fall-back
|
||||||
<a href="postconf.5.html#relayhost">relay host</a>, or zero (no limit).
|
<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>
|
<b><a href="postconf.5.html#smtp_rset_timeout">smtp_rset_timeout</a> (20s)</b>
|
||||||
@ -646,17 +647,17 @@ SMTP(8) SMTP(8)
|
|||||||
Available in Postfix version 2.2 and earlier:
|
Available in Postfix version 2.2 and earlier:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#lmtp_cache_connection">lmtp_cache_connection</a> (yes)</b>
|
<b><a href="postconf.5.html#lmtp_cache_connection">lmtp_cache_connection</a> (yes)</b>
|
||||||
Keep Postfix LMTP client connections open for up to $<a href="postconf.5.html#max_idle">max_idle</a>
|
Keep Postfix LMTP client connections open for up to $<a href="postconf.5.html#max_idle">max_idle</a>
|
||||||
seconds.
|
seconds.
|
||||||
|
|
||||||
Available in Postfix version 2.2 and later:
|
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>
|
<b><a href="postconf.5.html#smtp_connection_cache_destinations">smtp_connection_cache_destinations</a> (empty)</b>
|
||||||
Permanently enable SMTP connection caching for the specified
|
Permanently enable SMTP connection caching for the specified
|
||||||
destinations.
|
destinations.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_connection_cache_on_demand">smtp_connection_cache_on_demand</a> (yes)</b>
|
<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 destination
|
Temporarily enable SMTP connection caching while a destination
|
||||||
has a high volume of mail in the <a href="QSHAPE_README.html#active_queue">active queue</a>.
|
has a high volume of mail in the <a href="QSHAPE_README.html#active_queue">active queue</a>.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_connection_reuse_time_limit">smtp_connection_reuse_time_limit</a> (300s)</b>
|
<b><a href="postconf.5.html#smtp_connection_reuse_time_limit">smtp_connection_reuse_time_limit</a> (300s)</b>
|
||||||
@ -670,37 +671,37 @@ SMTP(8) SMTP(8)
|
|||||||
Available in Postfix version 2.3 and later:
|
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>
|
<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 receive opera-
|
Time limit for connection cache connect, send or receive opera-
|
||||||
tions.
|
tions.
|
||||||
|
|
||||||
Available in Postfix version 2.9 and later:
|
Available in Postfix version 2.9 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_per_record_deadline">smtp_per_record_deadline</a> (no)</b>
|
<b><a href="postconf.5.html#smtp_per_record_deadline">smtp_per_record_deadline</a> (no)</b>
|
||||||
Change the behavior of the smtp_*_timeout time limits, from a
|
Change the behavior of the smtp_*_timeout time limits, from a
|
||||||
time limit per read or write system call, to a time limit to
|
time limit per read or write system call, to a time limit to
|
||||||
send or receive a complete record (an SMTP command line, SMTP
|
send or receive a complete record (an SMTP command line, SMTP
|
||||||
response line, SMTP message content line, or TLS protocol mes-
|
response line, SMTP message content line, or TLS protocol mes-
|
||||||
sage).
|
sage).
|
||||||
|
|
||||||
Available in Postfix version 2.11 and later:
|
Available in Postfix version 2.11 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_connection_reuse_count_limit">smtp_connection_reuse_count_limit</a> (0)</b>
|
<b><a href="postconf.5.html#smtp_connection_reuse_count_limit">smtp_connection_reuse_count_limit</a> (0)</b>
|
||||||
When SMTP connection caching is enabled, the number of times
|
When SMTP connection caching is enabled, the number of times
|
||||||
that an SMTP session may be reused before it is closed, or zero
|
that an SMTP session may be reused before it is closed, or zero
|
||||||
(no limit).
|
(no limit).
|
||||||
|
|
||||||
<b>TROUBLE SHOOTING CONTROLS</b>
|
<b>TROUBLE SHOOTING CONTROLS</b>
|
||||||
<b><a href="postconf.5.html#debug_peer_level">debug_peer_level</a> (2)</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
|
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.
|
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>
|
<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
|
Optional list of remote client or server hostname or network
|
||||||
address patterns that cause the verbose logging level to
|
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>.
|
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>
|
<b><a href="postconf.5.html#error_notice_recipient">error_notice_recipient</a> (postmaster)</b>
|
||||||
The recipient of postmaster notifications about mail delivery
|
The recipient of postmaster notifications about mail delivery
|
||||||
problems that are caused by policy, resource, software or proto-
|
problems that are caused by policy, resource, software or proto-
|
||||||
col errors.
|
col errors.
|
||||||
|
|
||||||
@ -714,46 +715,46 @@ SMTP(8) SMTP(8)
|
|||||||
|
|
||||||
<b>MISCELLANEOUS CONTROLS</b>
|
<b>MISCELLANEOUS CONTROLS</b>
|
||||||
<b><a href="postconf.5.html#best_mx_transport">best_mx_transport</a> (empty)</b>
|
<b><a href="postconf.5.html#best_mx_transport">best_mx_transport</a> (empty)</b>
|
||||||
Where the Postfix SMTP client should deliver mail when it
|
Where the Postfix SMTP client should deliver mail when it
|
||||||
detects a "mail loops back to myself" error condition.
|
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>
|
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
|
||||||
figuration files.
|
figuration files.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
<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
|
How much time a Postfix daemon process may take to handle a
|
||||||
request before it is terminated by a built-in watchdog timer.
|
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>
|
<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 point when log-
|
The maximal number of digits after the decimal point when log-
|
||||||
ging sub-second delay values.
|
ging sub-second delay values.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#disable_dns_lookups">disable_dns_lookups</a> (no)</b>
|
<b><a href="postconf.5.html#disable_dns_lookups">disable_dns_lookups</a> (no)</b>
|
||||||
Disable DNS lookups in the Postfix SMTP and LMTP clients.
|
Disable DNS lookups in the Postfix SMTP and LMTP clients.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> (all)</b>
|
<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> (all)</b>
|
||||||
The network interface addresses that this mail system receives
|
The network interface addresses that this mail system receives
|
||||||
mail on.
|
mail on.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#inet_protocols">inet_protocols</a> (all)</b>
|
<b><a href="postconf.5.html#inet_protocols">inet_protocols</a> (all)</b>
|
||||||
The Internet protocols Postfix will attempt to use when making
|
The Internet protocols Postfix will attempt to use when making
|
||||||
or accepting connections.
|
or accepting connections.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
|
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
|
||||||
The time limit for sending or receiving information over an
|
The time limit for sending or receiving information over an
|
||||||
internal communication channel.
|
internal communication channel.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#lmtp_assume_final">lmtp_assume_final</a> (no)</b>
|
<b><a href="postconf.5.html#lmtp_assume_final">lmtp_assume_final</a> (no)</b>
|
||||||
When a remote LMTP server announces no DSN support, assume that
|
When a remote LMTP server announces no DSN support, assume that
|
||||||
the server performs final delivery, and send "delivered" deliv-
|
the server performs final delivery, and send "delivered" deliv-
|
||||||
ery status notifications instead of "relayed".
|
ery status notifications instead of "relayed".
|
||||||
|
|
||||||
<b><a href="postconf.5.html#lmtp_tcp_port">lmtp_tcp_port</a> (24)</b>
|
<b><a href="postconf.5.html#lmtp_tcp_port">lmtp_tcp_port</a> (24)</b>
|
||||||
The default TCP port that the Postfix LMTP client connects to.
|
The default TCP port that the Postfix LMTP client connects to.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
|
<b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
|
||||||
The maximum amount of time that an idle Postfix daemon process
|
The maximum amount of time that an idle Postfix daemon process
|
||||||
waits for an incoming connection before terminating voluntarily.
|
waits for an incoming connection before terminating voluntarily.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
|
<b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
|
||||||
@ -767,20 +768,20 @@ SMTP(8) SMTP(8)
|
|||||||
The process name of a Postfix command or daemon process.
|
The process name of a Postfix command or daemon process.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> (empty)</b>
|
<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> (empty)</b>
|
||||||
The network interface addresses that this mail system receives
|
The network interface addresses that this mail system receives
|
||||||
mail on by way of a proxy or network address translation unit.
|
mail on by way of a proxy or network address translation unit.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_address_preference">smtp_address_preference</a> (any)</b>
|
<b><a href="postconf.5.html#smtp_address_preference">smtp_address_preference</a> (any)</b>
|
||||||
The address type ("ipv6", "ipv4" or "any") that the Postfix SMTP
|
The address type ("ipv6", "ipv4" or "any") that the Postfix SMTP
|
||||||
client will try first, when a destination has IPv6 and IPv4
|
client will try first, when a destination has IPv6 and IPv4
|
||||||
addresses with equal MX preference.
|
addresses with equal MX preference.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a> (empty)</b>
|
||||||
An optional numerical network address that the Postfix SMTP
|
An optional numerical network address that the Postfix SMTP
|
||||||
client should bind to when making an IPv4 connection.
|
client should bind to when making an IPv4 connection.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a> (empty)</b>
|
<b><a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a> (empty)</b>
|
||||||
An optional numerical network address that the Postfix SMTP
|
An optional numerical network address that the Postfix SMTP
|
||||||
client should bind to when making an IPv6 connection.
|
client should bind to when making an IPv6 connection.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#smtp_helo_name">smtp_helo_name</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
<b><a href="postconf.5.html#smtp_helo_name">smtp_helo_name</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
||||||
@ -800,8 +801,8 @@ SMTP(8) SMTP(8)
|
|||||||
The syslog facility of Postfix logging.
|
The syslog facility of Postfix logging.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||||
The mail system name that is prepended to the process name in
|
The mail system name that is prepended to the process name in
|
||||||
syslog records, so that "smtpd" becomes, for example, "post-
|
syslog records, so that "smtpd" becomes, for example, "post-
|
||||||
fix/smtpd".
|
fix/smtpd".
|
||||||
|
|
||||||
Available with Postfix 2.2 and earlier:
|
Available with Postfix 2.2 and earlier:
|
||||||
|
@ -263,9 +263,10 @@ VIRTUAL(8) VIRTUAL(8)
|
|||||||
|
|
||||||
Available in Postfix version 2.12 and later:
|
Available in Postfix version 2.12 and later:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#virtual_bounce_defer_filter">virtual_bounce_defer_filter</a> ($<a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a>)</b>
|
<b><a href="postconf.5.html#virtual_delivery_status_filter">virtual_delivery_status_filter</a> ($<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b>
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
Optional filter for the <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent to change the
|
||||||
soft errors and vice versa in the <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent.
|
delivery status code or explanatory text of successful or unsuc-
|
||||||
|
cessful deliveries.
|
||||||
|
|
||||||
<b>SEE ALSO</b>
|
<b>SEE ALSO</b>
|
||||||
<a href="qmgr.8.html">qmgr(8)</a>, queue manager
|
<a href="qmgr.8.html">qmgr(8)</a>, queue manager
|
||||||
@ -282,15 +283,15 @@ VIRTUAL(8) VIRTUAL(8)
|
|||||||
The Secure Mailer license must be distributed with this software.
|
The Secure Mailer license must be distributed with this software.
|
||||||
|
|
||||||
<b>HISTORY</b>
|
<b>HISTORY</b>
|
||||||
This delivery agent was originally based on the Postfix local delivery
|
This delivery agent was originally based on the Postfix local delivery
|
||||||
agent. Modifications mainly consisted of removing code that either was
|
agent. Modifications mainly consisted of removing code that either was
|
||||||
not applicable or that was not safe in this context: aliases,
|
not applicable or that was not safe in this context: aliases,
|
||||||
~user/.forward files, delivery to "|command" or to /file/name.
|
~user/.forward files, delivery to "|command" or to /file/name.
|
||||||
|
|
||||||
The <b>Delivered-To:</b> message header appears in the <b>qmail</b> system by Daniel
|
The <b>Delivered-To:</b> message header appears in the <b>qmail</b> system by Daniel
|
||||||
Bernstein.
|
Bernstein.
|
||||||
|
|
||||||
The <b>maildir</b> structure appears in the <b>qmail</b> system by Daniel Bernstein.
|
The <b>maildir</b> structure appears in the <b>qmail</b> system by Daniel Bernstein.
|
||||||
|
|
||||||
<b>AUTHOR(S)</b>
|
<b>AUTHOR(S)</b>
|
||||||
Wietse Venema
|
Wietse Venema
|
||||||
|
@ -1021,71 +1021,6 @@ debugger_command =
|
|||||||
.fi
|
.fi
|
||||||
.ad
|
.ad
|
||||||
.ft R
|
.ft R
|
||||||
.SH default_bounce_defer_filter (default: empty)
|
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
|
||||||
soft errors and vice versa. This is implemented by rewriting the
|
|
||||||
three-number enhanced status code and the explanatory text in a
|
|
||||||
Postfix delivery agent bounce/defer message.
|
|
||||||
.PP
|
|
||||||
Specify zero or more "type:table" lookup table names, separated
|
|
||||||
by comma or whitespace. With each bounce or defer request, the
|
|
||||||
tables are queried in the specified order with one line of text
|
|
||||||
that is structured as follows:
|
|
||||||
.sp
|
|
||||||
.in +4
|
|
||||||
enhanced-status-code SPACE explanatory-text
|
|
||||||
.in -4
|
|
||||||
.PP
|
|
||||||
The first table match wins. The lookup result must have the
|
|
||||||
same structure as the query: enhanced status codes must have a
|
|
||||||
first numerical field of 4 (defer) or 5 (bounce), and the explanatory
|
|
||||||
text field must be non-empty. Other results will result in a warning.
|
|
||||||
.PP
|
|
||||||
Example:
|
|
||||||
.PP
|
|
||||||
The following example turns specific soft TLS errors into hard
|
|
||||||
errors, by overriding the first number in the enhanced status code.
|
|
||||||
.sp
|
|
||||||
.in +4
|
|
||||||
.nf
|
|
||||||
.na
|
|
||||||
.ft C
|
|
||||||
/etc/postfix/main.cf:
|
|
||||||
smtp_bounce_defer_filter = pcre:/etc/postfix/smtp_ndr_filter
|
|
||||||
.fi
|
|
||||||
.ad
|
|
||||||
.ft R
|
|
||||||
.in -4
|
|
||||||
.sp
|
|
||||||
.in +4
|
|
||||||
.nf
|
|
||||||
.na
|
|
||||||
.ft C
|
|
||||||
/etc/postfix/smtp_ndr_filter:
|
|
||||||
/^4(\e.\ed+\e.\ed+ TLS is required, but host \eS+ refused to start TLS: .+)/
|
|
||||||
5$1
|
|
||||||
/^4(\e.\ed+\e.\ed+ TLS is required, but was not offered by host .+)/
|
|
||||||
5$1
|
|
||||||
# Do not change the following into hard bounces. They may
|
|
||||||
# result from a local configuration problem.
|
|
||||||
# 4.\ed+.\ed+ TLS is required, but our TLS engine is unavailable
|
|
||||||
# 4.\ed+.\ed+ TLS is required, but unavailable
|
|
||||||
# 4.\ed+.\ed+ Cannot start TLS: handshake failure
|
|
||||||
.fi
|
|
||||||
.ad
|
|
||||||
.ft R
|
|
||||||
.in -4
|
|
||||||
.PP
|
|
||||||
Notes:
|
|
||||||
.IP \(bu
|
|
||||||
This feature will NOT override the soft_bounce safety net.
|
|
||||||
.IP \(bu
|
|
||||||
This feature will change the enhanced status code and text
|
|
||||||
that is logged to the maillog file, and that is reported to the
|
|
||||||
sender.
|
|
||||||
.br
|
|
||||||
.PP
|
|
||||||
This feature is available in Postfix 2.12 and later.
|
|
||||||
.SH default_database_type (default: see "postconf -d" output)
|
.SH default_database_type (default: see "postconf -d" output)
|
||||||
The default database type for use in \fBnewaliases\fR(1), \fBpostalias\fR(1)
|
The default database type for use in \fBnewaliases\fR(1), \fBpostalias\fR(1)
|
||||||
and \fBpostmap\fR(1) commands. On many UNIX systems the default type is
|
and \fBpostmap\fR(1) commands. On many UNIX systems the default type is
|
||||||
@ -1173,6 +1108,98 @@ another preemption can take place later.
|
|||||||
Use \fItransport\fR_delivery_slot_loan to specify a
|
Use \fItransport\fR_delivery_slot_loan to specify a
|
||||||
transport-specific override, where \fItransport\fR is the master.cf
|
transport-specific override, where \fItransport\fR is the master.cf
|
||||||
name of the message delivery transport.
|
name of the message delivery transport.
|
||||||
|
.SH default_delivery_status_filter (default: empty)
|
||||||
|
Optional filter to replace the delivery status code or explanatory
|
||||||
|
text of successful or unsuccessful deliveries. This does, however,
|
||||||
|
not allow the replacement of a successful status code (2.X.X) with
|
||||||
|
an unsuccessful status code (4.X.X or 5.X.X) or vice versa.
|
||||||
|
.PP
|
||||||
|
Specify zero or more "type:table" lookup table names, separated
|
||||||
|
by comma or whitespace. With each bounce or defer request, the
|
||||||
|
tables are queried in the specified order with one line of text
|
||||||
|
that is structured as follows:
|
||||||
|
.sp
|
||||||
|
.in +4
|
||||||
|
enhanced-status-code SPACE explanatory-text
|
||||||
|
.in -4
|
||||||
|
.PP
|
||||||
|
The first table match wins. The lookup result must have the
|
||||||
|
same structure as the query, a successful status code (2.X.X) must
|
||||||
|
be replaced with a successful status code, an unsuccessful status
|
||||||
|
code (4.X.X or 5.X.X) must be replaced with an unsuccessful status
|
||||||
|
code, and the explanatory text field must be non-empty. Other results
|
||||||
|
will result in a warning.
|
||||||
|
.PP
|
||||||
|
Example 1: convert specific soft TLS errors into hard errors,
|
||||||
|
by overriding the first number in the enhanced status code.
|
||||||
|
.sp
|
||||||
|
.in +4
|
||||||
|
.nf
|
||||||
|
.na
|
||||||
|
.ft C
|
||||||
|
/etc/postfix/main.cf:
|
||||||
|
smtp_delivery_status_filter = pcre:/etc/postfix/smtp_dsn_filter
|
||||||
|
.fi
|
||||||
|
.ad
|
||||||
|
.ft R
|
||||||
|
.in -4
|
||||||
|
.sp
|
||||||
|
.in +4
|
||||||
|
.nf
|
||||||
|
.na
|
||||||
|
.ft C
|
||||||
|
/etc/postfix/smtp_dsn_filter:
|
||||||
|
/^4(\e.\ed+\e.\ed+ TLS is required, but host \eS+ refused to start TLS: .+)/
|
||||||
|
5$1
|
||||||
|
/^4(\e.\ed+\e.\ed+ TLS is required, but was not offered by host .+)/
|
||||||
|
5$1
|
||||||
|
# Do not change the following into hard bounces. They may
|
||||||
|
# result from a local configuration problem.
|
||||||
|
# 4.\ed+.\ed+ TLS is required, but our TLS engine is unavailable
|
||||||
|
# 4.\ed+.\ed+ TLS is required, but unavailable
|
||||||
|
# 4.\ed+.\ed+ Cannot start TLS: handshake failure
|
||||||
|
.fi
|
||||||
|
.ad
|
||||||
|
.ft R
|
||||||
|
.in -4
|
||||||
|
.PP
|
||||||
|
Example 2: censor the per-recipient delivery status text so
|
||||||
|
that it does not not reveal the destination command or filename
|
||||||
|
when a remote sender requests confirmation of successful delivery.
|
||||||
|
.sp
|
||||||
|
.in +4
|
||||||
|
.nf
|
||||||
|
.na
|
||||||
|
.ft C
|
||||||
|
/etc/postfix/main.cf:
|
||||||
|
local_delivery_status_filter = pcre:/etc/postfix/local_dsn_filter
|
||||||
|
.fi
|
||||||
|
.ad
|
||||||
|
.ft R
|
||||||
|
.in -4
|
||||||
|
.sp
|
||||||
|
.in +4
|
||||||
|
.nf
|
||||||
|
.na
|
||||||
|
.ft C
|
||||||
|
/etc/postfix/local_dsn_filter:
|
||||||
|
/^(2\eS+ delivered to file).+/ $1
|
||||||
|
/^(2\eS+ delivered to command).+/ $1
|
||||||
|
.fi
|
||||||
|
.ad
|
||||||
|
.ft R
|
||||||
|
.in -4
|
||||||
|
.PP
|
||||||
|
Notes:
|
||||||
|
.IP \(bu
|
||||||
|
This feature will NOT override the soft_bounce safety net.
|
||||||
|
.IP \(bu
|
||||||
|
This feature will change the enhanced status code and text
|
||||||
|
that is logged to the maillog file, and that is reported to the
|
||||||
|
sender in delivery confirmation or non-delivery notifications.
|
||||||
|
.br
|
||||||
|
.PP
|
||||||
|
This feature is available in Postfix 2.12 and later.
|
||||||
.SH default_destination_concurrency_failed_cohort_limit (default: 1)
|
.SH default_destination_concurrency_failed_cohort_limit (default: 1)
|
||||||
How many pseudo-cohorts must suffer connection or handshake
|
How many pseudo-cohorts must suffer connection or handshake
|
||||||
failure before a specific destination is considered unavailable
|
failure before a specific destination is considered unavailable
|
||||||
@ -2340,11 +2367,6 @@ The LMTP-specific version of the smtp_body_checks configuration
|
|||||||
parameter. See there for details.
|
parameter. See there for details.
|
||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.5 and later.
|
This feature is available in Postfix 2.5 and later.
|
||||||
.SH lmtp_bounce_defer_filter (default: empty)
|
|
||||||
The LMTP-specific version of the smtp_bounce_defer_filter
|
|
||||||
configuration parameter. See there for details.
|
|
||||||
.PP
|
|
||||||
This feature is available in Postfix 2.12 and later.
|
|
||||||
.SH lmtp_cache_connection (default: yes)
|
.SH lmtp_cache_connection (default: yes)
|
||||||
Keep Postfix LMTP client connections open for up to $max_idle
|
Keep Postfix LMTP client connections open for up to $max_idle
|
||||||
seconds. When the LMTP client receives a request for the same
|
seconds. When the LMTP client receives a request for the same
|
||||||
@ -2454,6 +2476,11 @@ The LMTP-specific version of the smtp_defer_if_no_mx_address_found
|
|||||||
configuration parameter. See there for details.
|
configuration parameter. See there for details.
|
||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.3 and later.
|
This feature is available in Postfix 2.3 and later.
|
||||||
|
.SH lmtp_delivery_status_filter (default: empty)
|
||||||
|
The LMTP-specific version of the smtp_delivery_status_filter
|
||||||
|
configuration parameter. See there for details.
|
||||||
|
.PP
|
||||||
|
This feature is available in Postfix 2.12 and later.
|
||||||
.SH lmtp_destination_concurrency_limit (default: $default_destination_concurrency_limit)
|
.SH lmtp_destination_concurrency_limit (default: $default_destination_concurrency_limit)
|
||||||
The maximal number of parallel deliveries to the same destination
|
The maximal number of parallel deliveries to the same destination
|
||||||
via the lmtp message delivery transport. This limit is enforced by
|
via the lmtp message delivery transport. This limit is enforced by
|
||||||
@ -2929,12 +2956,6 @@ Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
|
|||||||
The default time unit is s (seconds).
|
The default time unit is s (seconds).
|
||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.1 and later.
|
This feature is available in Postfix 2.1 and later.
|
||||||
.SH local_bounce_defer_filter (default: $default_bounce_defer_filter)
|
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
|
||||||
soft errors and vice versa in the \fBlocal\fR(8) delivery agent. See
|
|
||||||
default_bounce_defer_filter for details.
|
|
||||||
.PP
|
|
||||||
This feature is available in Postfix 2.12 and later.
|
|
||||||
.SH local_command_shell (default: empty)
|
.SH local_command_shell (default: empty)
|
||||||
Optional shell program for \fBlocal\fR(8) delivery to non-Postfix command.
|
Optional shell program for \fBlocal\fR(8) delivery to non-Postfix command.
|
||||||
By default, non-Postfix commands are executed directly; commands
|
By default, non-Postfix commands are executed directly; commands
|
||||||
@ -2959,6 +2980,12 @@ local_command_shell = /bin/bash -c
|
|||||||
.fi
|
.fi
|
||||||
.ad
|
.ad
|
||||||
.ft R
|
.ft R
|
||||||
|
.SH local_delivery_status_filter (default: $default_delivery_status_filter)
|
||||||
|
Optional filter for the \fBlocal\fR(8) delivery agent to change the
|
||||||
|
status code or explanatory text of successful or unsuccessful
|
||||||
|
deliveries. See default_delivery_status_filter for details.
|
||||||
|
.PP
|
||||||
|
This feature is available in Postfix 2.12 and later.
|
||||||
.SH local_destination_concurrency_limit (default: 2)
|
.SH local_destination_concurrency_limit (default: 2)
|
||||||
The maximal number of parallel deliveries via the local mail
|
The maximal number of parallel deliveries via the local mail
|
||||||
delivery transport to the same recipient (when
|
delivery transport to the same recipient (when
|
||||||
@ -4173,10 +4200,10 @@ The name of the \fBpickup\fR(8) service. This service picks up local mail
|
|||||||
submissions from the Postfix maildrop queue.
|
submissions from the Postfix maildrop queue.
|
||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.0 and later.
|
This feature is available in Postfix 2.0 and later.
|
||||||
.SH pipe_bounce_defer_filter (default: $default_bounce_defer_filter)
|
.SH pipe_delivery_status_filter (default: $default_delivery_status_filter)
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
Optional filter for the \fBpipe\fR(8) delivery agent to change the
|
||||||
soft errors and vice versa in the \fBpipe\fR(8) delivery agent. See
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
default_bounce_defer_filter for details.
|
deliveries. See default_delivery_status_filter for details.
|
||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.12 and later.
|
This feature is available in Postfix 2.12 and later.
|
||||||
.SH plaintext_reject_code (default: 450)
|
.SH plaintext_reject_code (default: 450)
|
||||||
@ -5852,16 +5879,6 @@ These tables are searched while mail is being delivered. Actions
|
|||||||
that change the delivery time or destination are not available.
|
that change the delivery time or destination are not available.
|
||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.5 and later.
|
This feature is available in Postfix 2.5 and later.
|
||||||
.SH smtp_bounce_defer_filter (default: $default_bounce_defer_filter)
|
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
|
||||||
soft errors and vice versa in the \fBsmtp\fR(8) delivery agent. See
|
|
||||||
default_bounce_defer_filter for details.
|
|
||||||
.PP
|
|
||||||
NOTE: This feature modifies error messages that are generated
|
|
||||||
by the Postfix SMTP client, and that may or may not be derived from
|
|
||||||
remote SMTP server responses. In contrast, the smtp_reply_filter
|
|
||||||
feature modifies remote SMTP server responses that may result in
|
|
||||||
email non-delivery or delivery.
|
|
||||||
.SH smtp_cname_overrides_servername (default: version dependent)
|
.SH smtp_cname_overrides_servername (default: version dependent)
|
||||||
When the remote SMTP servername is a DNS CNAME, replace the
|
When the remote SMTP servername is a DNS CNAME, replace the
|
||||||
servername with the result from CNAME expansion for the purpose of
|
servername with the result from CNAME expansion for the purpose of
|
||||||
@ -6027,6 +6044,15 @@ or worse preference
|
|||||||
than the local MTA itself.
|
than the local MTA itself.
|
||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.1 and later.
|
This feature is available in Postfix 2.1 and later.
|
||||||
|
.SH smtp_delivery_status_filter (default: $default_delivery_status_filter)
|
||||||
|
Optional filter for the \fBsmtp\fR(8) delivery agent to change the
|
||||||
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
|
deliveries. See default_delivery_status_filter for details.
|
||||||
|
.PP
|
||||||
|
NOTE: This feature modifies Postfix SMTP client error or non-error
|
||||||
|
messages that may or may not be derived from remote SMTP server
|
||||||
|
responses. In contrast, the smtp_reply_filter feature modifies
|
||||||
|
remote SMTP server responses only.
|
||||||
.SH smtp_destination_concurrency_limit (default: $default_destination_concurrency_limit)
|
.SH smtp_destination_concurrency_limit (default: $default_destination_concurrency_limit)
|
||||||
The maximal number of parallel deliveries to the same destination
|
The maximal number of parallel deliveries to the same destination
|
||||||
via the smtp message delivery transport. This limit is enforced by
|
via the smtp message delivery transport. This limit is enforced by
|
||||||
@ -12338,10 +12364,10 @@ reach the sum of the expansion and recursion limits. This may
|
|||||||
change in the future.
|
change in the future.
|
||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.1 and later.
|
This feature is available in Postfix 2.1 and later.
|
||||||
.SH virtual_bounce_defer_filter (default: $default_bounce_defer_filter)
|
.SH virtual_delivery_status_filter (default: $default_delivery_status_filter)
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
Optional filter for the \fBvirtual\fR(8) delivery agent to change the
|
||||||
soft errors and vice versa in the \fBvirtual\fR(8) delivery agent. See
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
default_bounce_defer_filter for details.
|
deliveries. See default_delivery_status_filter for details.
|
||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.12 and later.
|
This feature is available in Postfix 2.12 and later.
|
||||||
.SH virtual_destination_concurrency_limit (default: $default_destination_concurrency_limit)
|
.SH virtual_destination_concurrency_limit (default: $default_destination_concurrency_limit)
|
||||||
|
@ -421,9 +421,10 @@ attribute, when delivering mail to a child alias that does not have
|
|||||||
its own owner alias.
|
its own owner alias.
|
||||||
.PP
|
.PP
|
||||||
Available in Postfix version 2.12 and later:
|
Available in Postfix version 2.12 and later:
|
||||||
.IP "\fBlocal_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
.IP "\fBlocal_delivery_status_filter ($default_delivery_status_filter)\fR"
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
Optional filter for the \fBlocal\fR(8) delivery agent to change the
|
||||||
soft errors and vice versa in the \fBlocal\fR(8) delivery agent.
|
status code or explanatory text of successful or unsuccessful
|
||||||
|
deliveries.
|
||||||
.SH "DELIVERY METHOD CONTROLS"
|
.SH "DELIVERY METHOD CONTROLS"
|
||||||
.na
|
.na
|
||||||
.nf
|
.nf
|
||||||
|
@ -426,9 +426,10 @@ The mail system name that is prepended to the process name in syslog
|
|||||||
records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
||||||
.PP
|
.PP
|
||||||
Available in Postfix version 2.12 and later:
|
Available in Postfix version 2.12 and later:
|
||||||
.IP "\fBpipe_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
.IP "\fBpipe_delivery_status_filter ($default_delivery_status_filter)\fR"
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
Optional filter for the \fBpipe\fR(8) delivery agent to change the
|
||||||
soft errors and vice versa in the \fBpipe\fR(8) delivery agent.
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
|
deliveries.
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.na
|
.na
|
||||||
.nf
|
.nf
|
||||||
|
@ -276,9 +276,10 @@ Available in Postfix version 2.11 and later:
|
|||||||
Level of DNS support in the Postfix SMTP client.
|
Level of DNS support in the Postfix SMTP client.
|
||||||
.PP
|
.PP
|
||||||
Available in Postfix version 2.12 and later:
|
Available in Postfix version 2.12 and later:
|
||||||
.IP "\fBsmtp_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
.IP "\fBsmtp_delivery_status_filter ($default_delivery_status_filter)\fR"
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
Optional filter for the \fBsmtp\fR(8) delivery agent to change the
|
||||||
soft errors and vice versa in the \fBsmtp\fR(8) delivery agent.
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
|
deliveries.
|
||||||
.SH "MIME PROCESSING CONTROLS"
|
.SH "MIME PROCESSING CONTROLS"
|
||||||
.na
|
.na
|
||||||
.nf
|
.nf
|
||||||
|
@ -283,9 +283,10 @@ The mail system name that is prepended to the process name in syslog
|
|||||||
records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
||||||
.PP
|
.PP
|
||||||
Available in Postfix version 2.12 and later:
|
Available in Postfix version 2.12 and later:
|
||||||
.IP "\fBvirtual_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
.IP "\fBvirtual_delivery_status_filter ($default_delivery_status_filter)\fR"
|
||||||
Optional filter to change arbitrary hard delivery errors into
|
Optional filter for the \fBvirtual\fR(8) delivery agent to change the
|
||||||
soft errors and vice versa in the \fBvirtual\fR(8) delivery agent.
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
|
deliveries.
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.na
|
.na
|
||||||
.nf
|
.nf
|
||||||
|
@ -133,7 +133,7 @@ while (<>) {
|
|||||||
s;\bdaemon_timeout\b;<a href="postconf.5.html#daemon_timeout">$&</a>;g;
|
s;\bdaemon_timeout\b;<a href="postconf.5.html#daemon_timeout">$&</a>;g;
|
||||||
s;\bdebug_peer_level\b;<a href="postconf.5.html#debug_peer_level">$&</a>;g;
|
s;\bdebug_peer_level\b;<a href="postconf.5.html#debug_peer_level">$&</a>;g;
|
||||||
s;\bdebug_peer_list\b;<a href="postconf.5.html#debug_peer_list">$&</a>;g;
|
s;\bdebug_peer_list\b;<a href="postconf.5.html#debug_peer_list">$&</a>;g;
|
||||||
s;\bdefault_bounce_defer_filter\b;<a href="postconf.5.html#default_bounce_defer_filter">$&</a>;g;
|
s;\bdefault_delivery_status_filter\b;<a href="postconf.5.html#default_delivery_status_filter">$&</a>;g;
|
||||||
s;\bdefault_data[-</Bb>]*\n* *[<Bb>]*base_type\b;<a href="postconf.5.html#default_database_type">$&</a>;g;
|
s;\bdefault_data[-</Bb>]*\n* *[<Bb>]*base_type\b;<a href="postconf.5.html#default_database_type">$&</a>;g;
|
||||||
s;\bdefault_deliv[-</Bb>]*\n* *[<Bb>]*ery_slot_cost\b;<a href="postconf.5.html#default_delivery_slot_cost">$&</a>;g;
|
s;\bdefault_deliv[-</Bb>]*\n* *[<Bb>]*ery_slot_cost\b;<a href="postconf.5.html#default_delivery_slot_cost">$&</a>;g;
|
||||||
s;\bdefault_deliv[-</Bb>]*\n* *[<Bb>]*ery_slot_discount\b;<a href="postconf.5.html#default_delivery_slot_discount">$&</a>;g;
|
s;\bdefault_deliv[-</Bb>]*\n* *[<Bb>]*ery_slot_discount\b;<a href="postconf.5.html#default_delivery_slot_discount">$&</a>;g;
|
||||||
@ -213,7 +213,7 @@ while (<>) {
|
|||||||
s;\blmtp_address_preference\b;<a href="postconf.5.html#lmtp_address_preference">$&</a>;g;
|
s;\blmtp_address_preference\b;<a href="postconf.5.html#lmtp_address_preference">$&</a>;g;
|
||||||
s;\blmtp_body_checks\b;<a href="postconf.5.html#lmtp_body_checks">$&</a>;g;
|
s;\blmtp_body_checks\b;<a href="postconf.5.html#lmtp_body_checks">$&</a>;g;
|
||||||
s;\blmtp_cname_overrides_servername\b;<a href="postconf.5.html#lmtp_cname_overrides_servername">$&</a>;g;
|
s;\blmtp_cname_overrides_servername\b;<a href="postconf.5.html#lmtp_cname_overrides_servername">$&</a>;g;
|
||||||
s;\blmtp_bounce_defer_filter\b;<a href="postconf.5.html#lmtp_bounce_defer_filter">$&</a>;g;
|
s;\blmtp_delivery_status_filter\b;<a href="postconf.5.html#lmtp_delivery_status_filter">$&</a>;g;
|
||||||
s;\blmtp_dns_resolver_options\b;<a href="postconf.5.html#lmtp_dns_resolver_options">$&</a>;g;
|
s;\blmtp_dns_resolver_options\b;<a href="postconf.5.html#lmtp_dns_resolver_options">$&</a>;g;
|
||||||
s;\blmtp_dns_support_level\b;<a href="postconf.5.html#lmtp_dns_support_level">$&</a>;g;
|
s;\blmtp_dns_support_level\b;<a href="postconf.5.html#lmtp_dns_support_level">$&</a>;g;
|
||||||
s;\blmtp_header_checks\b;<a href="postconf.5.html#lmtp_header_checks">$&</a>;g;
|
s;\blmtp_header_checks\b;<a href="postconf.5.html#lmtp_header_checks">$&</a>;g;
|
||||||
@ -307,7 +307,7 @@ while (<>) {
|
|||||||
s;\blmtp_skip_quit_response\b;<a href="postconf.5.html#lmtp_skip_quit_response">$&</a>;g;
|
s;\blmtp_skip_quit_response\b;<a href="postconf.5.html#lmtp_skip_quit_response">$&</a>;g;
|
||||||
s;\blmtp_tcp_port\b;<a href="postconf.5.html#lmtp_tcp_port">$&</a>;g;
|
s;\blmtp_tcp_port\b;<a href="postconf.5.html#lmtp_tcp_port">$&</a>;g;
|
||||||
s;\blmtp_xforward_timeout\b;<a href="postconf.5.html#lmtp_xforward_timeout">$&</a>;g;
|
s;\blmtp_xforward_timeout\b;<a href="postconf.5.html#lmtp_xforward_timeout">$&</a>;g;
|
||||||
s;\blocal_bounce_defer_filter\b;<a href="postconf.5.html#local_bounce_defer_filter">$&</a>;g;
|
s;\blocal_delivery_status_filter\b;<a href="postconf.5.html#local_delivery_status_filter">$&</a>;g;
|
||||||
s;\blocal_command_shell\b;<a href="postconf.5.html#local_command_shell">$&</a>;g;
|
s;\blocal_command_shell\b;<a href="postconf.5.html#local_command_shell">$&</a>;g;
|
||||||
s;\blocal_destina[-</bB>]*\n* *[<bB>]*tion_concurrency_limit\b;<a href="postconf.5.html#local_destination_concurrency_limit">$&</a>;g;
|
s;\blocal_destina[-</bB>]*\n* *[<bB>]*tion_concurrency_limit\b;<a href="postconf.5.html#local_destination_concurrency_limit">$&</a>;g;
|
||||||
s;\blocal_destina[-</bB>]*\n* *[<bB>]*tion_recip[-</bB>]*\n* *[<bB>]*ient_limit\b;<a href="postconf.5.html#local_destination_recipient_limit">$&</a>;g;
|
s;\blocal_destina[-</bB>]*\n* *[<bB>]*tion_recip[-</bB>]*\n* *[<bB>]*ient_limit\b;<a href="postconf.5.html#local_destination_recipient_limit">$&</a>;g;
|
||||||
@ -360,7 +360,7 @@ while (<>) {
|
|||||||
s;\bpar[-</bB>]*\n* *[<bB>]*ent_domain_matches_subdomains\b;<a href="postconf.5.html#parent_domain_matches_subdomains">$&</a>;g;
|
s;\bpar[-</bB>]*\n* *[<bB>]*ent_domain_matches_subdomains\b;<a href="postconf.5.html#parent_domain_matches_subdomains">$&</a>;g;
|
||||||
s;\bpermit_mx_backup_networks\b;<a href="postconf.5.html#permit_mx_backup_networks">$&</a>;g;
|
s;\bpermit_mx_backup_networks\b;<a href="postconf.5.html#permit_mx_backup_networks">$&</a>;g;
|
||||||
s;\bpickup_service_name\b;<a href="postconf.5.html#pickup_service_name">$&</a>;g;
|
s;\bpickup_service_name\b;<a href="postconf.5.html#pickup_service_name">$&</a>;g;
|
||||||
s;\bpipe_bounce_defer_filter\b;<a href="postconf.5.html#pipe_bounce_defer_filter">$&</a>;g;
|
s;\bpipe_delivery_status_filter\b;<a href="postconf.5.html#pipe_delivery_status_filter">$&</a>;g;
|
||||||
s;\bplaintext_reject_code\b;<a href="postconf.5.html#plaintext_reject_code">$&</a>;g;
|
s;\bplaintext_reject_code\b;<a href="postconf.5.html#plaintext_reject_code">$&</a>;g;
|
||||||
s;\bpost[-</bB>]*\n* *[<bB>]*multi_start_commands\b;<a href="postconf.5.html#postmulti_start_commands">$&</a>;g;
|
s;\bpost[-</bB>]*\n* *[<bB>]*multi_start_commands\b;<a href="postconf.5.html#postmulti_start_commands">$&</a>;g;
|
||||||
s;\bpost[-</bB>]*\n* *[<bB>]*multi_stop_commands\b;<a href="postconf.5.html#postmulti_stop_commands">$&</a>;g;
|
s;\bpost[-</bB>]*\n* *[<bB>]*multi_stop_commands\b;<a href="postconf.5.html#postmulti_stop_commands">$&</a>;g;
|
||||||
@ -455,7 +455,7 @@ while (<>) {
|
|||||||
s;\bsmtp_connection_cache_time_limit\b;<a href="postconf.5.html#smtp_connection_cache_time_limit">$&</a>;g;
|
s;\bsmtp_connection_cache_time_limit\b;<a href="postconf.5.html#smtp_connection_cache_time_limit">$&</a>;g;
|
||||||
s;\bsmtp_connection_cache_destinations\b;<a href="postconf.5.html#smtp_connection_cache_destinations">$&</a>;g;
|
s;\bsmtp_connection_cache_destinations\b;<a href="postconf.5.html#smtp_connection_cache_destinations">$&</a>;g;
|
||||||
|
|
||||||
s;\bsmtp_bounce_defer_filter\b;<a href="postconf.5.html#smtp_bounce_defer_filter">$&</a>;g;
|
s;\bsmtp_delivery_status_filter\b;<a href="postconf.5.html#smtp_delivery_status_filter">$&</a>;g;
|
||||||
s;\bsmtp_data_done_timeout\b;<a href="postconf.5.html#smtp_data_done_timeout">$&</a>;g;
|
s;\bsmtp_data_done_timeout\b;<a href="postconf.5.html#smtp_data_done_timeout">$&</a>;g;
|
||||||
s;\bsmtp_data_init_timeout\b;<a href="postconf.5.html#smtp_data_init_timeout">$&</a>;g;
|
s;\bsmtp_data_init_timeout\b;<a href="postconf.5.html#smtp_data_init_timeout">$&</a>;g;
|
||||||
s;\bsmtp_data_xfer_timeout\b;<a href="postconf.5.html#smtp_data_xfer_timeout">$&</a>;g;
|
s;\bsmtp_data_xfer_timeout\b;<a href="postconf.5.html#smtp_data_xfer_timeout">$&</a>;g;
|
||||||
@ -606,7 +606,7 @@ while (<>) {
|
|||||||
s;\bvir[-</bB>]*\n*[ <bB>]*tual_alias_maps\b;<a href="postconf.5.html#virtual_alias_maps">$&</a>;g;
|
s;\bvir[-</bB>]*\n*[ <bB>]*tual_alias_maps\b;<a href="postconf.5.html#virtual_alias_maps">$&</a>;g;
|
||||||
s;\bvir[-</bB>]*\n*[ <bB>]*tual_maps\b;<a href="postconf.5.html#virtual_maps">$&</a>;g;
|
s;\bvir[-</bB>]*\n*[ <bB>]*tual_maps\b;<a href="postconf.5.html#virtual_maps">$&</a>;g;
|
||||||
s;\bvir[-</bB>]*\n*[ <bB>]*tual_alias_recursion_limit\b;<a href="postconf.5.html#virtual_alias_recursion_limit">$&</a>;g;
|
s;\bvir[-</bB>]*\n*[ <bB>]*tual_alias_recursion_limit\b;<a href="postconf.5.html#virtual_alias_recursion_limit">$&</a>;g;
|
||||||
s;\bvir[-</bB>]*\n*[ <bB>]*tual_bounce_defer_filter\b;<a href="postconf.5.html#virtual_bounce_defer_filter">$&</a>;g;
|
s;\bvir[-</bB>]*\n*[ <bB>]*tual_delivery_status_filter\b;<a href="postconf.5.html#virtual_delivery_status_filter">$&</a>;g;
|
||||||
s;\bvir[-</bB>]*\n*[ <bB>]*tual_gid_maps\b;<a href="postconf.5.html#virtual_gid_maps">$&</a>;g;
|
s;\bvir[-</bB>]*\n*[ <bB>]*tual_gid_maps\b;<a href="postconf.5.html#virtual_gid_maps">$&</a>;g;
|
||||||
s;\bvir[-</bB>]*\n*[ <bB>]*tual_mail[-</bB>]*\n* *[<bB>]*box_base\b;<a href="postconf.5.html#virtual_mailbox_base">$&</a>;g;
|
s;\bvir[-</bB>]*\n*[ <bB>]*tual_mail[-</bB>]*\n* *[<bB>]*box_base\b;<a href="postconf.5.html#virtual_mailbox_base">$&</a>;g;
|
||||||
s;\bvir[-</bB>]*\n*[ <bB>]*tual_mail[-</bB>]*\n* *[<bB>]*box_domains\b;<a href="postconf.5.html#virtual_mailbox_domains">$&</a>;g;
|
s;\bvir[-</bB>]*\n*[ <bB>]*tual_mail[-</bB>]*\n* *[<bB>]*box_domains\b;<a href="postconf.5.html#virtual_mailbox_domains">$&</a>;g;
|
||||||
|
@ -15616,12 +15616,12 @@ anchor assertion) TLSA records. </p>
|
|||||||
|
|
||||||
<p> This feature is available in Postfix 2.11 and later. </p>
|
<p> This feature is available in Postfix 2.11 and later. </p>
|
||||||
|
|
||||||
%PARAM default_bounce_defer_filter
|
%PARAM default_delivery_status_filter
|
||||||
|
|
||||||
<p> Optional filter to change arbitrary hard delivery errors into
|
<p> Optional filter to replace the delivery status code or explanatory
|
||||||
soft errors and vice versa. This is implemented by rewriting the
|
text of successful or unsuccessful deliveries. This does, however,
|
||||||
three-number enhanced status code and the explanatory text in a
|
not allow the replacement of a successful status code (2.X.X) with
|
||||||
Postfix delivery agent bounce/defer message. </p>
|
an unsuccessful status code (4.X.X or 5.X.X) or vice versa. </p>
|
||||||
|
|
||||||
<p> Specify zero or more "type:table" lookup table names, separated
|
<p> Specify zero or more "type:table" lookup table names, separated
|
||||||
by comma or whitespace. With each bounce or defer request, the
|
by comma or whitespace. With each bounce or defer request, the
|
||||||
@ -15633,27 +15633,25 @@ enhanced-status-code SPACE explanatory-text
|
|||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<p> The first table match wins. The lookup result must have the
|
<p> The first table match wins. The lookup result must have the
|
||||||
same structure as the query: enhanced status codes must have a
|
same structure as the query, a successful status code (2.X.X) must
|
||||||
first numerical field of 4 (defer) or 5 (bounce), and the explanatory
|
be replaced with a successful status code, an unsuccessful status
|
||||||
text field must be non-empty. Other results will result in a warning.
|
code (4.X.X or 5.X.X) must be replaced with an unsuccessful status
|
||||||
</p>
|
code, and the explanatory text field must be non-empty. Other results
|
||||||
|
will result in a warning. </p>
|
||||||
|
|
||||||
<p> Example: </p>
|
<p> Example 1: convert specific soft TLS errors into hard errors,
|
||||||
|
by overriding the first number in the enhanced status code. </p>
|
||||||
<p> The following example turns specific soft TLS errors into hard
|
|
||||||
errors, by overriding the first number in the enhanced status code.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<pre>
|
<pre>
|
||||||
/etc/postfix/main.cf:
|
/etc/postfix/main.cf:
|
||||||
smtp_bounce_defer_filter = pcre:/etc/postfix/smtp_ndr_filter
|
smtp_delivery_status_filter = pcre:/etc/postfix/smtp_dsn_filter
|
||||||
</pre>
|
</pre>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<pre>
|
<pre>
|
||||||
/etc/postfix/smtp_ndr_filter:
|
/etc/postfix/smtp_dsn_filter:
|
||||||
/^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/
|
/^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/
|
||||||
5$1
|
5$1
|
||||||
/^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/
|
/^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/
|
||||||
@ -15666,6 +15664,26 @@ errors, by overriding the first number in the enhanced status code.
|
|||||||
</pre>
|
</pre>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
|
<p> Example 2: censor the per-recipient delivery status text so
|
||||||
|
that it does not not reveal the destination command or filename
|
||||||
|
when a remote sender requests confirmation of successful delivery.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<pre>
|
||||||
|
/etc/postfix/main.cf:
|
||||||
|
local_delivery_status_filter = pcre:/etc/postfix/local_dsn_filter
|
||||||
|
</pre>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<pre>
|
||||||
|
/etc/postfix/local_dsn_filter:
|
||||||
|
/^(2\S+ delivered to file).+/ $1
|
||||||
|
/^(2\S+ delivered to command).+/ $1
|
||||||
|
</pre>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
<p> Notes: </p>
|
<p> Notes: </p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
@ -15674,51 +15692,51 @@ errors, by overriding the first number in the enhanced status code.
|
|||||||
|
|
||||||
<li> <p> This feature will change the enhanced status code and text
|
<li> <p> This feature will change the enhanced status code and text
|
||||||
that is logged to the maillog file, and that is reported to the
|
that is logged to the maillog file, and that is reported to the
|
||||||
sender. </p>
|
sender in delivery confirmation or non-delivery notifications.
|
||||||
|
</p>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||||
|
|
||||||
%PARAM smtp_bounce_defer_filter $default_bounce_defer_filter
|
%PARAM smtp_delivery_status_filter $default_delivery_status_filter
|
||||||
|
|
||||||
<p> Optional filter to change arbitrary hard delivery errors into
|
<p> Optional filter for the smtp(8) delivery agent to change the
|
||||||
soft errors and vice versa in the smtp(8) delivery agent. See
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
default_bounce_defer_filter for details. </p>
|
deliveries. See default_delivery_status_filter for details. </p>
|
||||||
|
|
||||||
<p> NOTE: This feature modifies error messages that are generated
|
<p> NOTE: This feature modifies Postfix SMTP client error or non-error
|
||||||
by the Postfix SMTP client, and that may or may not be derived from
|
messages that may or may not be derived from remote SMTP server
|
||||||
remote SMTP server responses. In contrast, the smtp_reply_filter
|
responses. In contrast, the smtp_reply_filter feature modifies
|
||||||
feature modifies remote SMTP server responses that may result in
|
remote SMTP server responses only. </p>
|
||||||
email non-delivery or delivery. </p>
|
|
||||||
|
|
||||||
%PARAM lmtp_bounce_defer_filter
|
%PARAM lmtp_delivery_status_filter
|
||||||
|
|
||||||
<p> The LMTP-specific version of the smtp_bounce_defer_filter
|
<p> The LMTP-specific version of the smtp_delivery_status_filter
|
||||||
configuration parameter. See there for details. </p>
|
configuration parameter. See there for details. </p>
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||||
|
|
||||||
%PARAM pipe_bounce_defer_filter $default_bounce_defer_filter
|
%PARAM pipe_delivery_status_filter $default_delivery_status_filter
|
||||||
|
|
||||||
<p> Optional filter to change arbitrary hard delivery errors into
|
<p> Optional filter for the pipe(8) delivery agent to change the
|
||||||
soft errors and vice versa in the pipe(8) delivery agent. See
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
default_bounce_defer_filter for details. </p>
|
deliveries. See default_delivery_status_filter for details. </p>
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||||
|
|
||||||
%PARAM virtual_bounce_defer_filter $default_bounce_defer_filter
|
%PARAM virtual_delivery_status_filter $default_delivery_status_filter
|
||||||
|
|
||||||
<p> Optional filter to change arbitrary hard delivery errors into
|
<p> Optional filter for the virtual(8) delivery agent to change the
|
||||||
soft errors and vice versa in the virtual(8) delivery agent. See
|
delivery status code or explanatory text of successful or unsuccessful
|
||||||
default_bounce_defer_filter for details. </p>
|
deliveries. See default_delivery_status_filter for details. </p>
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||||
|
|
||||||
%PARAM local_bounce_defer_filter $default_bounce_defer_filter
|
%PARAM local_delivery_status_filter $default_delivery_status_filter
|
||||||
|
|
||||||
<p> Optional filter to change arbitrary hard delivery errors into
|
<p> Optional filter for the local(8) delivery agent to change the
|
||||||
soft errors and vice versa in the local(8) delivery agent. See
|
status code or explanatory text of successful or unsuccessful
|
||||||
default_bounce_defer_filter for details. </p>
|
deliveries. See default_delivery_status_filter for details. </p>
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||||
|
@ -32,7 +32,7 @@ SRCS = abounce.c anvil_clnt.c been_here.c bounce.c bounce_log.c \
|
|||||||
match_service.c mail_conf_nint.c addr_match_list.c mail_conf_nbool.c \
|
match_service.c mail_conf_nint.c addr_match_list.c mail_conf_nbool.c \
|
||||||
smtp_reply_footer.c safe_ultostr.c verify_sender_addr.c \
|
smtp_reply_footer.c safe_ultostr.c verify_sender_addr.c \
|
||||||
dict_memcache.c mail_version.c memcache_proto.c server_acl.c \
|
dict_memcache.c mail_version.c memcache_proto.c server_acl.c \
|
||||||
mkmap_fail.c haproxy_srvr.c ndr_filter.c
|
mkmap_fail.c haproxy_srvr.c dsn_filter.c
|
||||||
OBJS = abounce.o anvil_clnt.o been_here.o bounce.o bounce_log.o \
|
OBJS = abounce.o anvil_clnt.o been_here.o bounce.o bounce_log.o \
|
||||||
canon_addr.o cfg_parser.o cleanup_strerror.o cleanup_strflags.o \
|
canon_addr.o cfg_parser.o cleanup_strerror.o cleanup_strflags.o \
|
||||||
clnt_stream.o conv_time.o db_common.o debug_peer.o debug_process.o \
|
clnt_stream.o conv_time.o db_common.o debug_peer.o debug_process.o \
|
||||||
@ -66,7 +66,7 @@ OBJS = abounce.o anvil_clnt.o been_here.o bounce.o bounce_log.o \
|
|||||||
match_service.o mail_conf_nint.o addr_match_list.o mail_conf_nbool.o \
|
match_service.o mail_conf_nint.o addr_match_list.o mail_conf_nbool.o \
|
||||||
smtp_reply_footer.o safe_ultostr.o verify_sender_addr.o \
|
smtp_reply_footer.o safe_ultostr.o verify_sender_addr.o \
|
||||||
dict_memcache.o mail_version.o memcache_proto.o server_acl.o \
|
dict_memcache.o mail_version.o memcache_proto.o server_acl.o \
|
||||||
mkmap_fail.o haproxy_srvr.o ndr_filter.o
|
mkmap_fail.o haproxy_srvr.o dsn_filter.o
|
||||||
HDRS = abounce.h anvil_clnt.h been_here.h bounce.h bounce_log.h \
|
HDRS = abounce.h anvil_clnt.h been_here.h bounce.h bounce_log.h \
|
||||||
canon_addr.h cfg_parser.h cleanup_user.h clnt_stream.h config.h \
|
canon_addr.h cfg_parser.h cleanup_user.h clnt_stream.h config.h \
|
||||||
conv_time.h db_common.h debug_peer.h debug_process.h defer.h \
|
conv_time.h db_common.h debug_peer.h debug_process.h defer.h \
|
||||||
@ -93,7 +93,7 @@ HDRS = abounce.h anvil_clnt.h been_here.h bounce.h bounce_log.h \
|
|||||||
fold_addr.h header_body_checks.h data_redirect.h match_service.h \
|
fold_addr.h header_body_checks.h data_redirect.h match_service.h \
|
||||||
addr_match_list.h smtp_reply_footer.h safe_ultostr.h \
|
addr_match_list.h smtp_reply_footer.h safe_ultostr.h \
|
||||||
verify_sender_addr.h dict_memcache.h memcache_proto.h server_acl.h \
|
verify_sender_addr.h dict_memcache.h memcache_proto.h server_acl.h \
|
||||||
haproxy_srvr.h ndr_filter.h
|
haproxy_srvr.h dsn_filter.h
|
||||||
TESTSRC = rec2stream.c stream2rec.c recdump.c
|
TESTSRC = rec2stream.c stream2rec.c recdump.c
|
||||||
DEFS = -I. -I$(INC_DIR) -D$(SYSTYPE)
|
DEFS = -I. -I$(INC_DIR) -D$(SYSTYPE)
|
||||||
CFLAGS = $(DEBUG) $(OPT) $(DEFS)
|
CFLAGS = $(DEBUG) $(OPT) $(DEFS)
|
||||||
@ -666,7 +666,7 @@ bounce.o: log_adhoc.h
|
|||||||
bounce.o: mail_params.h
|
bounce.o: mail_params.h
|
||||||
bounce.o: mail_proto.h
|
bounce.o: mail_proto.h
|
||||||
bounce.o: msg_stats.h
|
bounce.o: msg_stats.h
|
||||||
bounce.o: ndr_filter.h
|
bounce.o: dsn_filter.h
|
||||||
bounce.o: rcpt_print.h
|
bounce.o: rcpt_print.h
|
||||||
bounce.o: recipient_list.h
|
bounce.o: recipient_list.h
|
||||||
bounce.o: trace.h
|
bounce.o: trace.h
|
||||||
@ -812,7 +812,7 @@ defer.o: mail_params.h
|
|||||||
defer.o: mail_proto.h
|
defer.o: mail_proto.h
|
||||||
defer.o: mail_queue.h
|
defer.o: mail_queue.h
|
||||||
defer.o: msg_stats.h
|
defer.o: msg_stats.h
|
||||||
defer.o: ndr_filter.h
|
defer.o: dsn_filter.h
|
||||||
defer.o: rcpt_print.h
|
defer.o: rcpt_print.h
|
||||||
defer.o: recipient_list.h
|
defer.o: recipient_list.h
|
||||||
defer.o: trace.h
|
defer.o: trace.h
|
||||||
@ -1806,20 +1806,20 @@ namadr_list.o: ../../include/match_list.h
|
|||||||
namadr_list.o: ../../include/sys_defs.h
|
namadr_list.o: ../../include/sys_defs.h
|
||||||
namadr_list.o: namadr_list.c
|
namadr_list.o: namadr_list.c
|
||||||
namadr_list.o: namadr_list.h
|
namadr_list.o: namadr_list.h
|
||||||
ndr_filter.o: ../../include/argv.h
|
dsn_filter.o: ../../include/argv.h
|
||||||
ndr_filter.o: ../../include/dict.h
|
dsn_filter.o: ../../include/dict.h
|
||||||
ndr_filter.o: ../../include/msg.h
|
dsn_filter.o: ../../include/msg.h
|
||||||
ndr_filter.o: ../../include/myflock.h
|
dsn_filter.o: ../../include/myflock.h
|
||||||
ndr_filter.o: ../../include/mymalloc.h
|
dsn_filter.o: ../../include/mymalloc.h
|
||||||
ndr_filter.o: ../../include/sys_defs.h
|
dsn_filter.o: ../../include/sys_defs.h
|
||||||
ndr_filter.o: ../../include/vbuf.h
|
dsn_filter.o: ../../include/vbuf.h
|
||||||
ndr_filter.o: ../../include/vstream.h
|
dsn_filter.o: ../../include/vstream.h
|
||||||
ndr_filter.o: ../../include/vstring.h
|
dsn_filter.o: ../../include/vstring.h
|
||||||
ndr_filter.o: dsn.h
|
dsn_filter.o: dsn.h
|
||||||
ndr_filter.o: dsn_util.h
|
dsn_filter.o: dsn_util.h
|
||||||
ndr_filter.o: maps.h
|
dsn_filter.o: maps.h
|
||||||
ndr_filter.o: ndr_filter.c
|
dsn_filter.o: dsn_filter.c
|
||||||
ndr_filter.o: ndr_filter.h
|
dsn_filter.o: dsn_filter.h
|
||||||
off_cvt.o: ../../include/msg.h
|
off_cvt.o: ../../include/msg.h
|
||||||
off_cvt.o: ../../include/sys_defs.h
|
off_cvt.o: ../../include/sys_defs.h
|
||||||
off_cvt.o: ../../include/vbuf.h
|
off_cvt.o: ../../include/vbuf.h
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
/* const char *title;
|
/* const char *title;
|
||||||
/* const char *maps;
|
/* const char *maps;
|
||||||
/* INTERNAL API
|
/* INTERNAL API
|
||||||
/* NDR_FILTER *bounce_defer_filter;
|
/* DSN_FILTER *delivery_status_filter;
|
||||||
/*
|
/*
|
||||||
/* int bounce_append_intern(flags, id, stats, recipient, relay, dsn)
|
/* int bounce_append_intern(flags, id, stats, recipient, relay, dsn)
|
||||||
/* int flags;
|
/* int flags;
|
||||||
@ -181,7 +181,7 @@
|
|||||||
|
|
||||||
/* Global library. */
|
/* Global library. */
|
||||||
|
|
||||||
#define BOUNCE_DEFER_INTERN
|
#define DSN_INTERN
|
||||||
#include <mail_params.h>
|
#include <mail_params.h>
|
||||||
#include <mail_proto.h>
|
#include <mail_proto.h>
|
||||||
#include <log_adhoc.h>
|
#include <log_adhoc.h>
|
||||||
@ -195,7 +195,7 @@
|
|||||||
|
|
||||||
/* Shared internally, between bounce and defer clients. */
|
/* Shared internally, between bounce and defer clients. */
|
||||||
|
|
||||||
NDR_FILTER *bounce_defer_filter;
|
DSN_FILTER *delivery_status_filter;
|
||||||
|
|
||||||
/* bounce_append - append delivery status to per-message bounce log */
|
/* bounce_append - append delivery status to per-message bounce log */
|
||||||
|
|
||||||
@ -218,8 +218,8 @@ int bounce_append(int flags, const char *id, MSG_STATS *stats,
|
|||||||
/*
|
/*
|
||||||
* DSN filter (Postfix 2.12).
|
* DSN filter (Postfix 2.12).
|
||||||
*/
|
*/
|
||||||
if (bounce_defer_filter != 0
|
if (delivery_status_filter != 0
|
||||||
&& (dsn_res = ndr_filter_lookup(bounce_defer_filter, &my_dsn)) != 0) {
|
&& (dsn_res = dsn_filter_lookup(delivery_status_filter, &my_dsn)) != 0) {
|
||||||
if (dsn_res->status[0] == '4')
|
if (dsn_res->status[0] == '4')
|
||||||
return (defer_append_intern(flags, id, stats, rcpt, relay, dsn_res));
|
return (defer_append_intern(flags, id, stats, rcpt, relay, dsn_res));
|
||||||
my_dsn = *dsn_res;
|
my_dsn = *dsn_res;
|
||||||
@ -406,8 +406,8 @@ int bounce_one(int flags, const char *queue, const char *id,
|
|||||||
/*
|
/*
|
||||||
* DSN filter (Postfix 2.12).
|
* DSN filter (Postfix 2.12).
|
||||||
*/
|
*/
|
||||||
if (bounce_defer_filter != 0
|
if (delivery_status_filter != 0
|
||||||
&& (dsn_res = ndr_filter_lookup(bounce_defer_filter, &my_dsn)) != 0) {
|
&& (dsn_res = dsn_filter_lookup(delivery_status_filter, &my_dsn)) != 0) {
|
||||||
if (dsn_res->status[0] == '4')
|
if (dsn_res->status[0] == '4')
|
||||||
return (defer_append_intern(flags, id, stats, rcpt, relay, dsn_res));
|
return (defer_append_intern(flags, id, stats, rcpt, relay, dsn_res));
|
||||||
my_dsn = *dsn_res;
|
my_dsn = *dsn_res;
|
||||||
@ -508,8 +508,8 @@ void bounce_client_init(const char *title, const char *maps)
|
|||||||
{
|
{
|
||||||
const char myname[] = "bounce_client_init";
|
const char myname[] = "bounce_client_init";
|
||||||
|
|
||||||
if (bounce_defer_filter != 0)
|
if (delivery_status_filter != 0)
|
||||||
msg_panic("%s: duplicate initialization", myname);
|
msg_panic("%s: duplicate initialization", myname);
|
||||||
if (*maps)
|
if (*maps)
|
||||||
bounce_defer_filter = ndr_filter_create(title, maps);
|
delivery_status_filter = dsn_filter_create(title, maps);
|
||||||
}
|
}
|
||||||
|
@ -70,11 +70,11 @@ extern void bounce_client_init(const char *, const char *);
|
|||||||
* Start of private API.
|
* Start of private API.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef BOUNCE_DEFER_INTERN
|
#ifdef DSN_INTERN
|
||||||
|
|
||||||
#include <ndr_filter.h>
|
#include <dsn_filter.h>
|
||||||
|
|
||||||
extern NDR_FILTER *bounce_defer_filter;
|
extern DSN_FILTER *delivery_status_filter;
|
||||||
|
|
||||||
extern int bounce_append_intern(int, const char *, MSG_STATS *, RECIPIENT *,
|
extern int bounce_append_intern(int, const char *, MSG_STATS *, RECIPIENT *,
|
||||||
const char *, DSN *);
|
const char *, DSN *);
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
/* question has been deferred. The defer log is not deleted,
|
/* question has been deferred. The defer log is not deleted,
|
||||||
/* and no recipients are deleted from the original queue file.
|
/* and no recipients are deleted from the original queue file.
|
||||||
/*
|
/*
|
||||||
/* defer_one() implements ndr_filter(3) compatibility for the
|
/* defer_one() implements dsn_filter(3) compatibility for the
|
||||||
/* bounce_one() routine.
|
/* bounce_one() routine.
|
||||||
/*
|
/*
|
||||||
/* defer_append_intern() is for use after the DSN filter.
|
/* defer_append_intern() is for use after the DSN filter.
|
||||||
@ -160,7 +160,7 @@
|
|||||||
|
|
||||||
/* Global library. */
|
/* Global library. */
|
||||||
|
|
||||||
#define BOUNCE_DEFER_INTERN
|
#define DSN_INTERN
|
||||||
#include <mail_params.h>
|
#include <mail_params.h>
|
||||||
#include <mail_queue.h>
|
#include <mail_queue.h>
|
||||||
#include <mail_proto.h>
|
#include <mail_proto.h>
|
||||||
@ -195,8 +195,8 @@ int defer_append(int flags, const char *id, MSG_STATS *stats,
|
|||||||
/*
|
/*
|
||||||
* DSN filter (Postfix 2.12).
|
* DSN filter (Postfix 2.12).
|
||||||
*/
|
*/
|
||||||
if (bounce_defer_filter != 0
|
if (delivery_status_filter != 0
|
||||||
&& (dsn_res = ndr_filter_lookup(bounce_defer_filter, &my_dsn)) != 0) {
|
&& (dsn_res = dsn_filter_lookup(delivery_status_filter, &my_dsn)) != 0) {
|
||||||
if (dsn_res->status[0] == '5')
|
if (dsn_res->status[0] == '5')
|
||||||
return (bounce_append_intern(flags, id, stats, rcpt, relay, dsn_res));
|
return (bounce_append_intern(flags, id, stats, rcpt, relay, dsn_res));
|
||||||
my_dsn = *dsn_res;
|
my_dsn = *dsn_res;
|
||||||
@ -351,8 +351,8 @@ int defer_one(int flags, const char *queue, const char *id,
|
|||||||
/*
|
/*
|
||||||
* DSN filter (Postfix 2.12).
|
* DSN filter (Postfix 2.12).
|
||||||
*/
|
*/
|
||||||
if (bounce_defer_filter != 0
|
if (delivery_status_filter != 0
|
||||||
&& (dsn_res = ndr_filter_lookup(bounce_defer_filter, &my_dsn)) != 0) {
|
&& (dsn_res = dsn_filter_lookup(delivery_status_filter, &my_dsn)) != 0) {
|
||||||
if (dsn_res->status[0] == '5')
|
if (dsn_res->status[0] == '5')
|
||||||
return (bounce_one_intern(flags, queue, id, encoding, sender,
|
return (bounce_one_intern(flags, queue, id, encoding, sender,
|
||||||
dsn_envid, dsn_ret, stats, rcpt,
|
dsn_envid, dsn_ret, stats, rcpt,
|
||||||
|
@ -33,7 +33,7 @@ extern int defer_one(int, const char *, const char *, const char *,
|
|||||||
/*
|
/*
|
||||||
* Start of private API.
|
* Start of private API.
|
||||||
*/
|
*/
|
||||||
#ifdef BOUNCE_DEFER_INTERN
|
#ifdef DSN_INTERN
|
||||||
|
|
||||||
extern int defer_append_intern(int, const char *, MSG_STATS *, RECIPIENT *,
|
extern int defer_append_intern(int, const char *, MSG_STATS *, RECIPIENT *,
|
||||||
const char *, DSN *);
|
const char *, DSN *);
|
||||||
|
192
postfix/src/global/dsn_filter.c
Normal file
192
postfix/src/global/dsn_filter.c
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
/*++
|
||||||
|
/* NAME
|
||||||
|
/* dsn_filter 3
|
||||||
|
/* SUMMARY
|
||||||
|
/* filter DSN status or text
|
||||||
|
/* SYNOPSIS
|
||||||
|
/* #include <dsn_filter.h>
|
||||||
|
/*
|
||||||
|
/* DSN_FILTER *dsn_filter_create(
|
||||||
|
/* const char *title,
|
||||||
|
/* const char *map_names)
|
||||||
|
/*
|
||||||
|
/* DSN *dsn_filter_lookup(
|
||||||
|
/* DSN_FILTER *fp,
|
||||||
|
/* DSN *dsn)
|
||||||
|
/*
|
||||||
|
/* void dsn_free(
|
||||||
|
/* DSN_FILTER *fp)
|
||||||
|
/* DESCRIPTION
|
||||||
|
/* This module maps (bounce or defer non-delivery status code
|
||||||
|
/* and text) into replacement (bounce or defer non-delivery
|
||||||
|
/* status code and text), or maps (success status code and
|
||||||
|
/* text) into replacement (success status code and text). Other
|
||||||
|
/* DSN attributes are passed through without modification.
|
||||||
|
/*
|
||||||
|
/* dsn_filter_create() instantiates a DSN filter.
|
||||||
|
/*
|
||||||
|
/* dsn_filter_lookup() queries the specified filter. The input
|
||||||
|
/* DSN must be a success, bounce or defer DSN. If a match is
|
||||||
|
/* found a non-delivery status must map to a non-delivery
|
||||||
|
/* status, a success status must map to a success status, and
|
||||||
|
/* the text must be non-empty. The result is a null pointer
|
||||||
|
/* when no valid match is found. Otherwise, the result is
|
||||||
|
/* overwritten upon each call. This function must not be
|
||||||
|
/* called with the result from a dsn_filter_lookup() call.
|
||||||
|
/*
|
||||||
|
/* dsn_free() destroys the specified DSN filter.
|
||||||
|
/*
|
||||||
|
/* Arguments:
|
||||||
|
/* .IP title
|
||||||
|
/* Origin of the mapnames argument, typically a configuration
|
||||||
|
/* parameter name. This is reported in diagnostics.
|
||||||
|
/* .IP mapnames
|
||||||
|
/* List of lookup tables, separated by whitespace or comma.
|
||||||
|
/* .IP fp
|
||||||
|
/* filter created with dsn_filter_create()
|
||||||
|
/* .IP dsn
|
||||||
|
/* A success, bounce or defer DSN data structure. The
|
||||||
|
/* dsn_filter_lookup() result value is in part a shallow copy
|
||||||
|
/* of this argument.
|
||||||
|
/* SEE ALSO
|
||||||
|
/* maps(3) multi-table search
|
||||||
|
/* DIAGNOSTICS
|
||||||
|
/* Panic: invalid dsn argument; recursive call. Fatal error:
|
||||||
|
/* memory allocation problem. Warning: invalid DSN lookup
|
||||||
|
/* result.
|
||||||
|
/* LICENSE
|
||||||
|
/* .ad
|
||||||
|
/* .fi
|
||||||
|
/* 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
|
||||||
|
/*--*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* System libraries.
|
||||||
|
*/
|
||||||
|
#include <sys_defs.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Utility library.
|
||||||
|
*/
|
||||||
|
#include <msg.h>
|
||||||
|
#include <mymalloc.h>
|
||||||
|
#include <vstring.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Global library.
|
||||||
|
*/
|
||||||
|
#include <maps.h>
|
||||||
|
#include <dsn.h>
|
||||||
|
#include <dsn_util.h>
|
||||||
|
#include <maps.h>
|
||||||
|
#include <dsn_filter.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Private data structure.
|
||||||
|
*/
|
||||||
|
struct DSN_FILTER {
|
||||||
|
MAPS *maps; /* Replacement (status, text) */
|
||||||
|
VSTRING *buffer; /* Status code and text */
|
||||||
|
DSN_SPLIT dp; /* Parsing aid */
|
||||||
|
DSN dsn; /* Shallow copy */
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SLMs.
|
||||||
|
*/
|
||||||
|
#define STR(x) vstring_str(x)
|
||||||
|
|
||||||
|
/* dsn_filter_create - create bounce/defer NDR filter */
|
||||||
|
|
||||||
|
DSN_FILTER *dsn_filter_create(const char *title, const char *map_names)
|
||||||
|
{
|
||||||
|
const char myname[] = "dsn_filter_create";
|
||||||
|
DSN_FILTER *fp;
|
||||||
|
|
||||||
|
if (msg_verbose)
|
||||||
|
msg_info("%s: %s %s", myname, title, map_names);
|
||||||
|
|
||||||
|
fp = (DSN_FILTER *) mymalloc(sizeof(*fp));
|
||||||
|
fp->buffer = vstring_alloc(100);
|
||||||
|
fp->maps = maps_create(title, map_names, DICT_FLAG_LOCK);
|
||||||
|
return (fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* dsn_filter_lookup - apply bounce/defer NDR filter */
|
||||||
|
|
||||||
|
DSN *dsn_filter_lookup(DSN_FILTER *fp, DSN *dsn)
|
||||||
|
{
|
||||||
|
const char myname[] = "dsn_filter_lookup";
|
||||||
|
const char *result;
|
||||||
|
int ndr_dsn = 0;
|
||||||
|
|
||||||
|
if (msg_verbose)
|
||||||
|
msg_info("%s: %s %s", myname, dsn->status, dsn->reason);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* XXX Instead of hard-coded '4' etc., use some form of encapsulation
|
||||||
|
* when reading or updating the status class field.
|
||||||
|
*/
|
||||||
|
#define IS_SUCCESS_DSN(s) (dsn_valid(s) && (s)[0] == '2')
|
||||||
|
#define IS_NDR_DSN(s) (dsn_valid(s) && ((s)[0] == '4' || (s)[0] == '5'))
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sanity check. We filter only success/bounce/defer DSNs.
|
||||||
|
*/
|
||||||
|
if (IS_SUCCESS_DSN(dsn->status))
|
||||||
|
ndr_dsn = 0;
|
||||||
|
else if (IS_NDR_DSN(dsn->status))
|
||||||
|
ndr_dsn = 1;
|
||||||
|
else
|
||||||
|
msg_panic("%s: dsn argument with bad status code: %s",
|
||||||
|
myname, dsn->status);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sanity check. A DSN filter must not be invoked with its own result.
|
||||||
|
*/
|
||||||
|
if (dsn->reason == fp->dsn.reason)
|
||||||
|
msg_panic("%s: recursive call is not allowed", myname);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Look up replacement status and text.
|
||||||
|
*/
|
||||||
|
vstring_sprintf(fp->buffer, "%s %s", dsn->status, dsn->reason);
|
||||||
|
if ((result = maps_find(fp->maps, STR(fp->buffer), 0)) != 0) {
|
||||||
|
/* Sanity check. Do not allow success<=>error mappings. */
|
||||||
|
if ((ndr_dsn == 0 && !IS_SUCCESS_DSN(result))
|
||||||
|
|| (ndr_dsn != 0 && !IS_NDR_DSN(result))) {
|
||||||
|
msg_warn("%s: bad status code: %s", fp->maps->title, result);
|
||||||
|
return (0);
|
||||||
|
} else {
|
||||||
|
vstring_strcpy(fp->buffer, result);
|
||||||
|
dsn_split(&fp->dp, "can't happen", STR(fp->buffer));
|
||||||
|
(void) DSN_ASSIGN(&fp->dsn, DSN_STATUS(fp->dp.dsn),
|
||||||
|
(result[0] == '4' ? "delayed" :
|
||||||
|
result[0] == '5' ? "failed" :
|
||||||
|
dsn->action),
|
||||||
|
fp->dp.text, dsn->dtype, dsn->dtext,
|
||||||
|
dsn->mtype, dsn->mname);
|
||||||
|
return (&fp->dsn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* dsn_filter_free - destroy bounce/defer NDR filter */
|
||||||
|
|
||||||
|
void dsn_filter_free(DSN_FILTER *fp)
|
||||||
|
{
|
||||||
|
const char myname[] = "dsn_filter_free";
|
||||||
|
|
||||||
|
if (msg_verbose)
|
||||||
|
msg_info("%s: %s", myname, fp->maps->title);
|
||||||
|
|
||||||
|
maps_free(fp->maps);
|
||||||
|
vstring_free(fp->buffer);
|
||||||
|
myfree((char *) fp);
|
||||||
|
}
|
@ -1,24 +1,24 @@
|
|||||||
#ifndef _NDR_FILTER_H_INCLUDED_
|
#ifndef _DSN_FILTER_H_INCLUDED_
|
||||||
#define _NDR_FILTER_H_INCLUDED_
|
#define _DSN_FILTER_H_INCLUDED_
|
||||||
|
|
||||||
/*++
|
/*++
|
||||||
/* NAME
|
/* NAME
|
||||||
/* ndr_filter 3h
|
/* dsn_filter 3h
|
||||||
/* SUMMARY
|
/* SUMMARY
|
||||||
/* bounce/defer DSN filter
|
/* bounce/defer DSN filter
|
||||||
/* SYNOPSIS
|
/* SYNOPSIS
|
||||||
/* #include <ndr_filter.h>
|
/* #include <dsn_filter.h>
|
||||||
/* DESCRIPTION
|
/* DESCRIPTION
|
||||||
/* .nf
|
/* .nf
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* External interface.
|
* External interface.
|
||||||
*/
|
*/
|
||||||
typedef struct NDR_FILTER NDR_FILTER;
|
typedef struct DSN_FILTER DSN_FILTER;
|
||||||
|
|
||||||
extern NDR_FILTER *ndr_filter_create(const char *, const char *);
|
extern DSN_FILTER *dsn_filter_create(const char *, const char *);
|
||||||
extern DSN *ndr_filter_lookup(NDR_FILTER *, DSN *);
|
extern DSN *dsn_filter_lookup(DSN_FILTER *, DSN *);
|
||||||
extern void ndr_filter_free(NDR_FILTER *);
|
extern void dsn_filter_free(DSN_FILTER *);
|
||||||
|
|
||||||
/* LICENSE
|
/* LICENSE
|
||||||
/* .ad
|
/* .ad
|
@ -121,7 +121,7 @@
|
|||||||
/* bool var_multi_enable;
|
/* bool var_multi_enable;
|
||||||
/* bool var_long_queue_ids;
|
/* bool var_long_queue_ids;
|
||||||
/* bool var_daemon_open_fatal;
|
/* bool var_daemon_open_fatal;
|
||||||
/* char *var_ndr_filter;
|
/* char *var_dsn_filter;
|
||||||
/*
|
/*
|
||||||
/* void mail_params_init()
|
/* void mail_params_init()
|
||||||
/*
|
/*
|
||||||
@ -315,7 +315,7 @@ char *var_multi_name;
|
|||||||
bool var_multi_enable;
|
bool var_multi_enable;
|
||||||
bool var_long_queue_ids;
|
bool var_long_queue_ids;
|
||||||
bool var_daemon_open_fatal;
|
bool var_daemon_open_fatal;
|
||||||
char *var_ndr_filter;
|
char *var_dsn_filter;
|
||||||
|
|
||||||
const char null_format_string[1] = "";
|
const char null_format_string[1] = "";
|
||||||
|
|
||||||
@ -591,7 +591,7 @@ void mail_params_init()
|
|||||||
VAR_INT_FILT_CLASSES, DEF_INT_FILT_CLASSES, &var_int_filt_classes, 0, 0,
|
VAR_INT_FILT_CLASSES, DEF_INT_FILT_CLASSES, &var_int_filt_classes, 0, 0,
|
||||||
/* multi_instance_wrapper may have dependencies but not dependents. */
|
/* multi_instance_wrapper may have dependencies but not dependents. */
|
||||||
VAR_MULTI_WRAPPER, DEF_MULTI_WRAPPER, &var_multi_wrapper, 0, 0,
|
VAR_MULTI_WRAPPER, DEF_MULTI_WRAPPER, &var_multi_wrapper, 0, 0,
|
||||||
VAR_NDR_FILTER, DEF_NDR_FILTER, &var_ndr_filter, 0, 0,
|
VAR_DSN_FILTER, DEF_DSN_FILTER, &var_dsn_filter, 0, 0,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
static const CONFIG_STR_FN_TABLE function_str_defaults_2[] = {
|
static const CONFIG_STR_FN_TABLE function_str_defaults_2[] = {
|
||||||
|
@ -3747,27 +3747,27 @@ extern bool var_daemon_open_fatal;
|
|||||||
/*
|
/*
|
||||||
* Optional DSN bounce/defer filter.
|
* Optional DSN bounce/defer filter.
|
||||||
*/
|
*/
|
||||||
#define VAR_NDR_FILTER "default_bounce_defer_filter"
|
#define VAR_DSN_FILTER "default_delivery_status_filter"
|
||||||
#define DEF_NDR_FILTER ""
|
#define DEF_DSN_FILTER ""
|
||||||
extern char *var_ndr_filter;
|
extern char *var_dsn_filter;
|
||||||
|
|
||||||
#define VAR_SMTP_NDR_FILTER "smtp_bounce_defer_filter"
|
#define VAR_SMTP_DSN_FILTER "smtp_delivery_status_filter"
|
||||||
#define DEF_SMTP_NDR_FILTER "$" VAR_NDR_FILTER
|
#define DEF_SMTP_DSN_FILTER "$" VAR_DSN_FILTER
|
||||||
#define VAR_LMTP_NDR_FILTER "lmtp_bounce_defer_filter"
|
#define VAR_LMTP_DSN_FILTER "lmtp_delivery_status_filter"
|
||||||
#define DEF_LMTP_NDR_FILTER "$" VAR_NDR_FILTER
|
#define DEF_LMTP_DSN_FILTER "$" VAR_DSN_FILTER
|
||||||
extern char *var_smtp_ndr_filter;
|
extern char *var_smtp_dsn_filter;
|
||||||
|
|
||||||
#define VAR_PIPE_NDR_FILTER "pipe_bounce_defer_filter"
|
#define VAR_PIPE_DSN_FILTER "pipe_delivery_status_filter"
|
||||||
#define DEF_PIPE_NDR_FILTER "$" VAR_NDR_FILTER
|
#define DEF_PIPE_DSN_FILTER "$" VAR_DSN_FILTER
|
||||||
extern char *var_pipe_ndr_filter;
|
extern char *var_pipe_dsn_filter;
|
||||||
|
|
||||||
#define VAR_VIRT_NDR_FILTER "virtual_bounce_defer_filter"
|
#define VAR_VIRT_DSN_FILTER "virtual_delivery_status_filter"
|
||||||
#define DEF_VIRT_NDR_FILTER "$" VAR_NDR_FILTER
|
#define DEF_VIRT_DSN_FILTER "$" VAR_DSN_FILTER
|
||||||
extern char *var_virt_ndr_filter;
|
extern char *var_virt_dsn_filter;
|
||||||
|
|
||||||
#define VAR_LOCAL_NDR_FILTER "local_bounce_defer_filter"
|
#define VAR_LOCAL_DSN_FILTER "local_delivery_status_filter"
|
||||||
#define DEF_LOCAL_NDR_FILTER "$" VAR_NDR_FILTER
|
#define DEF_LOCAL_DSN_FILTER "$" VAR_DSN_FILTER
|
||||||
extern char *var_local_ndr_filter;
|
extern char *var_local_dsn_filter;
|
||||||
|
|
||||||
/* LICENSE
|
/* LICENSE
|
||||||
/* .ad
|
/* .ad
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
* Patches change both the patchlevel and the release date. Snapshots have no
|
* Patches change both the patchlevel and the release date. Snapshots have no
|
||||||
* patchlevel; they change the release date only.
|
* patchlevel; they change the release date only.
|
||||||
*/
|
*/
|
||||||
#define MAIL_RELEASE_DATE "20140318"
|
#define MAIL_RELEASE_DATE "20140321"
|
||||||
#define MAIL_VERSION_NUMBER "2.12"
|
#define MAIL_VERSION_NUMBER "2.12"
|
||||||
|
|
||||||
#ifdef SNAPSHOT
|
#ifdef SNAPSHOT
|
||||||
|
@ -1,182 +0,0 @@
|
|||||||
/*++
|
|
||||||
/* NAME
|
|
||||||
/* ndr_filter 3
|
|
||||||
/* SUMMARY
|
|
||||||
/* bounce or defer NDR filter
|
|
||||||
/* SYNOPSIS
|
|
||||||
/* #include <ndr_filter.h>
|
|
||||||
/*
|
|
||||||
/* NDR_FILTER *ndr_filter_create(
|
|
||||||
/* const char *title,
|
|
||||||
/* const char *map_names)
|
|
||||||
/*
|
|
||||||
/* DSN *ndr_filter_lookup(
|
|
||||||
/* NDR_FILTER *fp,
|
|
||||||
/* DSN *dsn)
|
|
||||||
/*
|
|
||||||
/* void dsn_free(
|
|
||||||
/* NDR_FILTER *fp)
|
|
||||||
/* DESCRIPTION
|
|
||||||
/* This module maps a bounce or defer non-delivery status code
|
|
||||||
/* and text into a bounce or defer non-delivery status code
|
|
||||||
/* and text. The other DSN attributes are passed through without
|
|
||||||
/* modification.
|
|
||||||
/*
|
|
||||||
/* ndr_filter_create() instantiates a bounce or defer NDR filter.
|
|
||||||
/*
|
|
||||||
/* ndr_filter_lookup() queries the specified filter. The DSN
|
|
||||||
/* must be a bounce or defer DSN. If a match is found and the
|
|
||||||
/* result is properly formatted, the result value must specify
|
|
||||||
/* a bounce or defer DSN. The result is in part overwritten
|
|
||||||
/* upon each call, and is in part a shallow copy of the dsn
|
|
||||||
/* argument. The result is a null pointer when no valid match
|
|
||||||
/* is found. This function must not be called with the result
|
|
||||||
/* from a ndr_filter_lookup() call.
|
|
||||||
/*
|
|
||||||
/* dsn_free() destroys the specified NDR filter.
|
|
||||||
/*
|
|
||||||
/* Arguments:
|
|
||||||
/* .IP title
|
|
||||||
/* Origin of the mapnames argument, typically a configuration
|
|
||||||
/* parameter name. This is reported in diagnostics.
|
|
||||||
/* .IP mapnames
|
|
||||||
/* List of lookup tables, separated by whitespace or comma.
|
|
||||||
/* .IP fp
|
|
||||||
/* filter created with ndr_filter_create()
|
|
||||||
/* .IP dsn
|
|
||||||
/* A bounce or defer DSN data structure. The ndr_filter_lookup()
|
|
||||||
/* result value is in part a shallow copy of this argument.
|
|
||||||
/* SEE ALSO
|
|
||||||
/* maps(3) multi-table search
|
|
||||||
/* DIAGNOSTICS
|
|
||||||
/* Panic: invalid dsn argument; recursive call. Fatal error:
|
|
||||||
/* memory allocation problem. Warning: invalid DSN lookup
|
|
||||||
/* result.
|
|
||||||
/* LICENSE
|
|
||||||
/* .ad
|
|
||||||
/* .fi
|
|
||||||
/* 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
|
|
||||||
/*--*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* System libraries.
|
|
||||||
*/
|
|
||||||
#include <sys_defs.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Utility library.
|
|
||||||
*/
|
|
||||||
#include <msg.h>
|
|
||||||
#include <mymalloc.h>
|
|
||||||
#include <vstring.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Global library.
|
|
||||||
*/
|
|
||||||
#include <maps.h>
|
|
||||||
#include <dsn.h>
|
|
||||||
#include <dsn_util.h>
|
|
||||||
#include <maps.h>
|
|
||||||
#include <ndr_filter.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Private data structure.
|
|
||||||
*/
|
|
||||||
struct NDR_FILTER {
|
|
||||||
MAPS *maps; /* Replacement (status, text) */
|
|
||||||
VSTRING *buffer; /* Status code and text */
|
|
||||||
DSN_SPLIT dp; /* Parsing aid */
|
|
||||||
DSN dsn; /* Shallow copy */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* SLMs.
|
|
||||||
*/
|
|
||||||
#define STR(x) vstring_str(x)
|
|
||||||
|
|
||||||
/* ndr_filter_create - create bounce/defer NDR filter */
|
|
||||||
|
|
||||||
NDR_FILTER *ndr_filter_create(const char *title, const char *map_names)
|
|
||||||
{
|
|
||||||
const char myname[] = "ndr_filter_create";
|
|
||||||
NDR_FILTER *fp;
|
|
||||||
|
|
||||||
if (msg_verbose)
|
|
||||||
msg_info("%s: %s %s", myname, title, map_names);
|
|
||||||
|
|
||||||
fp = (NDR_FILTER *) mymalloc(sizeof(*fp));
|
|
||||||
fp->buffer = vstring_alloc(100);
|
|
||||||
fp->maps = maps_create(title, map_names, DICT_FLAG_LOCK);
|
|
||||||
return (fp);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ndr_filter_lookup - apply bounce/defer NDR filter */
|
|
||||||
|
|
||||||
DSN *ndr_filter_lookup(NDR_FILTER *fp, DSN *dsn)
|
|
||||||
{
|
|
||||||
const char myname[] = "ndr_filter_lookup";
|
|
||||||
const char *result;
|
|
||||||
|
|
||||||
if (msg_verbose)
|
|
||||||
msg_info("%s: %s %s", myname, dsn->status, dsn->reason);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* XXX Instead of hard-coded '4' or '5', use some form of encapsulation
|
|
||||||
* to read or update the class field.
|
|
||||||
*/
|
|
||||||
#define IS_NDR_DSN(s) \
|
|
||||||
(dsn_valid(s) && ((s)[0] == '4' || (s)[0] == '5'))
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Sanity check. We filter only bounce/defer DSNs.
|
|
||||||
*/
|
|
||||||
if (!IS_NDR_DSN(dsn->status))
|
|
||||||
msg_panic("%s: dsn argument with bad status code: %s",
|
|
||||||
myname, dsn->status);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Sanity check. An NDR filter must not be invoked with its own result.
|
|
||||||
*/
|
|
||||||
if (dsn->reason == fp->dsn.reason)
|
|
||||||
msg_panic("%s: recursive call is not allowed", myname);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Look up replacement status and text.
|
|
||||||
*/
|
|
||||||
vstring_sprintf(fp->buffer, "%s %s", dsn->status, dsn->reason);
|
|
||||||
if ((result = maps_find(fp->maps, STR(fp->buffer), 0)) != 0) {
|
|
||||||
/* Sanity check. We accept only bounce/defer DSNs. */
|
|
||||||
if (!IS_NDR_DSN(result)) {
|
|
||||||
msg_warn("%s: bad status code: %s", fp->maps->title, result);
|
|
||||||
return (0);
|
|
||||||
} else {
|
|
||||||
vstring_strcpy(fp->buffer, result);
|
|
||||||
dsn_split(&fp->dp, "can't happen", STR(fp->buffer));
|
|
||||||
(void) DSN_ASSIGN(&fp->dsn, DSN_STATUS(fp->dp.dsn),
|
|
||||||
(result[0] == '4' ? "delayed" : "failed"),
|
|
||||||
fp->dp.text, dsn->dtype, dsn->dtext,
|
|
||||||
dsn->mtype, dsn->mname);
|
|
||||||
return (&fp->dsn);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ndr_filter_free - destroy bounce/defer NDR filter */
|
|
||||||
|
|
||||||
void ndr_filter_free(NDR_FILTER *fp)
|
|
||||||
{
|
|
||||||
const char myname[] = "ndr_filter_free";
|
|
||||||
|
|
||||||
if (msg_verbose)
|
|
||||||
msg_info("%s: %s", myname, fp->maps->title);
|
|
||||||
|
|
||||||
maps_free(fp->maps);
|
|
||||||
vstring_free(fp->buffer);
|
|
||||||
myfree((char *) fp);
|
|
||||||
}
|
|
@ -19,8 +19,6 @@
|
|||||||
/* message delivery record on request by the sender. The
|
/* message delivery record on request by the sender. The
|
||||||
/* flags argument determines the action.
|
/* flags argument determines the action.
|
||||||
/*
|
/*
|
||||||
/* vsent() implements an alternative interface.
|
|
||||||
/*
|
|
||||||
/* Arguments:
|
/* Arguments:
|
||||||
/* .IP flags
|
/* .IP flags
|
||||||
/* Zero or more of the following:
|
/* Zero or more of the following:
|
||||||
@ -79,6 +77,7 @@
|
|||||||
|
|
||||||
/* Global library. */
|
/* Global library. */
|
||||||
|
|
||||||
|
#define DSN_INTERN
|
||||||
#include <mail_params.h>
|
#include <mail_params.h>
|
||||||
#include <verify.h>
|
#include <verify.h>
|
||||||
#include <log_adhoc.h>
|
#include <log_adhoc.h>
|
||||||
@ -97,6 +96,7 @@ int sent(int flags, const char *id, MSG_STATS *stats,
|
|||||||
DSN *dsn)
|
DSN *dsn)
|
||||||
{
|
{
|
||||||
DSN my_dsn = *dsn;
|
DSN my_dsn = *dsn;
|
||||||
|
DSN *dsn_res;
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -107,6 +107,13 @@ int sent(int flags, const char *id, MSG_STATS *stats,
|
|||||||
my_dsn.status = "2.0.0";
|
my_dsn.status = "2.0.0";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* DSN filter (Postfix 2.12).
|
||||||
|
*/
|
||||||
|
if (delivery_status_filter != 0
|
||||||
|
&& (dsn_res = dsn_filter_lookup(delivery_status_filter, &my_dsn)) != 0)
|
||||||
|
my_dsn = *dsn_res;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* MTA-requested address verification information is stored in the verify
|
* MTA-requested address verification information is stored in the verify
|
||||||
* service database.
|
* service database.
|
||||||
@ -147,7 +154,7 @@ int sent(int flags, const char *id, MSG_STATS *stats,
|
|||||||
vstring_sprintf(junk, "%s: %s service failed",
|
vstring_sprintf(junk, "%s: %s service failed",
|
||||||
id, var_trace_service);
|
id, var_trace_service);
|
||||||
my_dsn.reason = vstring_str(junk);
|
my_dsn.reason = vstring_str(junk);
|
||||||
my_dsn.status ="4.3.0";
|
my_dsn.status = "4.3.0";
|
||||||
status = defer_append(flags, id, stats, recipient, relay, &my_dsn);
|
status = defer_append(flags, id, stats, recipient, relay, &my_dsn);
|
||||||
vstring_free(junk);
|
vstring_free(junk);
|
||||||
}
|
}
|
||||||
|
@ -387,9 +387,10 @@
|
|||||||
/* its own owner alias.
|
/* its own owner alias.
|
||||||
/* .PP
|
/* .PP
|
||||||
/* Available in Postfix version 2.12 and later:
|
/* Available in Postfix version 2.12 and later:
|
||||||
/* .IP "\fBlocal_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
/* .IP "\fBlocal_delivery_status_filter ($default_delivery_status_filter)\fR"
|
||||||
/* Optional filter to change arbitrary hard delivery errors into
|
/* Optional filter for the \fBlocal\fR(8) delivery agent to change the
|
||||||
/* soft errors and vice versa in the \fBlocal\fR(8) delivery agent.
|
/* status code or explanatory text of successful or unsuccessful
|
||||||
|
/* deliveries.
|
||||||
/* DELIVERY METHOD CONTROLS
|
/* DELIVERY METHOD CONTROLS
|
||||||
/* .ad
|
/* .ad
|
||||||
/* .fi
|
/* .fi
|
||||||
@ -904,7 +905,7 @@ int main(int argc, char **argv)
|
|||||||
VAR_DELIVER_HDR, DEF_DELIVER_HDR, &var_deliver_hdr, 0, 0,
|
VAR_DELIVER_HDR, DEF_DELIVER_HDR, &var_deliver_hdr, 0, 0,
|
||||||
VAR_MAILBOX_LOCK, DEF_MAILBOX_LOCK, &var_mailbox_lock, 1, 0,
|
VAR_MAILBOX_LOCK, DEF_MAILBOX_LOCK, &var_mailbox_lock, 1, 0,
|
||||||
VAR_MAILBOX_CMD_MAPS, DEF_MAILBOX_CMD_MAPS, &var_mailbox_cmd_maps, 0, 0,
|
VAR_MAILBOX_CMD_MAPS, DEF_MAILBOX_CMD_MAPS, &var_mailbox_cmd_maps, 0, 0,
|
||||||
VAR_LOCAL_NDR_FILTER, DEF_LOCAL_NDR_FILTER, &var_local_ndr_filter, 0, 0,
|
VAR_LOCAL_DSN_FILTER, DEF_LOCAL_DSN_FILTER, &var_local_ndr_filter, 0, 0,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
static const CONFIG_BOOL_TABLE bool_table[] = {
|
static const CONFIG_BOOL_TABLE bool_table[] = {
|
||||||
@ -943,7 +944,7 @@ int main(int argc, char **argv)
|
|||||||
MAIL_SERVER_POST_INIT, post_init,
|
MAIL_SERVER_POST_INIT, post_init,
|
||||||
MAIL_SERVER_PRE_ACCEPT, pre_accept,
|
MAIL_SERVER_PRE_ACCEPT, pre_accept,
|
||||||
MAIL_SERVER_PRIVILEGED,
|
MAIL_SERVER_PRIVILEGED,
|
||||||
MAIL_SERVER_BOUNCE_INIT, VAR_LOCAL_NDR_FILTER,
|
MAIL_SERVER_BOUNCE_INIT, VAR_LOCAL_DSN_FILTER,
|
||||||
&var_local_ndr_filter,
|
&var_local_ndr_filter,
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ event_server.o: ../../include/deliver_request.h
|
|||||||
event_server.o: ../../include/dict.h
|
event_server.o: ../../include/dict.h
|
||||||
event_server.o: ../../include/dsn.h
|
event_server.o: ../../include/dsn.h
|
||||||
event_server.o: ../../include/dsn_buf.h
|
event_server.o: ../../include/dsn_buf.h
|
||||||
event_server.o: ../../include/ndr_filter.h
|
event_server.o: ../../include/dsn_filter.h
|
||||||
event_server.o: ../../include/events.h
|
event_server.o: ../../include/events.h
|
||||||
event_server.o: ../../include/htable.h
|
event_server.o: ../../include/htable.h
|
||||||
event_server.o: ../../include/iostuff.h
|
event_server.o: ../../include/iostuff.h
|
||||||
@ -300,7 +300,7 @@ multi_server.o: ../../include/deliver_request.h
|
|||||||
multi_server.o: ../../include/dict.h
|
multi_server.o: ../../include/dict.h
|
||||||
multi_server.o: ../../include/dsn.h
|
multi_server.o: ../../include/dsn.h
|
||||||
multi_server.o: ../../include/dsn_buf.h
|
multi_server.o: ../../include/dsn_buf.h
|
||||||
multi_server.o: ../../include/ndr_filter.h
|
multi_server.o: ../../include/dsn_filter.h
|
||||||
multi_server.o: ../../include/events.h
|
multi_server.o: ../../include/events.h
|
||||||
multi_server.o: ../../include/htable.h
|
multi_server.o: ../../include/htable.h
|
||||||
multi_server.o: ../../include/iostuff.h
|
multi_server.o: ../../include/iostuff.h
|
||||||
@ -341,7 +341,7 @@ single_server.o: ../../include/deliver_request.h
|
|||||||
single_server.o: ../../include/dict.h
|
single_server.o: ../../include/dict.h
|
||||||
single_server.o: ../../include/dsn.h
|
single_server.o: ../../include/dsn.h
|
||||||
single_server.o: ../../include/dsn_buf.h
|
single_server.o: ../../include/dsn_buf.h
|
||||||
single_server.o: ../../include/ndr_filter.h
|
single_server.o: ../../include/dsn_filter.h
|
||||||
single_server.o: ../../include/events.h
|
single_server.o: ../../include/events.h
|
||||||
single_server.o: ../../include/htable.h
|
single_server.o: ../../include/htable.h
|
||||||
single_server.o: ../../include/iostuff.h
|
single_server.o: ../../include/iostuff.h
|
||||||
@ -382,7 +382,7 @@ trigger_server.o: ../../include/deliver_request.h
|
|||||||
trigger_server.o: ../../include/dict.h
|
trigger_server.o: ../../include/dict.h
|
||||||
trigger_server.o: ../../include/dsn.h
|
trigger_server.o: ../../include/dsn.h
|
||||||
trigger_server.o: ../../include/dsn_buf.h
|
trigger_server.o: ../../include/dsn_buf.h
|
||||||
trigger_server.o: ../../include/ndr_filter.h
|
trigger_server.o: ../../include/dsn_filter.h
|
||||||
trigger_server.o: ../../include/events.h
|
trigger_server.o: ../../include/events.h
|
||||||
trigger_server.o: ../../include/htable.h
|
trigger_server.o: ../../include/htable.h
|
||||||
trigger_server.o: ../../include/iostuff.h
|
trigger_server.o: ../../include/iostuff.h
|
||||||
|
@ -560,8 +560,8 @@ NORETURN event_server_main(int argc, char **argv, MULTI_SERVER_FN service,...)
|
|||||||
char *generation;
|
char *generation;
|
||||||
int msg_vstream_needed = 0;
|
int msg_vstream_needed = 0;
|
||||||
int redo_syslog_init = 0;
|
int redo_syslog_init = 0;
|
||||||
const char *ndr_filter_title;
|
const char *dsn_filter_title;
|
||||||
const char **ndr_filter_maps;
|
const char **dsn_filter_maps;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Process environment options as early as we can.
|
* Process environment options as early as we can.
|
||||||
@ -773,9 +773,9 @@ NORETURN event_server_main(int argc, char **argv, MULTI_SERVER_FN service,...)
|
|||||||
event_server_slow_exit = va_arg(ap, MAIL_SERVER_SLOW_EXIT_FN);
|
event_server_slow_exit = va_arg(ap, MAIL_SERVER_SLOW_EXIT_FN);
|
||||||
break;
|
break;
|
||||||
case MAIL_SERVER_BOUNCE_INIT:
|
case MAIL_SERVER_BOUNCE_INIT:
|
||||||
ndr_filter_title = va_arg(ap, const char *);
|
dsn_filter_title = va_arg(ap, const char *);
|
||||||
ndr_filter_maps = va_arg(ap, const char **);
|
dsn_filter_maps = va_arg(ap, const char **);
|
||||||
bounce_client_init(ndr_filter_title, *ndr_filter_maps);
|
bounce_client_init(dsn_filter_title, *dsn_filter_maps);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
msg_panic("%s: unknown argument type: %d", myname, key);
|
msg_panic("%s: unknown argument type: %d", myname, key);
|
||||||
|
@ -556,8 +556,8 @@ NORETURN multi_server_main(int argc, char **argv, MULTI_SERVER_FN service,...)
|
|||||||
char *generation;
|
char *generation;
|
||||||
int msg_vstream_needed = 0;
|
int msg_vstream_needed = 0;
|
||||||
int redo_syslog_init = 0;
|
int redo_syslog_init = 0;
|
||||||
const char *ndr_filter_title;
|
const char *dsn_filter_title;
|
||||||
const char **ndr_filter_maps;
|
const char **dsn_filter_maps;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Process environment options as early as we can.
|
* Process environment options as early as we can.
|
||||||
@ -763,9 +763,9 @@ NORETURN multi_server_main(int argc, char **argv, MULTI_SERVER_FN service,...)
|
|||||||
service_name);
|
service_name);
|
||||||
break;
|
break;
|
||||||
case MAIL_SERVER_BOUNCE_INIT:
|
case MAIL_SERVER_BOUNCE_INIT:
|
||||||
ndr_filter_title = va_arg(ap, const char *);
|
dsn_filter_title = va_arg(ap, const char *);
|
||||||
ndr_filter_maps = va_arg(ap, const char **);
|
dsn_filter_maps = va_arg(ap, const char **);
|
||||||
bounce_client_init(ndr_filter_title, *ndr_filter_maps);
|
bounce_client_init(dsn_filter_title, *dsn_filter_maps);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
msg_panic("%s: unknown argument type: %d", myname, key);
|
msg_panic("%s: unknown argument type: %d", myname, key);
|
||||||
|
@ -434,8 +434,8 @@ NORETURN single_server_main(int argc, char **argv, SINGLE_SERVER_FN service,...)
|
|||||||
char *generation;
|
char *generation;
|
||||||
int msg_vstream_needed = 0;
|
int msg_vstream_needed = 0;
|
||||||
int redo_syslog_init = 0;
|
int redo_syslog_init = 0;
|
||||||
const char *ndr_filter_title;
|
const char *dsn_filter_title;
|
||||||
const char **ndr_filter_maps;
|
const char **dsn_filter_maps;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Process environment options as early as we can.
|
* Process environment options as early as we can.
|
||||||
@ -638,9 +638,9 @@ NORETURN single_server_main(int argc, char **argv, SINGLE_SERVER_FN service,...)
|
|||||||
service_name);
|
service_name);
|
||||||
break;
|
break;
|
||||||
case MAIL_SERVER_BOUNCE_INIT:
|
case MAIL_SERVER_BOUNCE_INIT:
|
||||||
ndr_filter_title = va_arg(ap, const char *);
|
dsn_filter_title = va_arg(ap, const char *);
|
||||||
ndr_filter_maps = va_arg(ap, const char **);
|
dsn_filter_maps = va_arg(ap, const char **);
|
||||||
bounce_client_init(ndr_filter_title, *ndr_filter_maps);
|
bounce_client_init(dsn_filter_title, *dsn_filter_maps);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
msg_panic("%s: unknown argument type: %d", myname, key);
|
msg_panic("%s: unknown argument type: %d", myname, key);
|
||||||
|
@ -437,8 +437,8 @@ NORETURN trigger_server_main(int argc, char **argv, TRIGGER_SERVER_FN service,..
|
|||||||
char *generation;
|
char *generation;
|
||||||
int msg_vstream_needed = 0;
|
int msg_vstream_needed = 0;
|
||||||
int redo_syslog_init = 0;
|
int redo_syslog_init = 0;
|
||||||
const char *ndr_filter_title;
|
const char *dsn_filter_title;
|
||||||
const char **ndr_filter_maps;
|
const char **dsn_filter_maps;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Process environment options as early as we can.
|
* Process environment options as early as we can.
|
||||||
@ -644,9 +644,9 @@ NORETURN trigger_server_main(int argc, char **argv, TRIGGER_SERVER_FN service,..
|
|||||||
trigger_server_watchdog = *va_arg(ap, int *);
|
trigger_server_watchdog = *va_arg(ap, int *);
|
||||||
break;
|
break;
|
||||||
case MAIL_SERVER_BOUNCE_INIT:
|
case MAIL_SERVER_BOUNCE_INIT:
|
||||||
ndr_filter_title = va_arg(ap, const char *);
|
dsn_filter_title = va_arg(ap, const char *);
|
||||||
ndr_filter_maps = va_arg(ap, const char **);
|
dsn_filter_maps = va_arg(ap, const char **);
|
||||||
bounce_client_init(ndr_filter_title, *ndr_filter_maps);
|
bounce_client_init(dsn_filter_title, *dsn_filter_maps);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
msg_panic("%s: unknown argument type: %d", myname, key);
|
msg_panic("%s: unknown argument type: %d", myname, key);
|
||||||
|
@ -404,9 +404,10 @@
|
|||||||
/* records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
/* records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
||||||
/* .PP
|
/* .PP
|
||||||
/* Available in Postfix version 2.12 and later:
|
/* Available in Postfix version 2.12 and later:
|
||||||
/* .IP "\fBpipe_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
/* .IP "\fBpipe_delivery_status_filter ($default_delivery_status_filter)\fR"
|
||||||
/* Optional filter to change arbitrary hard delivery errors into
|
/* Optional filter for the \fBpipe\fR(8) delivery agent to change the
|
||||||
/* soft errors and vice versa in the \fBpipe\fR(8) delivery agent.
|
/* delivery status code or explanatory text of successful or unsuccessful
|
||||||
|
/* deliveries.
|
||||||
/* SEE ALSO
|
/* SEE ALSO
|
||||||
/* qmgr(8), queue manager
|
/* qmgr(8), queue manager
|
||||||
/* bounce(8), delivery status reports
|
/* bounce(8), delivery status reports
|
||||||
@ -1329,7 +1330,7 @@ int main(int argc, char **argv)
|
|||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
static const CONFIG_STR_TABLE str_table[] = {
|
static const CONFIG_STR_TABLE str_table[] = {
|
||||||
VAR_PIPE_NDR_FILTER, DEF_PIPE_NDR_FILTER, &var_pipe_ndr_filter, 0, 0,
|
VAR_PIPE_DSN_FILTER, DEF_PIPE_DSN_FILTER, &var_pipe_ndr_filter, 0, 0,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1344,7 +1345,7 @@ int main(int argc, char **argv)
|
|||||||
MAIL_SERVER_POST_INIT, drop_privileges,
|
MAIL_SERVER_POST_INIT, drop_privileges,
|
||||||
MAIL_SERVER_PRE_ACCEPT, pre_accept,
|
MAIL_SERVER_PRE_ACCEPT, pre_accept,
|
||||||
MAIL_SERVER_PRIVILEGED,
|
MAIL_SERVER_PRIVILEGED,
|
||||||
MAIL_SERVER_BOUNCE_INIT, VAR_PIPE_NDR_FILTER,
|
MAIL_SERVER_BOUNCE_INIT, VAR_PIPE_DSN_FILTER,
|
||||||
&var_pipe_ndr_filter,
|
&var_pipe_ndr_filter,
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
VAR_LMTP_RESP_FILTER, DEF_LMTP_RESP_FILTER, &var_smtp_resp_filter, 0, 0,
|
VAR_LMTP_RESP_FILTER, DEF_LMTP_RESP_FILTER, &var_smtp_resp_filter, 0, 0,
|
||||||
VAR_LMTP_ADDR_PREF, DEF_LMTP_ADDR_PREF, &var_smtp_addr_pref, 1, 0,
|
VAR_LMTP_ADDR_PREF, DEF_LMTP_ADDR_PREF, &var_smtp_addr_pref, 1, 0,
|
||||||
VAR_LMTP_DNS_RES_OPT, DEF_LMTP_DNS_RES_OPT, &var_smtp_dns_res_opt, 0, 0,
|
VAR_LMTP_DNS_RES_OPT, DEF_LMTP_DNS_RES_OPT, &var_smtp_dns_res_opt, 0, 0,
|
||||||
VAR_LMTP_NDR_FILTER, DEF_LMTP_NDR_FILTER, &var_smtp_ndr_filter, 0, 0,
|
VAR_LMTP_DSN_FILTER, DEF_LMTP_DSN_FILTER, &var_smtp_ndr_filter, 0, 0,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
static const CONFIG_TIME_TABLE lmtp_time_table[] = {
|
static const CONFIG_TIME_TABLE lmtp_time_table[] = {
|
||||||
|
@ -254,9 +254,10 @@
|
|||||||
/* Level of DNS support in the Postfix SMTP client.
|
/* Level of DNS support in the Postfix SMTP client.
|
||||||
/* .PP
|
/* .PP
|
||||||
/* Available in Postfix version 2.12 and later:
|
/* Available in Postfix version 2.12 and later:
|
||||||
/* .IP "\fBsmtp_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
/* .IP "\fBsmtp_delivery_status_filter ($default_delivery_status_filter)\fR"
|
||||||
/* Optional filter to change arbitrary hard delivery errors into
|
/* Optional filter for the \fBsmtp\fR(8) delivery agent to change the
|
||||||
/* soft errors and vice versa in the \fBsmtp\fR(8) delivery agent.
|
/* delivery status code or explanatory text of successful or unsuccessful
|
||||||
|
/* deliveries.
|
||||||
/* MIME PROCESSING CONTROLS
|
/* MIME PROCESSING CONTROLS
|
||||||
/* .ad
|
/* .ad
|
||||||
/* .fi
|
/* .fi
|
||||||
@ -1277,7 +1278,7 @@ int main(int argc, char **argv)
|
|||||||
MAIL_SERVER_PRE_INIT, pre_init,
|
MAIL_SERVER_PRE_INIT, pre_init,
|
||||||
MAIL_SERVER_POST_INIT, post_init,
|
MAIL_SERVER_POST_INIT, post_init,
|
||||||
MAIL_SERVER_PRE_ACCEPT, pre_accept,
|
MAIL_SERVER_PRE_ACCEPT, pre_accept,
|
||||||
MAIL_SERVER_BOUNCE_INIT, VAR_SMTP_NDR_FILTER,
|
MAIL_SERVER_BOUNCE_INIT, VAR_SMTP_DSN_FILTER,
|
||||||
&var_smtp_ndr_filter,
|
&var_smtp_ndr_filter,
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
VAR_SMTP_RESP_FILTER, DEF_SMTP_RESP_FILTER, &var_smtp_resp_filter, 0, 0,
|
VAR_SMTP_RESP_FILTER, DEF_SMTP_RESP_FILTER, &var_smtp_resp_filter, 0, 0,
|
||||||
VAR_SMTP_ADDR_PREF, DEF_SMTP_ADDR_PREF, &var_smtp_addr_pref, 1, 0,
|
VAR_SMTP_ADDR_PREF, DEF_SMTP_ADDR_PREF, &var_smtp_addr_pref, 1, 0,
|
||||||
VAR_SMTP_DNS_RES_OPT, DEF_SMTP_DNS_RES_OPT, &var_smtp_dns_res_opt, 0, 0,
|
VAR_SMTP_DNS_RES_OPT, DEF_SMTP_DNS_RES_OPT, &var_smtp_dns_res_opt, 0, 0,
|
||||||
VAR_SMTP_NDR_FILTER, DEF_SMTP_NDR_FILTER, &var_smtp_ndr_filter, 0, 0,
|
VAR_SMTP_DSN_FILTER, DEF_SMTP_DSN_FILTER, &var_smtp_ndr_filter, 0, 0,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
static const CONFIG_TIME_TABLE smtp_time_table[] = {
|
static const CONFIG_TIME_TABLE smtp_time_table[] = {
|
||||||
|
@ -247,9 +247,10 @@
|
|||||||
/* records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
/* records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
||||||
/* .PP
|
/* .PP
|
||||||
/* Available in Postfix version 2.12 and later:
|
/* Available in Postfix version 2.12 and later:
|
||||||
/* .IP "\fBvirtual_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
/* .IP "\fBvirtual_delivery_status_filter ($default_delivery_status_filter)\fR"
|
||||||
/* Optional filter to change arbitrary hard delivery errors into
|
/* Optional filter for the \fBvirtual\fR(8) delivery agent to change the
|
||||||
/* soft errors and vice versa in the \fBvirtual\fR(8) delivery agent.
|
/* delivery status code or explanatory text of successful or unsuccessful
|
||||||
|
/* deliveries.
|
||||||
/* SEE ALSO
|
/* SEE ALSO
|
||||||
/* qmgr(8), queue manager
|
/* qmgr(8), queue manager
|
||||||
/* bounce(8), delivery status reports
|
/* bounce(8), delivery status reports
|
||||||
@ -516,7 +517,7 @@ int main(int argc, char **argv)
|
|||||||
VAR_VIRT_GID_MAPS, DEF_VIRT_GID_MAPS, &var_virt_gid_maps, 0, 0,
|
VAR_VIRT_GID_MAPS, DEF_VIRT_GID_MAPS, &var_virt_gid_maps, 0, 0,
|
||||||
VAR_VIRT_MAILBOX_BASE, DEF_VIRT_MAILBOX_BASE, &var_virt_mailbox_base, 1, 0,
|
VAR_VIRT_MAILBOX_BASE, DEF_VIRT_MAILBOX_BASE, &var_virt_mailbox_base, 1, 0,
|
||||||
VAR_VIRT_MAILBOX_LOCK, DEF_VIRT_MAILBOX_LOCK, &var_virt_mailbox_lock, 1, 0,
|
VAR_VIRT_MAILBOX_LOCK, DEF_VIRT_MAILBOX_LOCK, &var_virt_mailbox_lock, 1, 0,
|
||||||
VAR_VIRT_NDR_FILTER, DEF_VIRT_NDR_FILTER, &var_virt_ndr_filter, 0, 0,
|
VAR_VIRT_DSN_FILTER, DEF_VIRT_DSN_FILTER, &var_virt_ndr_filter, 0, 0,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
static const CONFIG_BOOL_TABLE bool_table[] = {
|
static const CONFIG_BOOL_TABLE bool_table[] = {
|
||||||
@ -538,7 +539,7 @@ int main(int argc, char **argv)
|
|||||||
MAIL_SERVER_POST_INIT, post_init,
|
MAIL_SERVER_POST_INIT, post_init,
|
||||||
MAIL_SERVER_PRE_ACCEPT, pre_accept,
|
MAIL_SERVER_PRE_ACCEPT, pre_accept,
|
||||||
MAIL_SERVER_PRIVILEGED,
|
MAIL_SERVER_PRIVILEGED,
|
||||||
MAIL_SERVER_BOUNCE_INIT, VAR_VIRT_NDR_FILTER,
|
MAIL_SERVER_BOUNCE_INIT, VAR_VIRT_DSN_FILTER,
|
||||||
&var_virt_ndr_filter,
|
&var_virt_ndr_filter,
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user