mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-22 09:57:34 +00:00
postfix-2.12-20140318
This commit is contained in:
parent
977f2661d5
commit
1b55748771
@ -19611,15 +19611,26 @@ Apologies for any names omitted.
|
||||
20140316
|
||||
|
||||
Feature: preliminary support to change arbitrary hard
|
||||
delivery errors into soft errors and vice versa, originally
|
||||
introduced for sites that want to hard-bounce mail when a
|
||||
remote SMTP server does not announce TLS support. New main.cf
|
||||
delivery errors into soft errors and vice versa, or to
|
||||
replace the descriptive text of non-delivery notifications.
|
||||
This was originally introduced for sites that want to bounce
|
||||
mail when no remote SMTP server announces TLS support. New
|
||||
parameters: {default,smtp,pipe,virtual}_bounce_defer_filter.
|
||||
Support for the local(8) delivery agent is awaiting additional
|
||||
code to emulate defer_one() support, and support for qmgr(8)
|
||||
is awaiting further analysis. Files: proto/postconf.proto,
|
||||
mantools/postlink, global/bounce.[hc], bounce/defer.[hc],
|
||||
global/ndr_filter.[hc], global/mail_params.[hc],
|
||||
Files: proto/postconf.proto, mantools/postlink, global/bounce.[hc],
|
||||
bounce/defer.[hc], global/ndr_filter.[hc], global/mail_params.[hc],
|
||||
master/event_server.c, master/multi_server.c,
|
||||
master/single_server.c, master/trigger_server.c, smtp/smtp.c,
|
||||
pipe/pipe.c, virtual/virtual.c.
|
||||
|
||||
20140317
|
||||
|
||||
Feature: local_bounce_defer_filter support. Files:
|
||||
global/bounce.[hc], global/defer.[hc], local/command.c,
|
||||
local/file.c, local/bounce_workaround.c, local/local.c,
|
||||
global/mail_params.h.
|
||||
|
||||
20140318
|
||||
|
||||
Refinement: don't throttle an SMTP destination when the new
|
||||
smtp_bounce_defer_filter feature turns a soft bounce into
|
||||
a hard bounce. File: smtp/smtp_trouble.c.
|
||||
|
@ -16,17 +16,17 @@ 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
|
||||
before proceeding.
|
||||
|
||||
Major changes with snapshot 20140316
|
||||
Major changes with snapshot 20140318
|
||||
====================================
|
||||
|
||||
Preliminary support to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa, originally implemented for sites that
|
||||
want to bounce mail when a remote SMTP server does not support
|
||||
STARTTLS.
|
||||
Support to change arbitrary hard delivery errors into soft errors
|
||||
and vice versa, or to replace the descriptive text in non-delivery
|
||||
notifications. This was originally implemented for sites that want
|
||||
to bounce mail when no remote SMTP server supports STARTTLS.
|
||||
|
||||
This feature is implemented as a filter that replaces the three-number
|
||||
enhanced status code and descriptive text in Postfix delivery agent
|
||||
bounce/defer messages.
|
||||
bounce/defer messages. Note: this will not override "soft_bounce=yes".
|
||||
|
||||
The following example turns specific soft TLS errors into hard
|
||||
errors, by overriding the first number in the enhanced status code.
|
||||
@ -38,15 +38,20 @@ errors, by overriding the first number in the enhanced status code.
|
||||
/^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
|
||||
|
||||
Support is currently limited to the lmtp(8), pipe(8), smtp(8) and
|
||||
virtual(8) delivery agents. The new main.cf parameters and default
|
||||
values are:
|
||||
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
|
||||
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:
|
||||
|
||||
default_bounce_defer_filter =
|
||||
lmtp_bounce_defer_filter = $default_bounce_defer_filter
|
||||
local_bounce_defer_filter = $default_bounce_defer_filter
|
||||
pipe_bounce_defer_filter = $default_bounce_defer_filter
|
||||
smtp_bounce_defer_filter = $default_bounce_defer_filter
|
||||
virtual_bounce_defer_filter = $default_bounce_defer_filter
|
||||
|
||||
See the postconf(5) manpage for more details. Support for local(8)
|
||||
and qmgr(8) will be added as time is available.
|
||||
See the postconf(5) manpage for more details.
|
||||
|
@ -152,10 +152,6 @@ SMTP(8) SMTP(8)
|
||||
<b><a href="postconf.5.html#smtp_never_send_ehlo">smtp_never_send_ehlo</a> (no)</b>
|
||||
Never send EHLO at the start of an SMTP session.
|
||||
|
||||
<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>
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_defer_if_no_mx_address_found">smtp_defer_if_no_mx_address_found</a> (no)</b>
|
||||
Defer mail delivery when no MX record resolves to an IP address.
|
||||
|
||||
@ -164,8 +160,8 @@ SMTP(8) SMTP(8)
|
||||
will send via SMTP.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_pix_workaround_delay_time">smtp_pix_workaround_delay_time</a> (10s)</b>
|
||||
How long the Postfix SMTP client pauses before sending
|
||||
".<CR><LF>" in order to work around the PIX firewall
|
||||
How long the Postfix SMTP client pauses before sending
|
||||
".<CR><LF>" in order to work around the PIX firewall
|
||||
"<CR><LF>.<CR><LF>" bug.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_pix_workaround_threshold_time">smtp_pix_workaround_threshold_time</a> (500s)</b>
|
||||
@ -174,19 +170,19 @@ SMTP(8) SMTP(8)
|
||||
delivery through firewalls with "smtp fixup" mode turned on.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_pix_workarounds">smtp_pix_workarounds</a> (disable_esmtp, delay_dotcrlf)</b>
|
||||
A list that specifies zero or more workarounds for CISCO PIX
|
||||
A list that specifies zero or more workarounds for CISCO PIX
|
||||
firewall bugs.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_pix_workaround_maps">smtp_pix_workaround_maps</a> (empty)</b>
|
||||
Lookup tables, indexed by the remote SMTP server address, with
|
||||
Lookup tables, indexed by the remote SMTP server address, with
|
||||
per-destination workarounds for CISCO PIX firewall bugs.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_quote_rfc821_envelope">smtp_quote_rfc821_envelope</a> (yes)</b>
|
||||
Quote addresses in Postfix SMTP client MAIL FROM and RCPT TO
|
||||
Quote addresses in Postfix SMTP client MAIL FROM and RCPT TO
|
||||
commands as required by <a href="http://tools.ietf.org/html/rfc5321">RFC 5321</a>.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_reply_filter">smtp_reply_filter</a> (empty)</b>
|
||||
A mechanism to transform replies from remote SMTP servers one
|
||||
A mechanism to transform replies from remote SMTP servers one
|
||||
line at a time.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_skip_5xx_greeting">smtp_skip_5xx_greeting</a> (yes)</b>
|
||||
@ -198,68 +194,68 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.0 and earlier:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_skip_4xx_greeting">smtp_skip_4xx_greeting</a> (yes)</b>
|
||||
Skip SMTP servers that greet with a 4XX status code (go away,
|
||||
Skip SMTP servers that greet with a 4XX status code (go away,
|
||||
try again later).
|
||||
|
||||
Available in Postfix version 2.2 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_discard_ehlo_keyword_address_maps">smtp_discard_ehlo_keyword_address_maps</a> (empty)</b>
|
||||
Lookup tables, indexed by the remote SMTP server address, with
|
||||
case insensitive lists of EHLO keywords (pipelining, starttls,
|
||||
Lookup tables, indexed by the remote SMTP server address, with
|
||||
case insensitive lists of EHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the Postfix SMTP client will ignore in the EHLO
|
||||
response from a remote SMTP server.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_discard_ehlo_keywords">smtp_discard_ehlo_keywords</a> (empty)</b>
|
||||
A case insensitive list of EHLO keywords (pipelining, starttls,
|
||||
A case insensitive list of EHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the Postfix SMTP client will ignore in the EHLO
|
||||
response from a remote SMTP server.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_generic_maps">smtp_generic_maps</a> (empty)</b>
|
||||
Optional lookup tables that perform address rewriting in the
|
||||
Postfix SMTP client, typically to transform a locally valid
|
||||
address into a globally valid address when sending mail across
|
||||
Optional lookup tables that perform address rewriting in the
|
||||
Postfix SMTP client, typically to transform a locally valid
|
||||
address into a globally valid address when sending mail across
|
||||
the Internet.
|
||||
|
||||
Available in Postfix version 2.2.9 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_cname_overrides_servername">smtp_cname_overrides_servername</a> (version dependent)</b>
|
||||
When the remote SMTP servername is a DNS CNAME, replace the
|
||||
servername with the result from CNAME expansion for the purpose
|
||||
of logging, SASL password lookup, TLS policy decisions, or TLS
|
||||
When the remote SMTP servername is a DNS CNAME, replace the
|
||||
servername with the result from CNAME expansion for the purpose
|
||||
of logging, SASL password lookup, TLS policy decisions, or TLS
|
||||
certificate verification.
|
||||
|
||||
Available in Postfix version 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_discard_lhlo_keyword_address_maps">lmtp_discard_lhlo_keyword_address_maps</a> (empty)</b>
|
||||
Lookup tables, indexed by the remote LMTP server address, with
|
||||
case insensitive lists of LHLO keywords (pipelining, starttls,
|
||||
Lookup tables, indexed by the remote LMTP server address, with
|
||||
case insensitive lists of LHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the Postfix LMTP client will ignore in the LHLO
|
||||
response from a remote LMTP server.
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_discard_lhlo_keywords">lmtp_discard_lhlo_keywords</a> (empty)</b>
|
||||
A case insensitive list of LHLO keywords (pipelining, starttls,
|
||||
A case insensitive list of LHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the Postfix LMTP client will ignore in the LHLO
|
||||
response from a remote LMTP server.
|
||||
|
||||
Available in Postfix version 2.4.4 and later:
|
||||
|
||||
<b><a href="postconf.5.html#send_cyrus_sasl_authzid">send_cyrus_sasl_authzid</a> (no)</b>
|
||||
When authenticating to a remote SMTP or LMTP server with the
|
||||
default setting "no", send no SASL authoriZation ID (authzid);
|
||||
send only the SASL authentiCation ID (authcid) plus the auth-
|
||||
When authenticating to a remote SMTP or LMTP server with the
|
||||
default setting "no", send no SASL authoriZation ID (authzid);
|
||||
send only the SASL authentiCation ID (authcid) plus the auth-
|
||||
cid's password.
|
||||
|
||||
Available in Postfix version 2.5 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_header_checks">smtp_header_checks</a> (empty)</b>
|
||||
Restricted <a href="header_checks.5.html"><b>header_checks</b>(5)</a> tables for the Postfix SMTP client.
|
||||
Restricted <a href="header_checks.5.html"><b>header_checks</b>(5)</a> tables for the Postfix SMTP client.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_mime_header_checks">smtp_mime_header_checks</a> (empty)</b>
|
||||
Restricted <b><a href="postconf.5.html#mime_header_checks">mime_header_checks</a></b>(5) tables for the Postfix SMTP
|
||||
Restricted <b><a href="postconf.5.html#mime_header_checks">mime_header_checks</a></b>(5) tables for the Postfix SMTP
|
||||
client.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_nested_header_checks">smtp_nested_header_checks</a> (empty)</b>
|
||||
Restricted <b><a href="postconf.5.html#nested_header_checks">nested_header_checks</a></b>(5) tables for the Postfix SMTP
|
||||
Restricted <b><a href="postconf.5.html#nested_header_checks">nested_header_checks</a></b>(5) tables for the Postfix SMTP
|
||||
client.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_body_checks">smtp_body_checks</a> (empty)</b>
|
||||
@ -268,7 +264,7 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.6 and later:
|
||||
|
||||
<b><a href="postconf.5.html#tcp_windowsize">tcp_windowsize</a> (0)</b>
|
||||
An optional workaround for routers that break TCP window scal-
|
||||
An optional workaround for routers that break TCP window scal-
|
||||
ing.
|
||||
|
||||
Available in Postfix version 2.8 and later:
|
||||
@ -279,14 +275,14 @@ SMTP(8) SMTP(8)
|
||||
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>
|
||||
Change the behavior of the smtp_*_timeout time limits, from a
|
||||
time limit per read or write system call, to a time limit to
|
||||
send or receive a complete record (an SMTP command line, SMTP
|
||||
response line, SMTP message content line, or TLS protocol mes-
|
||||
Change the behavior of the smtp_*_timeout time limits, from a
|
||||
time limit per read or write system call, to a time limit to
|
||||
send or receive a complete record (an SMTP command line, SMTP
|
||||
response line, SMTP message content line, or TLS protocol mes-
|
||||
sage).
|
||||
|
||||
<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.
|
||||
|
||||
Available in Postfix version 2.11 and later:
|
||||
@ -294,6 +290,12 @@ SMTP(8) SMTP(8)
|
||||
<b><a href="postconf.5.html#smtp_dns_support_level">smtp_dns_support_level</a> (empty)</b>
|
||||
Level of DNS support in the Postfix SMTP client.
|
||||
|
||||
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>
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa in the <a href="smtp.8.html"><b>smtp</b>(8)</a> delivery agent.
|
||||
|
||||
<b>MIME PROCESSING CONTROLS</b>
|
||||
Available in Postfix version 2.0 and later:
|
||||
|
||||
|
@ -358,39 +358,45 @@ LOCAL(8) LOCAL(8)
|
||||
attribute, when delivering mail to a child alias that does not
|
||||
have its own owner alias.
|
||||
|
||||
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>
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa in the <a href="local.8.html"><b>local</b>(8)</a> delivery agent.
|
||||
|
||||
<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>,
|
||||
<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>.
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<b><a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a> (empty)</b>
|
||||
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.
|
||||
|
||||
<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
|
||||
agent should use for mailbox delivery to all local recipients,
|
||||
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,
|
||||
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>
|
||||
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.
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<b><a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a> (see 'postconf -d' output)</b>
|
||||
@ -402,17 +408,17 @@ LOCAL(8) LOCAL(8)
|
||||
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>
|
||||
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>
|
||||
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>
|
||||
or UNIX password database.
|
||||
|
||||
<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:
|
||||
|
||||
<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.
|
||||
|
||||
<b>MAILBOX LOCKING CONTROLS</b>
|
||||
@ -421,15 +427,15 @@ LOCAL(8) LOCAL(8)
|
||||
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>
|
||||
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.
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
@ -442,18 +448,18 @@ LOCAL(8) LOCAL(8)
|
||||
<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>
|
||||
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>-
|
||||
<a href="postconf.5.html#local_destination_recipient_limit">tion_recipient_limit</a> = 1") or the maximal number of parallel
|
||||
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>-
|
||||
<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>-
|
||||
<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>
|
||||
The maximal number of recipients per message delivery via the
|
||||
The maximal number of recipients per message delivery via the
|
||||
local mail delivery transport.
|
||||
|
||||
<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).
|
||||
|
||||
<b>SECURITY CONTROLS</b>
|
||||
@ -464,49 +470,49 @@ LOCAL(8) LOCAL(8)
|
||||
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>
|
||||
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>-
|
||||
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>-
|
||||
<a href="postconf.5.html#command_execution_directory">tion_directory</a>.
|
||||
|
||||
<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.
|
||||
|
||||
<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>.
|
||||
|
||||
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>
|
||||
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>.
|
||||
|
||||
Available in Postfix version 2.5.3 and later:
|
||||
|
||||
<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.
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</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.
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<b><a href="postconf.5.html#local_command_shell">local_command_shell</a> (empty)</b>
|
||||
@ -514,7 +520,7 @@ LOCAL(8) LOCAL(8)
|
||||
mand.
|
||||
|
||||
<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.
|
||||
|
||||
<b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
|
||||
@ -522,8 +528,8 @@ LOCAL(8) LOCAL(8)
|
||||
process will service before terminating voluntarily.
|
||||
|
||||
<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-
|
||||
ery agent prepends a Delivered-To: message header with the
|
||||
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
|
||||
address that the mail was delivered to.
|
||||
|
||||
<b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
|
||||
@ -533,15 +539,15 @@ LOCAL(8) LOCAL(8)
|
||||
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>
|
||||
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.
|
||||
|
||||
<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.
|
||||
|
||||
<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
|
||||
extension (example: user+foo), or a .forward file 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: .forward+foo).
|
||||
|
||||
<b><a href="postconf.5.html#require_home_directory">require_home_directory</a> (no)</b>
|
||||
@ -552,8 +558,8 @@ LOCAL(8) LOCAL(8)
|
||||
The syslog facility of Postfix logging.
|
||||
|
||||
<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
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
<b>FILES</b>
|
||||
@ -576,10 +582,10 @@ LOCAL(8) LOCAL(8)
|
||||
The Secure Mailer license must be distributed with this software.
|
||||
|
||||
<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.
|
||||
|
||||
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>
|
||||
Wietse Venema
|
||||
|
@ -425,10 +425,6 @@ PIPE(8) PIPE(8)
|
||||
The maximal number of incoming connections that a Postfix daemon
|
||||
process will service before terminating voluntarily.
|
||||
|
||||
<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>
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa.
|
||||
|
||||
<b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
|
||||
The process ID of a Postfix command or daemon process.
|
||||
|
||||
@ -439,18 +435,24 @@ PIPE(8) PIPE(8)
|
||||
The location of the Postfix top-level queue directory.
|
||||
|
||||
<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
|
||||
extension (example: user+foo), or a .forward file 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: .forward+foo).
|
||||
|
||||
<b><a href="postconf.5.html#syslog_facility">syslog_facility</a> (mail)</b>
|
||||
The syslog facility of Postfix logging.
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
The mail system name that is prepended to the process name in
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
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>
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa in the <a href="pipe.8.html"><b>pipe</b>(8)</a> delivery agent.
|
||||
|
||||
<b>SEE ALSO</b>
|
||||
<a href="qmgr.8.html">qmgr(8)</a>, queue manager
|
||||
<a href="bounce.8.html">bounce(8)</a>, delivery status reports
|
||||
|
@ -5127,6 +5127,18 @@ This feature is available in Postfix 2.1 and later.
|
||||
</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>
|
||||
|
||||
<DT><b><a name="local_command_shell">local_command_shell</a>
|
||||
@ -7005,8 +7017,8 @@ This feature is available in Postfix 2.0 and later.
|
||||
(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. See <a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a> for
|
||||
details. </p>
|
||||
soft errors and vice versa in the <a href="pipe.8.html">pipe(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>
|
||||
|
||||
@ -9582,8 +9594,8 @@ that change the delivery time or destination are not available.
|
||||
(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. See <a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a> for
|
||||
details. </p>
|
||||
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
|
||||
@ -18211,8 +18223,8 @@ This feature is available in Postfix 2.1 and later.
|
||||
(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. See <a href="postconf.5.html#default_bounce_defer_filter">default_bounce_defer_filter</a> for
|
||||
details. </p>
|
||||
soft errors and vice versa in the <a href="virtual.8.html">virtual(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>
|
||||
|
||||
|
@ -152,10 +152,6 @@ SMTP(8) SMTP(8)
|
||||
<b><a href="postconf.5.html#smtp_never_send_ehlo">smtp_never_send_ehlo</a> (no)</b>
|
||||
Never send EHLO at the start of an SMTP session.
|
||||
|
||||
<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>
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_defer_if_no_mx_address_found">smtp_defer_if_no_mx_address_found</a> (no)</b>
|
||||
Defer mail delivery when no MX record resolves to an IP address.
|
||||
|
||||
@ -164,8 +160,8 @@ SMTP(8) SMTP(8)
|
||||
will send via SMTP.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_pix_workaround_delay_time">smtp_pix_workaround_delay_time</a> (10s)</b>
|
||||
How long the Postfix SMTP client pauses before sending
|
||||
".<CR><LF>" in order to work around the PIX firewall
|
||||
How long the Postfix SMTP client pauses before sending
|
||||
".<CR><LF>" in order to work around the PIX firewall
|
||||
"<CR><LF>.<CR><LF>" bug.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_pix_workaround_threshold_time">smtp_pix_workaround_threshold_time</a> (500s)</b>
|
||||
@ -174,19 +170,19 @@ SMTP(8) SMTP(8)
|
||||
delivery through firewalls with "smtp fixup" mode turned on.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_pix_workarounds">smtp_pix_workarounds</a> (disable_esmtp, delay_dotcrlf)</b>
|
||||
A list that specifies zero or more workarounds for CISCO PIX
|
||||
A list that specifies zero or more workarounds for CISCO PIX
|
||||
firewall bugs.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_pix_workaround_maps">smtp_pix_workaround_maps</a> (empty)</b>
|
||||
Lookup tables, indexed by the remote SMTP server address, with
|
||||
Lookup tables, indexed by the remote SMTP server address, with
|
||||
per-destination workarounds for CISCO PIX firewall bugs.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_quote_rfc821_envelope">smtp_quote_rfc821_envelope</a> (yes)</b>
|
||||
Quote addresses in Postfix SMTP client MAIL FROM and RCPT TO
|
||||
Quote addresses in Postfix SMTP client MAIL FROM and RCPT TO
|
||||
commands as required by <a href="http://tools.ietf.org/html/rfc5321">RFC 5321</a>.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_reply_filter">smtp_reply_filter</a> (empty)</b>
|
||||
A mechanism to transform replies from remote SMTP servers one
|
||||
A mechanism to transform replies from remote SMTP servers one
|
||||
line at a time.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_skip_5xx_greeting">smtp_skip_5xx_greeting</a> (yes)</b>
|
||||
@ -198,68 +194,68 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.0 and earlier:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_skip_4xx_greeting">smtp_skip_4xx_greeting</a> (yes)</b>
|
||||
Skip SMTP servers that greet with a 4XX status code (go away,
|
||||
Skip SMTP servers that greet with a 4XX status code (go away,
|
||||
try again later).
|
||||
|
||||
Available in Postfix version 2.2 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_discard_ehlo_keyword_address_maps">smtp_discard_ehlo_keyword_address_maps</a> (empty)</b>
|
||||
Lookup tables, indexed by the remote SMTP server address, with
|
||||
case insensitive lists of EHLO keywords (pipelining, starttls,
|
||||
Lookup tables, indexed by the remote SMTP server address, with
|
||||
case insensitive lists of EHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the Postfix SMTP client will ignore in the EHLO
|
||||
response from a remote SMTP server.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_discard_ehlo_keywords">smtp_discard_ehlo_keywords</a> (empty)</b>
|
||||
A case insensitive list of EHLO keywords (pipelining, starttls,
|
||||
A case insensitive list of EHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the Postfix SMTP client will ignore in the EHLO
|
||||
response from a remote SMTP server.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_generic_maps">smtp_generic_maps</a> (empty)</b>
|
||||
Optional lookup tables that perform address rewriting in the
|
||||
Postfix SMTP client, typically to transform a locally valid
|
||||
address into a globally valid address when sending mail across
|
||||
Optional lookup tables that perform address rewriting in the
|
||||
Postfix SMTP client, typically to transform a locally valid
|
||||
address into a globally valid address when sending mail across
|
||||
the Internet.
|
||||
|
||||
Available in Postfix version 2.2.9 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_cname_overrides_servername">smtp_cname_overrides_servername</a> (version dependent)</b>
|
||||
When the remote SMTP servername is a DNS CNAME, replace the
|
||||
servername with the result from CNAME expansion for the purpose
|
||||
of logging, SASL password lookup, TLS policy decisions, or TLS
|
||||
When the remote SMTP servername is a DNS CNAME, replace the
|
||||
servername with the result from CNAME expansion for the purpose
|
||||
of logging, SASL password lookup, TLS policy decisions, or TLS
|
||||
certificate verification.
|
||||
|
||||
Available in Postfix version 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_discard_lhlo_keyword_address_maps">lmtp_discard_lhlo_keyword_address_maps</a> (empty)</b>
|
||||
Lookup tables, indexed by the remote LMTP server address, with
|
||||
case insensitive lists of LHLO keywords (pipelining, starttls,
|
||||
Lookup tables, indexed by the remote LMTP server address, with
|
||||
case insensitive lists of LHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the Postfix LMTP client will ignore in the LHLO
|
||||
response from a remote LMTP server.
|
||||
|
||||
<b><a href="postconf.5.html#lmtp_discard_lhlo_keywords">lmtp_discard_lhlo_keywords</a> (empty)</b>
|
||||
A case insensitive list of LHLO keywords (pipelining, starttls,
|
||||
A case insensitive list of LHLO keywords (pipelining, starttls,
|
||||
auth, etc.) that the Postfix LMTP client will ignore in the LHLO
|
||||
response from a remote LMTP server.
|
||||
|
||||
Available in Postfix version 2.4.4 and later:
|
||||
|
||||
<b><a href="postconf.5.html#send_cyrus_sasl_authzid">send_cyrus_sasl_authzid</a> (no)</b>
|
||||
When authenticating to a remote SMTP or LMTP server with the
|
||||
default setting "no", send no SASL authoriZation ID (authzid);
|
||||
send only the SASL authentiCation ID (authcid) plus the auth-
|
||||
When authenticating to a remote SMTP or LMTP server with the
|
||||
default setting "no", send no SASL authoriZation ID (authzid);
|
||||
send only the SASL authentiCation ID (authcid) plus the auth-
|
||||
cid's password.
|
||||
|
||||
Available in Postfix version 2.5 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtp_header_checks">smtp_header_checks</a> (empty)</b>
|
||||
Restricted <a href="header_checks.5.html"><b>header_checks</b>(5)</a> tables for the Postfix SMTP client.
|
||||
Restricted <a href="header_checks.5.html"><b>header_checks</b>(5)</a> tables for the Postfix SMTP client.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_mime_header_checks">smtp_mime_header_checks</a> (empty)</b>
|
||||
Restricted <b><a href="postconf.5.html#mime_header_checks">mime_header_checks</a></b>(5) tables for the Postfix SMTP
|
||||
Restricted <b><a href="postconf.5.html#mime_header_checks">mime_header_checks</a></b>(5) tables for the Postfix SMTP
|
||||
client.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_nested_header_checks">smtp_nested_header_checks</a> (empty)</b>
|
||||
Restricted <b><a href="postconf.5.html#nested_header_checks">nested_header_checks</a></b>(5) tables for the Postfix SMTP
|
||||
Restricted <b><a href="postconf.5.html#nested_header_checks">nested_header_checks</a></b>(5) tables for the Postfix SMTP
|
||||
client.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_body_checks">smtp_body_checks</a> (empty)</b>
|
||||
@ -268,7 +264,7 @@ SMTP(8) SMTP(8)
|
||||
Available in Postfix version 2.6 and later:
|
||||
|
||||
<b><a href="postconf.5.html#tcp_windowsize">tcp_windowsize</a> (0)</b>
|
||||
An optional workaround for routers that break TCP window scal-
|
||||
An optional workaround for routers that break TCP window scal-
|
||||
ing.
|
||||
|
||||
Available in Postfix version 2.8 and later:
|
||||
@ -279,14 +275,14 @@ SMTP(8) SMTP(8)
|
||||
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>
|
||||
Change the behavior of the smtp_*_timeout time limits, from a
|
||||
time limit per read or write system call, to a time limit to
|
||||
send or receive a complete record (an SMTP command line, SMTP
|
||||
response line, SMTP message content line, or TLS protocol mes-
|
||||
Change the behavior of the smtp_*_timeout time limits, from a
|
||||
time limit per read or write system call, to a time limit to
|
||||
send or receive a complete record (an SMTP command line, SMTP
|
||||
response line, SMTP message content line, or TLS protocol mes-
|
||||
sage).
|
||||
|
||||
<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.
|
||||
|
||||
Available in Postfix version 2.11 and later:
|
||||
@ -294,6 +290,12 @@ SMTP(8) SMTP(8)
|
||||
<b><a href="postconf.5.html#smtp_dns_support_level">smtp_dns_support_level</a> (empty)</b>
|
||||
Level of DNS support in the Postfix SMTP client.
|
||||
|
||||
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>
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa in the <a href="smtp.8.html"><b>smtp</b>(8)</a> delivery agent.
|
||||
|
||||
<b>MIME PROCESSING CONTROLS</b>
|
||||
Available in Postfix version 2.0 and later:
|
||||
|
||||
|
@ -261,9 +261,11 @@ VIRTUAL(8) VIRTUAL(8)
|
||||
syslog records, so that "smtpd" becomes, for example, "post-
|
||||
fix/smtpd".
|
||||
|
||||
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>
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa.
|
||||
soft errors and vice versa in the <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent.
|
||||
|
||||
<b>SEE ALSO</b>
|
||||
<a href="qmgr.8.html">qmgr(8)</a>, queue manager
|
||||
|
@ -2929,6 +2929,12 @@ Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
|
||||
The default time unit is s (seconds).
|
||||
.PP
|
||||
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)
|
||||
Optional shell program for \fBlocal\fR(8) delivery to non-Postfix command.
|
||||
By default, non-Postfix commands are executed directly; commands
|
||||
@ -4169,8 +4175,8 @@ submissions from the Postfix maildrop queue.
|
||||
This feature is available in Postfix 2.0 and later.
|
||||
.SH pipe_bounce_defer_filter (default: $default_bounce_defer_filter)
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa. See default_bounce_defer_filter for
|
||||
details.
|
||||
soft errors and vice versa in the \fBpipe\fR(8) delivery agent. See
|
||||
default_bounce_defer_filter for details.
|
||||
.PP
|
||||
This feature is available in Postfix 2.12 and later.
|
||||
.SH plaintext_reject_code (default: 450)
|
||||
@ -5848,8 +5854,8 @@ that change the delivery time or destination are not available.
|
||||
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. See default_bounce_defer_filter for
|
||||
details.
|
||||
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
|
||||
@ -12334,8 +12340,8 @@ change in the future.
|
||||
This feature is available in Postfix 2.1 and later.
|
||||
.SH virtual_bounce_defer_filter (default: $default_bounce_defer_filter)
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa. See default_bounce_defer_filter for
|
||||
details.
|
||||
soft errors and vice versa in the \fBvirtual\fR(8) delivery agent. See
|
||||
default_bounce_defer_filter for details.
|
||||
.PP
|
||||
This feature is available in Postfix 2.12 and later.
|
||||
.SH virtual_destination_concurrency_limit (default: $default_destination_concurrency_limit)
|
||||
|
@ -419,6 +419,11 @@ Defer delivery when a mailbox file is not owned by its recipient.
|
||||
Reset the \fBlocal\fR(8) delivery agent's idea of the owner-alias
|
||||
attribute, when delivering mail to a child alias that does not have
|
||||
its own owner alias.
|
||||
.PP
|
||||
Available in Postfix version 2.12 and later:
|
||||
.IP "\fBlocal_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa in the \fBlocal\fR(8) delivery agent.
|
||||
.SH "DELIVERY METHOD CONTROLS"
|
||||
.na
|
||||
.nf
|
||||
|
@ -409,9 +409,6 @@ for an incoming connection before terminating voluntarily.
|
||||
.IP "\fBmax_use (100)\fR"
|
||||
The maximal number of incoming connections that a Postfix daemon
|
||||
process will service before terminating voluntarily.
|
||||
.IP "\fBpipe_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa.
|
||||
.IP "\fBprocess_id (read-only)\fR"
|
||||
The process ID of a Postfix command or daemon process.
|
||||
.IP "\fBprocess_name (read-only)\fR"
|
||||
@ -427,6 +424,11 @@ The syslog facility of Postfix logging.
|
||||
.IP "\fBsyslog_name (see 'postconf -d' output)\fR"
|
||||
The mail system name that is prepended to the process name in syslog
|
||||
records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
||||
.PP
|
||||
Available in Postfix version 2.12 and later:
|
||||
.IP "\fBpipe_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa in the \fBpipe\fR(8) delivery agent.
|
||||
.SH "SEE ALSO"
|
||||
.na
|
||||
.nf
|
||||
|
@ -163,9 +163,6 @@ Ignore DNS MX lookups that produce no response.
|
||||
Always send EHLO at the start of an SMTP session.
|
||||
.IP "\fBsmtp_never_send_ehlo (no)\fR"
|
||||
Never send EHLO at the start of an SMTP session.
|
||||
.IP "\fBsmtp_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa.
|
||||
.IP "\fBsmtp_defer_if_no_mx_address_found (no)\fR"
|
||||
Defer mail delivery when no MX record resolves to an IP address.
|
||||
.IP "\fBsmtp_line_length_limit (998)\fR"
|
||||
@ -277,6 +274,11 @@ FROM command in SASL-authenticated SMTP sessions.
|
||||
Available in Postfix version 2.11 and later:
|
||||
.IP "\fBsmtp_dns_support_level (empty)\fR"
|
||||
Level of DNS support in the Postfix SMTP client.
|
||||
.PP
|
||||
Available in Postfix version 2.12 and later:
|
||||
.IP "\fBsmtp_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa in the \fBsmtp\fR(8) delivery agent.
|
||||
.SH "MIME PROCESSING CONTROLS"
|
||||
.na
|
||||
.nf
|
||||
|
@ -281,9 +281,11 @@ The syslog facility of Postfix logging.
|
||||
.IP "\fBsyslog_name (see 'postconf -d' output)\fR"
|
||||
The mail system name that is prepended to the process name in syslog
|
||||
records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
||||
.PP
|
||||
Available in Postfix version 2.12 and later:
|
||||
.IP "\fBvirtual_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa.
|
||||
soft errors and vice versa in the \fBvirtual\fR(8) delivery agent.
|
||||
.SH "SEE ALSO"
|
||||
.na
|
||||
.nf
|
||||
|
@ -307,6 +307,7 @@ while (<>) {
|
||||
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_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_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_recip[-</bB>]*\n* *[<bB>]*ient_limit\b;<a href="postconf.5.html#local_destination_recipient_limit">$&</a>;g;
|
||||
|
@ -15683,8 +15683,8 @@ sender. </p>
|
||||
%PARAM smtp_bounce_defer_filter $default_bounce_defer_filter
|
||||
|
||||
<p> Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa. See default_bounce_defer_filter for
|
||||
details. </p>
|
||||
soft errors and vice versa in the smtp(8) delivery agent. See
|
||||
default_bounce_defer_filter 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
|
||||
@ -15702,15 +15702,23 @@ configuration parameter. See there for details. </p>
|
||||
%PARAM pipe_bounce_defer_filter $default_bounce_defer_filter
|
||||
|
||||
<p> Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa. See default_bounce_defer_filter for
|
||||
details. </p>
|
||||
soft errors and vice versa in the pipe(8) delivery agent. See
|
||||
default_bounce_defer_filter for details. </p>
|
||||
|
||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||
|
||||
%PARAM virtual_bounce_defer_filter $default_bounce_defer_filter
|
||||
|
||||
<p> Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa. See default_bounce_defer_filter for
|
||||
details. </p>
|
||||
soft errors and vice versa in the virtual(8) delivery agent. See
|
||||
default_bounce_defer_filter for details. </p>
|
||||
|
||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||
|
||||
%PARAM local_bounce_defer_filter $default_bounce_defer_filter
|
||||
|
||||
<p> Optional filter to change arbitrary hard delivery errors into
|
||||
soft errors and vice versa in the local(8) delivery agent. See
|
||||
default_bounce_defer_filter for details. </p>
|
||||
|
||||
<p> This feature is available in Postfix 2.12 and later. </p>
|
||||
|
@ -90,8 +90,8 @@
|
||||
/*
|
||||
/* bounce_client_init() initializes an optional DSN filter.
|
||||
/*
|
||||
/* bounce_append_intern() is for use after the DSN filter. DSN
|
||||
/* filtering is not yet supported for bounce_one().
|
||||
/* bounce_append_intern() and bounce_one_intern() are for use
|
||||
/* after the DSN filter.
|
||||
/*
|
||||
/* Arguments:
|
||||
/* .IP flags
|
||||
@ -393,7 +393,7 @@ int bounce_one(int flags, const char *queue, const char *id,
|
||||
const char *relay, DSN *dsn)
|
||||
{
|
||||
DSN my_dsn = *dsn;
|
||||
int status;
|
||||
DSN *dsn_res;
|
||||
|
||||
/*
|
||||
* Sanity check.
|
||||
@ -403,6 +403,30 @@ int bounce_one(int flags, const char *queue, const char *id,
|
||||
my_dsn.status = "5.0.0";
|
||||
}
|
||||
|
||||
/*
|
||||
* DSN filter (Postfix 2.12).
|
||||
*/
|
||||
if (bounce_defer_filter != 0
|
||||
&& (dsn_res = ndr_filter_lookup(bounce_defer_filter, &my_dsn)) != 0) {
|
||||
if (dsn_res->status[0] == '4')
|
||||
return (defer_append_intern(flags, id, stats, rcpt, relay, dsn_res));
|
||||
my_dsn = *dsn_res;
|
||||
}
|
||||
return (bounce_one_intern(flags, queue, id, encoding, sender, dsn_envid,
|
||||
dsn_ret, stats, rcpt, relay, &my_dsn));
|
||||
}
|
||||
|
||||
/* bounce_one_intern - send notice for one recipient */
|
||||
|
||||
int bounce_one_intern(int flags, const char *queue, const char *id,
|
||||
const char *encoding, const char *sender,
|
||||
const char *dsn_envid, int dsn_ret,
|
||||
MSG_STATS *stats, RECIPIENT *rcpt,
|
||||
const char *relay, DSN *dsn)
|
||||
{
|
||||
DSN my_dsn = *dsn;
|
||||
int status;
|
||||
|
||||
/*
|
||||
* MTA-requested address verification information is stored in the verify
|
||||
* service database.
|
||||
@ -429,7 +453,7 @@ int bounce_one(int flags, const char *queue, const char *id,
|
||||
* based procedure.
|
||||
*/
|
||||
else if (var_soft_bounce) {
|
||||
return (bounce_append(flags, id, stats, rcpt, relay, &my_dsn));
|
||||
return (bounce_append_intern(flags, id, stats, rcpt, relay, &my_dsn));
|
||||
}
|
||||
|
||||
/*
|
||||
@ -469,7 +493,7 @@ int bounce_one(int flags, const char *queue, const char *id,
|
||||
vstring_sprintf(junk, "%s or %s service failure",
|
||||
var_bounce_service, var_trace_service);
|
||||
my_dsn.reason = vstring_str(junk);
|
||||
status = defer_append(flags, id, stats, rcpt, relay, &my_dsn);
|
||||
status = defer_append_intern(flags, id, stats, rcpt, relay, &my_dsn);
|
||||
vstring_free(junk);
|
||||
} else {
|
||||
status = -1;
|
||||
|
@ -31,6 +31,20 @@
|
||||
/* const char *sender;
|
||||
/* const char *dsn_envid;
|
||||
/* int dsn_ret;
|
||||
/*
|
||||
/* int defer_one(flags, queue, id, encoding, sender, envid, ret,
|
||||
/* stats, recipient, relay, dsn)
|
||||
/* int flags;
|
||||
/* const char *queue;
|
||||
/* const char *id;
|
||||
/* const char *encoding;
|
||||
/* const char *sender;
|
||||
/* const char *dsn_envid;
|
||||
/* int dsn_ret;
|
||||
/* MSG_STATS *stats;
|
||||
/* RECIPIENT *rcpt;
|
||||
/* const char *relay;
|
||||
/* DSN *dsn;
|
||||
/* INTERNAL API
|
||||
/* int defer_append_intern(flags, id, stats, rcpt, relay, dsn)
|
||||
/* int flags;
|
||||
@ -63,6 +77,9 @@
|
||||
/* question has been deferred. The defer log is not deleted,
|
||||
/* and no recipients are deleted from the original queue file.
|
||||
/*
|
||||
/* defer_one() implements ndr_filter(3) compatibility for the
|
||||
/* bounce_one() routine.
|
||||
/*
|
||||
/* defer_append_intern() is for use after the DSN filter.
|
||||
/*
|
||||
/* Arguments:
|
||||
@ -311,3 +328,36 @@ int defer_warn(int flags, const char *queue, const char *id,
|
||||
return (-1);
|
||||
}
|
||||
}
|
||||
|
||||
/* defer_one - defer mail for one recipient */
|
||||
|
||||
int defer_one(int flags, const char *queue, const char *id,
|
||||
const char *encoding, const char *sender,
|
||||
const char *dsn_envid, int dsn_ret,
|
||||
MSG_STATS *stats, RECIPIENT *rcpt,
|
||||
const char *relay, DSN *dsn)
|
||||
{
|
||||
DSN my_dsn = *dsn;
|
||||
DSN *dsn_res;
|
||||
|
||||
/*
|
||||
* Sanity check.
|
||||
*/
|
||||
if (my_dsn.status[0] != '4' || !dsn_valid(my_dsn.status)) {
|
||||
msg_warn("defer_one: ignoring dsn code \"%s\"", my_dsn.status);
|
||||
my_dsn.status = "4.0.0";
|
||||
}
|
||||
|
||||
/*
|
||||
* DSN filter (Postfix 2.12).
|
||||
*/
|
||||
if (bounce_defer_filter != 0
|
||||
&& (dsn_res = ndr_filter_lookup(bounce_defer_filter, &my_dsn)) != 0) {
|
||||
if (dsn_res->status[0] == '5')
|
||||
return (bounce_one_intern(flags, queue, id, encoding, sender,
|
||||
dsn_envid, dsn_ret, stats, rcpt,
|
||||
relay, dsn_res));
|
||||
my_dsn = *dsn_res;
|
||||
}
|
||||
return (defer_append_intern(flags, id, stats, rcpt, relay, &my_dsn));
|
||||
}
|
||||
|
@ -25,6 +25,10 @@ extern int defer_flush(int, const char *, const char *, const char *,
|
||||
const char *, const char *, int);
|
||||
extern int defer_warn(int, const char *, const char *, const char *,
|
||||
const char *, int);
|
||||
extern int defer_one(int, const char *, const char *, const char *,
|
||||
const char *, const char *,
|
||||
int, MSG_STATS *, RECIPIENT *,
|
||||
const char *, DSN *);
|
||||
|
||||
/*
|
||||
* Start of private API.
|
||||
|
@ -3765,6 +3765,10 @@ extern char *var_pipe_ndr_filter;
|
||||
#define DEF_VIRT_NDR_FILTER "$" VAR_NDR_FILTER
|
||||
extern char *var_virt_ndr_filter;
|
||||
|
||||
#define VAR_LOCAL_NDR_FILTER "local_bounce_defer_filter"
|
||||
#define DEF_LOCAL_NDR_FILTER "$" VAR_NDR_FILTER
|
||||
extern char *var_local_ndr_filter;
|
||||
|
||||
/* LICENSE
|
||||
/* .ad
|
||||
/* .fi
|
||||
|
@ -20,7 +20,7 @@
|
||||
* Patches change both the patchlevel and the release date. Snapshots have no
|
||||
* patchlevel; they change the release date only.
|
||||
*/
|
||||
#define MAIL_RELEASE_DATE "20140316"
|
||||
#define MAIL_RELEASE_DATE "20140318"
|
||||
#define MAIL_VERSION_NUMBER "2.12"
|
||||
|
||||
#ifdef SNAPSHOT
|
||||
|
@ -12,7 +12,7 @@
|
||||
/*
|
||||
/* DSN *ndr_filter_lookup(
|
||||
/* NDR_FILTER *fp,
|
||||
/* DSN dsn)
|
||||
/* DSN *dsn)
|
||||
/*
|
||||
/* void dsn_free(
|
||||
/* NDR_FILTER *fp)
|
||||
@ -125,8 +125,12 @@ DSN *ndr_filter_lookup(NDR_FILTER *fp, DSN *dsn)
|
||||
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)[1] == '.' && ((s)[0] == '4' || (s)[0] == '5'))
|
||||
(dsn_valid(s) && ((s)[0] == '4' || (s)[0] == '5'))
|
||||
|
||||
/*
|
||||
* Sanity check. We filter only bounce/defer DSNs.
|
||||
|
@ -37,6 +37,7 @@
|
||||
/* Attributes describing alias, include or forward expansion.
|
||||
/* A table with the results from expanding aliases or lists.
|
||||
/* A table with delivered-to: addresses taken from the message.
|
||||
/* The non-delivery status must be either 4.X.X or 5.X.X.
|
||||
/* DIAGNOSTICS
|
||||
/* Fatal errors: out of memory. The result is non-zero when
|
||||
/* the operation should be tried again. Warnings: malformed
|
||||
@ -121,10 +122,13 @@ int bounce_workaround(LOCAL_STATE state)
|
||||
SET_OWNER_ATTR(state.msg_attr, STR(canon_owner), state.level);
|
||||
}
|
||||
myfree(owner_alias);
|
||||
if (alias_maps->error != 0)
|
||||
if (alias_maps->error != 0) {
|
||||
/* At this point, canon_owner == 0. */
|
||||
dsb_simple(state.msg_attr.why, "4.3.0",
|
||||
"alias database unavailable");
|
||||
return (defer_append(BOUNCE_FLAGS(state.request),
|
||||
BOUNCE_ATTR(state.msg_attr)));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -132,8 +136,11 @@ int bounce_workaround(LOCAL_STATE state)
|
||||
* substitute sender address, before completion of the delivery request.
|
||||
*/
|
||||
if (canon_owner) {
|
||||
rcpt_stat = bounce_one(BOUNCE_FLAGS(state.request),
|
||||
BOUNCE_ONE_ATTR(state.msg_attr));
|
||||
rcpt_stat =
|
||||
(STR(state.msg_attr.why->status)[0] == '4' ?
|
||||
defer_one : bounce_one)
|
||||
(BOUNCE_FLAGS(state.request),
|
||||
BOUNCE_ONE_ATTR(state.msg_attr));
|
||||
vstring_free(canon_owner);
|
||||
}
|
||||
|
||||
@ -142,8 +149,11 @@ int bounce_workaround(LOCAL_STATE state)
|
||||
* delivery request.
|
||||
*/
|
||||
else {
|
||||
rcpt_stat = bounce_append(BOUNCE_FLAGS(state.request),
|
||||
BOUNCE_ATTR(state.msg_attr));
|
||||
rcpt_stat =
|
||||
(STR(state.msg_attr.why->status)[0] == '4' ?
|
||||
defer_append : bounce_append)
|
||||
(BOUNCE_FLAGS(state.request),
|
||||
BOUNCE_ATTR(state.msg_attr));
|
||||
}
|
||||
return (rcpt_stat);
|
||||
}
|
||||
|
@ -235,13 +235,8 @@ int deliver_command(LOCAL_STATE state, USER_ATTR usr_attr, const char *comma
|
||||
break;
|
||||
case PIPE_STAT_BOUNCE:
|
||||
case PIPE_STAT_DEFER:
|
||||
if (STR(why->status)[0] == '4')
|
||||
deliver_status =
|
||||
defer_append(BOUNCE_FLAGS(state.request),
|
||||
BOUNCE_ATTR(state.msg_attr));
|
||||
else
|
||||
/* Account for possible owner- sender address override. */
|
||||
deliver_status = bounce_workaround(state);
|
||||
/* Account for possible owner- sender address override. */
|
||||
deliver_status = bounce_workaround(state);
|
||||
break;
|
||||
case PIPE_STAT_CORRUPT:
|
||||
deliver_status = DEL_STAT_DEFER;
|
||||
|
@ -184,13 +184,8 @@ int deliver_file(LOCAL_STATE state, USER_ATTR usr_attr, char *path)
|
||||
} else if (mail_copy_status != 0) {
|
||||
vstring_sprintf_prepend(why->reason,
|
||||
"cannot append message to file %s: ", path);
|
||||
if (STR(why->status)[0] == '4')
|
||||
deliver_status =
|
||||
defer_append(BOUNCE_FLAGS(state.request),
|
||||
BOUNCE_ATTR(state.msg_attr));
|
||||
else
|
||||
/* Account for possible owner- sender address override. */
|
||||
deliver_status = bounce_workaround(state);
|
||||
/* Account for possible owner- sender address override. */
|
||||
deliver_status = bounce_workaround(state);
|
||||
} else {
|
||||
dsb_simple(why, "2.0.0", "delivered to file: %s", path);
|
||||
deliver_status = sent(BOUNCE_FLAGS(state.request),
|
||||
|
@ -385,6 +385,11 @@
|
||||
/* Reset the \fBlocal\fR(8) delivery agent's idea of the owner-alias
|
||||
/* attribute, when delivering mail to a child alias that does not have
|
||||
/* its own owner alias.
|
||||
/* .PP
|
||||
/* Available in Postfix version 2.12 and later:
|
||||
/* .IP "\fBlocal_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
/* Optional filter to change arbitrary hard delivery errors into
|
||||
/* soft errors and vice versa in the \fBlocal\fR(8) delivery agent.
|
||||
/* DELIVERY METHOD CONTROLS
|
||||
/* .ad
|
||||
/* .fi
|
||||
@ -663,6 +668,7 @@ int local_ext_prop_mask;
|
||||
int local_deliver_hdr_mask;
|
||||
int local_mbox_lock_mask;
|
||||
MAPS *alias_maps;
|
||||
char *var_local_ndr_filter;
|
||||
|
||||
/* local_deliver - deliver message with extreme prejudice */
|
||||
|
||||
@ -898,6 +904,7 @@ int main(int argc, char **argv)
|
||||
VAR_DELIVER_HDR, DEF_DELIVER_HDR, &var_deliver_hdr, 0, 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_LOCAL_NDR_FILTER, DEF_LOCAL_NDR_FILTER, &var_local_ndr_filter, 0, 0,
|
||||
0,
|
||||
};
|
||||
static const CONFIG_BOOL_TABLE bool_table[] = {
|
||||
@ -936,5 +943,7 @@ int main(int argc, char **argv)
|
||||
MAIL_SERVER_POST_INIT, post_init,
|
||||
MAIL_SERVER_PRE_ACCEPT, pre_accept,
|
||||
MAIL_SERVER_PRIVILEGED,
|
||||
MAIL_SERVER_BOUNCE_INIT, VAR_LOCAL_NDR_FILTER,
|
||||
&var_local_ndr_filter,
|
||||
0);
|
||||
}
|
||||
|
@ -387,9 +387,6 @@
|
||||
/* .IP "\fBmax_use (100)\fR"
|
||||
/* The maximal number of incoming connections that a Postfix daemon
|
||||
/* process will service before terminating voluntarily.
|
||||
/* .IP "\fBpipe_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
/* Optional filter to change arbitrary hard delivery errors into
|
||||
/* soft errors and vice versa.
|
||||
/* .IP "\fBprocess_id (read-only)\fR"
|
||||
/* The process ID of a Postfix command or daemon process.
|
||||
/* .IP "\fBprocess_name (read-only)\fR"
|
||||
@ -405,6 +402,11 @@
|
||||
/* .IP "\fBsyslog_name (see 'postconf -d' output)\fR"
|
||||
/* The mail system name that is prepended to the process name in syslog
|
||||
/* records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
||||
/* .PP
|
||||
/* Available in Postfix version 2.12 and later:
|
||||
/* .IP "\fBpipe_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
/* Optional filter to change arbitrary hard delivery errors into
|
||||
/* soft errors and vice versa in the \fBpipe\fR(8) delivery agent.
|
||||
/* SEE ALSO
|
||||
/* qmgr(8), queue manager
|
||||
/* bounce(8), delivery status reports
|
||||
|
@ -141,9 +141,6 @@
|
||||
/* Always send EHLO at the start of an SMTP session.
|
||||
/* .IP "\fBsmtp_never_send_ehlo (no)\fR"
|
||||
/* Never send EHLO at the start of an SMTP session.
|
||||
/* .IP "\fBsmtp_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
/* Optional filter to change arbitrary hard delivery errors into
|
||||
/* soft errors and vice versa.
|
||||
/* .IP "\fBsmtp_defer_if_no_mx_address_found (no)\fR"
|
||||
/* Defer mail delivery when no MX record resolves to an IP address.
|
||||
/* .IP "\fBsmtp_line_length_limit (998)\fR"
|
||||
@ -255,6 +252,11 @@
|
||||
/* Available in Postfix version 2.11 and later:
|
||||
/* .IP "\fBsmtp_dns_support_level (empty)\fR"
|
||||
/* Level of DNS support in the Postfix SMTP client.
|
||||
/* .PP
|
||||
/* Available in Postfix version 2.12 and later:
|
||||
/* .IP "\fBsmtp_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
/* Optional filter to change arbitrary hard delivery errors into
|
||||
/* soft errors and vice versa in the \fBsmtp\fR(8) delivery agent.
|
||||
/* MIME PROCESSING CONTROLS
|
||||
/* .ad
|
||||
/* .fi
|
||||
|
@ -195,6 +195,7 @@ static int smtp_bulk_fail(SMTP_STATE *state, int throttle_queue)
|
||||
DSN_BUF *why = state->why;
|
||||
RECIPIENT *rcpt;
|
||||
int status;
|
||||
int aggregate_status;
|
||||
int soft_error = (STR(why->status)[0] == '4');
|
||||
int soft_bounce_error = (STR(why->status)[0] == '5' && var_soft_bounce);
|
||||
int nrcpt;
|
||||
@ -239,6 +240,7 @@ static int smtp_bulk_fail(SMTP_STATE *state, int throttle_queue)
|
||||
GETTIMEOFDAY(&request->msg_stats.deliver_done);
|
||||
|
||||
(void) DSN_FROM_DSN_BUF(why);
|
||||
aggregate_status = 0;
|
||||
for (nrcpt = 0; nrcpt < SMTP_RCPT_LEFT(state); nrcpt++) {
|
||||
rcpt = request->rcpt_list.info + nrcpt;
|
||||
if (SMTP_RCPT_ISMARKED(rcpt))
|
||||
@ -250,10 +252,11 @@ static int smtp_bulk_fail(SMTP_STATE *state, int throttle_queue)
|
||||
if (status == 0)
|
||||
deliver_completed(state->src, rcpt->offset);
|
||||
SMTP_RCPT_DROP(state, rcpt);
|
||||
state->status |= status;
|
||||
aggregate_status |= status;
|
||||
}
|
||||
state->status |= aggregate_status;
|
||||
if ((state->misc_flags & SMTP_MISC_FLAG_COMPLETE_SESSION) == 0
|
||||
&& throttle_queue && (soft_error || soft_bounce_error)
|
||||
&& throttle_queue && aggregate_status
|
||||
&& request->hop_status == 0)
|
||||
request->hop_status = DSN_COPY(&why->dsn);
|
||||
}
|
||||
|
@ -245,9 +245,11 @@
|
||||
/* .IP "\fBsyslog_name (see 'postconf -d' output)\fR"
|
||||
/* The mail system name that is prepended to the process name in syslog
|
||||
/* records, so that "smtpd" becomes, for example, "postfix/smtpd".
|
||||
/* .PP
|
||||
/* Available in Postfix version 2.12 and later:
|
||||
/* .IP "\fBvirtual_bounce_defer_filter ($default_bounce_defer_filter)\fR"
|
||||
/* Optional filter to change arbitrary hard delivery errors into
|
||||
/* soft errors and vice versa.
|
||||
/* soft errors and vice versa in the \fBvirtual\fR(8) delivery agent.
|
||||
/* SEE ALSO
|
||||
/* qmgr(8), queue manager
|
||||
/* bounce(8), delivery status reports
|
||||
|
Loading…
x
Reference in New Issue
Block a user