2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-22 18:07:41 +00:00

postfix-2.7-20100117

This commit is contained in:
Wietse Venema 2010-01-17 00:00:00 -05:00 committed by Viktor Dukhovni
parent f06480fb17
commit cee08cce6c
36 changed files with 628 additions and 585 deletions

View File

@ -15648,21 +15648,30 @@ Apologies for any names omitted.
Cleanup: don't supply the "-o stress" command-line option Cleanup: don't supply the "-o stress" command-line option
with a single-process service. File: master/master_ent.c. with a single-process service. File: master/master_ent.c.
20100116 20100115
Bugfix: the valid_hostname() fuction did not set the Bugfix: the valid_hostname() fuction did not set the
"non-numeric" flag after encountering the '-' character. "non-numeric" flag after encountering the '-' character.
Reported by Jan Schampera. File: util/valid_hostname.c. Reported by Jan Schampera. File: util/valid_hostname.c.
Cleanup: when a content_filter parameter or FILTER command 20100116
specifies an empty next-hop destination, the queue manager
now uses the recipient domain instead of $myhostname. Specify
"legacy_filter_nexthop = yes" for backwards compatibility
with Postfix 2.6 and earlier, or specify a non-empty next-hop
destination. Files: *qmgr/qmgr_message.c proto/access,
proto/header_checks, proto/postconf.proto, proto/FILTER_README.
Documentation: the content_filter and FILTER features never Documentation: the content_filter and FILTER features never
supported the special cases of transport_maps. References supported the special cases of transport_maps. References
to transport_maps syntax are now removed from content filter to transport_maps syntax are now removed from content filter
discussions. Files: proto/postconf.proto, proto/FILTER_README. discussions. Files: proto/postconf.proto, proto/FILTER_README.
Workaround: as of Postfix 2.3 the VRFY command did not allow
a mailbox address inside <>, which broke expectations. RFC
2821 (and 5321) is vague about the VRFY request format, but
spends lots of text on the reply format. File: smtpd/smtpd.c.
20010117
Cleanup: when a content_filter parameter or FILTER command
specifies an empty next-hop destination, the queue manager
now uses the recipient domain instead of $myhostname. Specify
"default_filter_nexthop = $myhostname" for compatibility
with Postfix 2.6 and earlier, or specify a non-empty next-hop
filter destination. Files: *qmgr/qmgr_message.c proto/access,
proto/header_checks, proto/postconf.proto, proto/FILTER_README.

View File

@ -221,17 +221,18 @@ Once you're satisfied with the content filtering script:
The content_filter configuration parameter expects a value of the form The content_filter configuration parameter expects a value of the form
transport:destination. The transport name specifies the first field of a transport:destination. The transport name specifies the first field of a
mail delivery agent definition in master.cf; the syntax of destination is mail delivery agent definition in master.cf; the syntax of the next-hop
described in the manual page of the corresponding delivery agent. destination is described in the manual page of the corresponding delivery
agent.
The meaning of an empty filter destination is version dependent. Postfix The meaning of an empty next-hop filter destination is version dependent.
2.7 and later will use the recipient domain; earlier versions will use Postfix 2.7 and later will use the recipient domain; earlier versions will
$myhostname. Specify "legacy_filter_nexthop = yes" for compatibility with use $myhostname. Specify "default_filter_nexthop = $myhostname" for
Postfix 2.6 or earlier, or specify a non-empty filter destination. compatibility with Postfix 2.6 or earlier, or specify a non-empty next-hop
filter destination.
The content_filter setting has a lower precedence than a content filter The content_filter setting has lower precedence than a FILTER action that
that is specified with an access(5) table or in a header_checks(5) or is specified in an access(5), header_checks(5) or body_checks(5) table.
body_checks(5) table.
* Execute "ppoossttffiixx rreellooaadd" to complete the change. * Execute "ppoossttffiixx rreellooaadd" to complete the change.
@ -340,17 +341,18 @@ To enable the advanced content filter method for all mail, specify in main.cf:
* The content_filter configuration parameter expects a value of the form * The content_filter configuration parameter expects a value of the form
transport:destination. The transport name specifies the first field of a transport:destination. The transport name specifies the first field of a
mail delivery agent definition in master.cf; the syntax of destination is mail delivery agent definition in master.cf; the syntax of the next-hop
described in the manual page of the corresponding delivery agent. destination is described in the manual page of the corresponding delivery
agent.
* The meaning of an empty filter destination is version dependent. Postfix * The meaning of an empty next-hop filter destination is version dependent.
2.7 and later will use the recipient domain; earlier versions will use Postfix 2.7 and later will use the recipient domain; earlier versions will
$myhostname. Specify "legacy_filter_nexthop = yes" for compatibility with use $myhostname. Specify "default_filter_nexthop = $myhostname" for
Postfix 2.6 or earlier, or specify a non-empty filter destination. compatibility with Postfix 2.6 or earlier, or specify a non-empty next-hop
filter destination.
* The content_filter setting has a lower precedence than a content filter * The content_filter setting has lower precedence than a FILTER action that
that is specified with an access(5) table or in a header_checks(5) or is specified in an access(5), header_checks(5) or body_checks(5) table.
body_checks(5) table.
AAddvvaanncceedd ccoonntteenntt ffiilltteerr:: sseennddiinngg uunnffiilltteerreedd mmaaiill ttoo tthhee ccoonntteenntt ffiilltteerr AAddvvaanncceedd ccoonntteenntt ffiilltteerr:: sseennddiinngg uunnffiilltteerreedd mmaaiill ttoo tthhee ccoonntteenntt ffiilltteerr

View File

@ -14,23 +14,27 @@ specifies the release date of a stable release or snapshot release.
If you upgrade from Postfix 2.5 or earlier, read RELEASE_NOTES-2.6 If you upgrade from Postfix 2.5 or earlier, read RELEASE_NOTES-2.6
before proceeding. before proceeding.
Incompatibility with snapshot 20100116 Incompatibility with snapshot 20100117
====================================== ======================================
The meaning of an empty content filter next-hop destination has The meaning of an empty content filter next-hop destination has
changed. Postfix now uses the recipient domain, instead of using changed. Postfix now uses the recipient domain, instead of using
$myhostname as in Postfix 2.6 and earlier. To get the old behavior $myhostname as in Postfix 2.6 and earlier. To get the old behavior
use "legacy_filter_nexthop = yes", or specify a non-empty next-hop use "default_filter_nexthop = $myhostname", or specify a non-empty
filter destination. next-hop content filter destination.
Major changes with snapshot 20100116 Major changes with snapshot 20100117
==================================== ====================================
The FILTER command can now be used to implement sender reputation The FILTER action in access maps or header/body_checks now supports
schemes that dynamically choose the SMTP source IP address. This sender reputation schemes that dynamically choose the SMTP source
is implemented by specifying a FILTER with an empty next-hop IP address.
destination, and by configuring SMTP transports in master.cf with
appropriate "-o myhostname" and "-o smtp_bind_address" settings. This is implemented by specifying FILTER actions with empty next-hop
destinations in access maps or header/body_checks, and by configuring
in master.cf one Postfix SMTP client for each SMTP source IP address,
where each client has its own "-o myhostname" and "-o smtp_bind_address"
settings.
Incompatibility with snapshot 20100101 Incompatibility with snapshot 20100101
====================================== ======================================

View File

@ -282,10 +282,10 @@
# sage through the specified external content filter. # sage through the specified external content filter.
# The transport name specifies the first field of a # The transport name specifies the first field of a
# mail delivery agent definition in master.cf; the # mail delivery agent definition in master.cf; the
# syntax of destination is described in the manual # syntax of the next-hop destination is described in
# page of the corresponding delivery agent. More # the manual page of the corresponding delivery
# information about external content filters is in # agent. More information about external content
# the Postfix FILTER_README file. # filters is in the Postfix FILTER_README file.
# #
# Note 1: do not use $number regular expression sub- # Note 1: do not use $number regular expression sub-
# stitutions for transport or destination unless you # stitutions for transport or destination unless you
@ -298,13 +298,14 @@
# #
# Note 3: the purpose of the FILTER command is to # Note 3: the purpose of the FILTER command is to
# override message routing. To override the recipi- # override message routing. To override the recipi-
# ent's transport but not destination, specify an # ent's transport but not the next-hop destination,
# empty destination (Postfix 2.7 and later), or spec- # specify an empty filter destination (Postfix 2.7
# ify a transport:destination that delivers through a # and later), or specify a transport:destination that
# different Postfix instance (Postfix 2.6 and ear- # delivers through a different Postfix instance
# lier). Other options are using the recipient-depen- # (Postfix 2.6 and earlier). Other options are using
# dent transport_maps or the sender-dependent sender- # the recipient-dependent transport_maps or the sen-
# _dependent_default_transport_maps features. # der-dependent sender_dependent_default_transport-
# _maps features.
# #
# This feature is available in Postfix 2.0 and later. # This feature is available in Postfix 2.0 and later.
# #

View File

@ -170,11 +170,11 @@
# After the message is queued, send the entire mes- # After the message is queued, send the entire mes-
# sage through the specified external content filter. # sage through the specified external content filter.
# The transport name specifies the first field of a # The transport name specifies the first field of a
# mail delivery agent definition master.cf; the syn- # mail delivery agent definition in master.cf; the
# tax of destination is described in the manual page # syntax of the next-hop destination is described in
# of the corresponding delivery agent. More informa- # the manual page of the corresponding delivery
# tion about external content filters is in the Post- # agent. More information about external content
# fix FILTER_README file. # filters is in the Postfix FILTER_README file.
# #
# Note 1: do not use $number regular expression sub- # Note 1: do not use $number regular expression sub-
# stitutions for transport or destination unless you # stitutions for transport or destination unless you
@ -187,13 +187,14 @@
# #
# Note 3: the purpose of the FILTER command is to # Note 3: the purpose of the FILTER command is to
# override message routing. To override the recipi- # override message routing. To override the recipi-
# ent's transport but not destination, specify an # ent's transport but not the next-hop destination,
# empty destination (Postfix 2.7 and later), or spec- # specify an empty filter destination (Postfix 2.7
# ify a transport:destination that delivers through a # and later), or specify a transport:destination that
# different Postfix instance (Postfix 2.6 and ear- # delivers through a different Postfix instance
# lier). Other options are using the recipient-depen- # (Postfix 2.6 and earlier). Other options are using
# dent transport_maps or the sender-dependent sender- # the recipient-dependent transport_maps or the sen-
# _dependent_default_transport_maps features. # der-dependent sender_dependent_default_transport-
# _maps features.
# #
# This feature is available in Postfix 2.0 and later. # This feature is available in Postfix 2.0 and later.
# #

View File

@ -399,18 +399,19 @@ and causes mail to be given to the content filter instead. </p>
<p> The <a href="postconf.5.html#content_filter">content_filter</a> configuration parameter expects a value of <p> The <a href="postconf.5.html#content_filter">content_filter</a> configuration parameter expects a value of
the form <i>transport:destination</i>. The <i>transport</i> name the form <i>transport:destination</i>. The <i>transport</i> name
specifies the first field of a mail delivery agent definition in specifies the first field of a mail delivery agent definition in
<a href="master.5.html">master.cf</a>; the syntax of <i>destination</i> is described in the <a href="master.5.html">master.cf</a>; the syntax of the next-hop <i>destination</i> is described
manual page of the corresponding delivery agent. </p> in the manual page of the corresponding delivery agent. </p>
<p> The meaning of an empty filter <i>destination</i> is version <p> The meaning of an empty next-hop filter <i>destination</i> is
dependent. Postfix 2.7 and later will use the recipient domain; version dependent. Postfix 2.7 and later will use the recipient
earlier versions will use $<a href="postconf.5.html#myhostname">myhostname</a>. Specify "<a href="postconf.5.html#legacy_filter_nexthop">legacy_filter_nexthop</a> domain; earlier versions will use $<a href="postconf.5.html#myhostname">myhostname</a>. Specify
= yes" for compatibility with Postfix 2.6 or earlier, or specify a "<a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> = $<a href="postconf.5.html#myhostname">myhostname</a>" for compatibility with Postfix
non-empty filter destination. </p> 2.6 or earlier, or specify a non-empty next-hop filter <i>destination</i>.
</p>
<p> The <a href="postconf.5.html#content_filter">content_filter</a> setting has a lower precedence than a content <p> The <a href="postconf.5.html#content_filter">content_filter</a> setting has lower precedence than a FILTER
filter that is specified with an <a href="access.5.html">access(5)</a> table or in a <a href="header_checks.5.html">header_checks(5)</a> action that is specified in an <a href="access.5.html">access(5)</a>, <a href="header_checks.5.html">header_checks(5)</a> or
or <a href="header_checks.5.html">body_checks(5)</a> table. </p> <a href="header_checks.5.html">body_checks(5)</a> table. </p>
<li> <p> Execute "<b>postfix reload</b>" to complete the change. <li> <p> Execute "<b>postfix reload</b>" to complete the change.
</p> </p>
@ -625,18 +626,18 @@ of its final destination. </p>
<li> <p> The <a href="postconf.5.html#content_filter">content_filter</a> configuration parameter expects a value <li> <p> The <a href="postconf.5.html#content_filter">content_filter</a> configuration parameter expects a value
of the form <i>transport:destination</i>. The <i>transport</i> name of the form <i>transport:destination</i>. The <i>transport</i> name
specifies the first field of a mail delivery agent definition in specifies the first field of a mail delivery agent definition in
<a href="master.5.html">master.cf</a>; the syntax of <i>destination</i> is described in the <a href="master.5.html">master.cf</a>; the syntax of the next-hop <i>destination</i> is described
manual page of the corresponding delivery agent. </p> in the manual page of the corresponding delivery agent. </p>
<li> <p> The meaning of an empty filter <i>destination</i> is version <li> <p> The meaning of an empty next-hop filter <i>destination</i>
dependent. Postfix 2.7 and later will use the recipient domain; is version dependent. Postfix 2.7 and later will use the recipient
earlier versions will use $<a href="postconf.5.html#myhostname">myhostname</a>. Specify "<a href="postconf.5.html#legacy_filter_nexthop">legacy_filter_nexthop</a> domain; earlier versions will use $<a href="postconf.5.html#myhostname">myhostname</a>. Specify
= yes" for compatibility with Postfix 2.6 or earlier, or specify a "<a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> = $<a href="postconf.5.html#myhostname">myhostname</a>" for compatibility with Postfix
non-empty filter destination. </p> 2.6 or earlier, or specify a non-empty next-hop filter <i>destination</i>.
<li> <p> The <a href="postconf.5.html#content_filter">content_filter</a> setting has a lower precedence than a <li> <p> The <a href="postconf.5.html#content_filter">content_filter</a> setting has lower precedence than a
content filter that is specified with an <a href="access.5.html">access(5)</a> table or in a FILTER action that is specified in an <a href="access.5.html">access(5)</a>, <a href="header_checks.5.html">header_checks(5)</a>
<a href="header_checks.5.html">header_checks(5)</a> or <a href="header_checks.5.html">body_checks(5)</a> table. </p> or <a href="header_checks.5.html">body_checks(5)</a> table. </p>
</ul> </ul>

View File

@ -288,10 +288,10 @@ ACCESS(5) ACCESS(5)
sage through the specified external content filter. sage through the specified external content filter.
The <i>transport</i> name specifies the first field of a The <i>transport</i> name specifies the first field of a
mail delivery agent definition in <a href="master.5.html">master.cf</a>; the mail delivery agent definition in <a href="master.5.html">master.cf</a>; the
syntax of <i>destination</i> is described in the manual syntax of the next-hop <i>destination</i> is described in
page of the corresponding delivery agent. More the manual page of the corresponding delivery
information about external content filters is in agent. More information about external content
the Postfix <a href="FILTER_README.html">FILTER_README</a> file. filters is in the Postfix <a href="FILTER_README.html">FILTER_README</a> file.
Note 1: do not use $<i>number</i> regular expression sub- Note 1: do not use $<i>number</i> regular expression sub-
stitutions for <i>transport</i> or <i>destination</i> unless you stitutions for <i>transport</i> or <i>destination</i> unless you
@ -304,13 +304,14 @@ ACCESS(5) ACCESS(5)
Note 3: the purpose of the FILTER command is to Note 3: the purpose of the FILTER command is to
override message routing. To override the recipi- override message routing. To override the recipi-
ent's <i>transport</i> but not <i>destination</i>, specify an ent's <i>transport</i> but not the next-hop <i>destination</i>,
empty <i>destination</i> (Postfix 2.7 and later), or spec- specify an empty filter <i>destination</i> (Postfix 2.7
ify a <i>transport:destination</i> that delivers through a and later), or specify a <i>transport:destination</i> that
different Postfix instance (Postfix 2.6 and ear- delivers through a different Postfix instance
lier). Other options are using the recipient-depen- (Postfix 2.6 and earlier). Other options are using
dent <b><a href="postconf.5.html#transport_maps">transport_maps</a></b> or the sender-dependent <b><a href="postconf.5.html#sender_dependent_default_transport_maps">sender</a>-</b> the recipient-dependent <b><a href="postconf.5.html#transport_maps">transport_maps</a></b> or the sen-
<b><a href="postconf.5.html#sender_dependent_default_transport_maps">_dependent_default_transport_maps</a></b> features. der-dependent <b><a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport</a>-</b>
<b><a href="postconf.5.html#sender_dependent_default_transport_maps">_maps</a></b> features.
This feature is available in Postfix 2.0 and later. This feature is available in Postfix 2.0 and later.

View File

@ -176,11 +176,11 @@ HEADER_CHECKS(5) HEADER_CHECKS(5)
After the message is queued, send the entire mes- After the message is queued, send the entire mes-
sage through the specified external content filter. sage through the specified external content filter.
The <i>transport</i> name specifies the first field of a The <i>transport</i> name specifies the first field of a
mail delivery agent definition <a href="master.5.html">master.cf</a>; the syn- mail delivery agent definition in <a href="master.5.html">master.cf</a>; the
tax of <i>destination</i> is described in the manual page syntax of the next-hop <i>destination</i> is described in
of the corresponding delivery agent. More informa- the manual page of the corresponding delivery
tion about external content filters is in the Post- agent. More information about external content
fix <a href="FILTER_README.html">FILTER_README</a> file. filters is in the Postfix <a href="FILTER_README.html">FILTER_README</a> file.
Note 1: do not use $<i>number</i> regular expression sub- Note 1: do not use $<i>number</i> regular expression sub-
stitutions for <i>transport</i> or <i>destination</i> unless you stitutions for <i>transport</i> or <i>destination</i> unless you
@ -193,13 +193,14 @@ HEADER_CHECKS(5) HEADER_CHECKS(5)
Note 3: the purpose of the FILTER command is to Note 3: the purpose of the FILTER command is to
override message routing. To override the recipi- override message routing. To override the recipi-
ent's <i>transport</i> but not <i>destination</i>, specify an ent's <i>transport</i> but not the next-hop <i>destination</i>,
empty <i>destination</i> (Postfix 2.7 and later), or spec- specify an empty filter <i>destination</i> (Postfix 2.7
ify a <i>transport:destination</i> that delivers through a and later), or specify a <i>transport:destination</i> that
different Postfix instance (Postfix 2.6 and ear- delivers through a different Postfix instance
lier). Other options are using the recipient-depen- (Postfix 2.6 and earlier). Other options are using
dent <b><a href="postconf.5.html#transport_maps">transport_maps</a></b> or the sender-dependent <b><a href="postconf.5.html#sender_dependent_default_transport_maps">sender</a>-</b> the recipient-dependent <b><a href="postconf.5.html#transport_maps">transport_maps</a></b> or the sen-
<b><a href="postconf.5.html#sender_dependent_default_transport_maps">_dependent_default_transport_maps</a></b> features. der-dependent <b><a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default_transport</a>-</b>
<b><a href="postconf.5.html#sender_dependent_default_transport_maps">_maps</a></b> features.
This feature is available in Postfix 2.0 and later. This feature is available in Postfix 2.0 and later.

View File

@ -195,10 +195,11 @@ OQMGR(8) OQMGR(8)
Available with Postfix version 2.7 and later: Available with Postfix version 2.7 and later:
<b><a href="postconf.5.html#legacy_filter_nexthop">legacy_filter_nexthop</a> (no)</b> <b><a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> (empty)</b>
When a FILTER command does not specify a destina- When a <a href="postconf.5.html#content_filter">content_filter</a> or FILTER request specifies
tion, force the destination to be $<a href="postconf.5.html#myhostname">myhostname</a>, no explicit next-hop destination, use $default_fil-
instead of using the recipient domain. ter_nexthop instead; when that value is empty, use
the domain in the recipient address.
<b>ACTIVE QUEUE CONTROLS</b> <b>ACTIVE QUEUE CONTROLS</b>
<b><a href="postconf.5.html#qmgr_clog_warn_time">qmgr_clog_warn_time</a> (300s)</b> <b><a href="postconf.5.html#qmgr_clog_warn_time">qmgr_clog_warn_time</a> (300s)</b>

View File

@ -53,8 +53,8 @@ PICKUP(8) PICKUP(8)
<b>CONTENT INSPECTION CONTROLS</b> <b>CONTENT INSPECTION CONTROLS</b>
<b><a href="postconf.5.html#content_filter">content_filter</a> (empty)</b> <b><a href="postconf.5.html#content_filter">content_filter</a> (empty)</b>
The name of a mail delivery transport that filters After the message is queued, send the entire mes-
mail after it is queued. sage to the specified <i>transport:destination</i>.
<b><a href="postconf.5.html#receive_override_options">receive_override_options</a> (empty)</b> <b><a href="postconf.5.html#receive_override_options">receive_override_options</a> (empty)</b>
Enable or disable recipient validation, built-in Enable or disable recipient validation, built-in

View File

@ -1540,24 +1540,25 @@ is already bounded by $<a href="postconf.5.html#max_idle">max_idle</a>. </p>
<p> After the message is queued, send the entire message to the <p> After the message is queued, send the entire message to the
specified <i>transport:destination</i>. The <i>transport</i> name specified <i>transport:destination</i>. The <i>transport</i> name
specifies the first field of a mail delivery agent definition in specifies the first field of a mail delivery agent definition in
<a href="master.5.html">master.cf</a>; the syntax of <i>destination</i> is described in the <a href="master.5.html">master.cf</a>; the syntax of the next-hop <i>destination</i> is described
manual page of the corresponding delivery agent. More information in the manual page of the corresponding delivery agent. More
about external content filters is in the Postfix <a href="FILTER_README.html">FILTER_README</a> file. information about external content filters is in the Postfix
</p> <a href="FILTER_README.html">FILTER_README</a> file. </p>
<p> Notes: </p> <p> Notes: </p>
<ul> <ul>
<li> <p> This setting has a lower precedence than a content filter that <li> <p> This setting has lower precedence than a FILTER action
is specified with an <a href="access.5.html">access(5)</a> table or in a <a href="header_checks.5.html">header_checks(5)</a> or that is specified in an <a href="access.5.html">access(5)</a>, <a href="header_checks.5.html">header_checks(5)</a> or <a href="header_checks.5.html">body_checks(5)</a>
<a href="header_checks.5.html">body_checks(5)</a> table. </p> table. </p>
<li> <p> The meaning of an empty filter <i>destination</i> is version <li> <p> The meaning of an empty next-hop filter <i>destination</i>
dependent. Postfix 2.7 and later will use the recipient domain; is version dependent. Postfix 2.7 and later will use the recipient
earlier versions will use $<a href="postconf.5.html#myhostname">myhostname</a>. Specify "<a href="postconf.5.html#legacy_filter_nexthop">legacy_filter_nexthop</a> domain; earlier versions will use $<a href="postconf.5.html#myhostname">myhostname</a>. Specify
= yes" for compatibility with Postfix 2.6 or earlier, or specify "<a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> = $<a href="postconf.5.html#myhostname">myhostname</a>" for compatibility with Postfix
a non-empty filter <i>destination</i>. </p> 2.6 or earlier, or specify a <a href="postconf.5.html#content_filter">content_filter</a> value with an explicit
next-hop <i>destination</i>. </p>
</ul> </ul>
@ -2021,6 +2022,21 @@ name of the message delivery transport.
</p> </p>
</DD>
<DT><b><a name="default_filter_nexthop">default_filter_nexthop</a>
(default: empty)</b></DT><DD>
<p> When a <a href="postconf.5.html#content_filter">content_filter</a> or FILTER request specifies no explicit
next-hop destination, use $<a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> instead; when
that value is empty, use the domain in the recipient address.
Specify "<a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> = $<a href="postconf.5.html#myhostname">myhostname</a>" for compatibility
with Postfix version 2.6 and earlier, or specify an explicit next-hop
destination with each <a href="postconf.5.html#content_filter">content_filter</a> value or FILTER action. </p>
<p> This feature is available in Postfix 2.7 and later. </p>
</DD> </DD>
<DT><b><a name="default_minimum_delivery_slots">default_minimum_delivery_slots</a> <DT><b><a name="default_minimum_delivery_slots">default_minimum_delivery_slots</a>
@ -3502,20 +3518,6 @@ This feature is available in Postfix 2.1 and later.
</p> </p>
</DD>
<DT><b><a name="legacy_filter_nexthop">legacy_filter_nexthop</a>
(default: no)</b></DT><DD>
<p> When a FILTER command does not specify a destination, force the
destination to be $<a href="postconf.5.html#myhostname">myhostname</a>, instead of using the recipient domain.
Specify "<a href="postconf.5.html#legacy_filter_nexthop">legacy_filter_nexthop</a> = yes" for compatibility with Postfix
version 2.6 and earlier, or specify a non-empty filter destination.
</p>
<p> This feature is available in Postfix 2.7 and later. </p>
</DD> </DD>
<DT><b><a name="line_length_limit">line_length_limit</a> <DT><b><a name="line_length_limit">line_length_limit</a>

View File

@ -201,10 +201,11 @@ QMGR(8) QMGR(8)
Available with Postfix version 2.7 and later: Available with Postfix version 2.7 and later:
<b><a href="postconf.5.html#legacy_filter_nexthop">legacy_filter_nexthop</a> (no)</b> <b><a href="postconf.5.html#default_filter_nexthop">default_filter_nexthop</a> (empty)</b>
When a FILTER command does not specify a destina- When a <a href="postconf.5.html#content_filter">content_filter</a> or FILTER request specifies
tion, force the destination to be $<a href="postconf.5.html#myhostname">myhostname</a>, no explicit next-hop destination, use $default_fil-
instead of using the recipient domain. ter_nexthop instead; when that value is empty, use
the domain in the recipient address.
<b>ACTIVE QUEUE CONTROLS</b> <b>ACTIVE QUEUE CONTROLS</b>
<b><a href="postconf.5.html#qmgr_clog_warn_time">qmgr_clog_warn_time</a> (300s)</b> <b><a href="postconf.5.html#qmgr_clog_warn_time">qmgr_clog_warn_time</a> (300s)</b>

View File

@ -52,8 +52,8 @@ QMQPD(8) QMQPD(8)
<b>CONTENT INSPECTION CONTROLS</b> <b>CONTENT INSPECTION CONTROLS</b>
<b><a href="postconf.5.html#content_filter">content_filter</a> (empty)</b> <b><a href="postconf.5.html#content_filter">content_filter</a> (empty)</b>
The name of a mail delivery transport that filters After the message is queued, send the entire mes-
mail after it is queued. sage to the specified <i>transport:destination</i>.
<b><a href="postconf.5.html#receive_override_options">receive_override_options</a> (empty)</b> <b><a href="postconf.5.html#receive_override_options">receive_override_options</a> (empty)</b>
Enable or disable recipient validation, built-in Enable or disable recipient validation, built-in

View File

@ -178,8 +178,8 @@ SMTPD(8) SMTPD(8)
See the <a href="FILTER_README.html">FILTER_README</a> document for details. See the <a href="FILTER_README.html">FILTER_README</a> document for details.
<b><a href="postconf.5.html#content_filter">content_filter</a> (empty)</b> <b><a href="postconf.5.html#content_filter">content_filter</a> (empty)</b>
The name of a mail delivery transport that filters After the message is queued, send the entire mes-
mail after it is queued. sage to the specified <i>transport:destination</i>.
<b>BEFORE QUEUE EXTERNAL CONTENT INSPECTION CONTROLS</b> <b>BEFORE QUEUE EXTERNAL CONTENT INSPECTION CONTROLS</b>
As of version 2.1, the Postfix SMTP server can be config- As of version 2.1, the Postfix SMTP server can be config-

View File

@ -269,10 +269,11 @@ This feature is available in Postfix 2.0 and later.
After the message is queued, send the entire message through After the message is queued, send the entire message through
the specified external content filter. The \fItransport\fR the specified external content filter. The \fItransport\fR
name specifies the first field of a mail delivery agent name specifies the first field of a mail delivery agent
definition in master.cf; the syntax of \fIdestination\fR definition in master.cf; the syntax of the next-hop
is described in the manual page of the corresponding delivery \fIdestination\fR is described in the manual page of the
agent. More information about external content filters is corresponding delivery agent. More information about
in the Postfix FILTER_README file. external content filters is in the Postfix FILTER_README
file.
.sp .sp
Note 1: do not use $\fInumber\fR regular expression Note 1: do not use $\fInumber\fR regular expression
substitutions for \fItransport\fR or \fIdestination\fR substitutions for \fItransport\fR or \fIdestination\fR
@ -285,12 +286,13 @@ one is executed.
.sp .sp
Note 3: the purpose of the FILTER command is to override Note 3: the purpose of the FILTER command is to override
message routing. To override the recipient's \fItransport\fR message routing. To override the recipient's \fItransport\fR
but not \fIdestination\fR, specify an empty \fIdestination\fR but not the next-hop \fIdestination\fR, specify an empty
(Postfix 2.7 and later), or specify a \fItransport:destination\fR filter \fIdestination\fR (Postfix 2.7 and later), or specify
that delivers through a different Postfix instance (Postfix a \fItransport:destination\fR that delivers through a
2.6 and earlier). Other options are using the recipient-dependent different Postfix instance (Postfix 2.6 and earlier). Other
\fBtrans\%port\%_maps\fR or the sen\%der-dependent options are using the recipient-dependent \fBtrans\%port\%_maps\fR
\fBsender\%_de\%pen\%dent_default_trans\%port\%_maps\fR or the sen\%der-dependent
\fBsender\%_de\%pen\%dent\%_de\%fault\%_trans\%port\%_maps\fR
features. features.
.sp .sp
This feature is available in Postfix 2.0 and later. This feature is available in Postfix 2.0 and later.

View File

@ -171,10 +171,11 @@ This feature is available in Postfix 2.1 and later.
After the message is queued, send the entire message through After the message is queued, send the entire message through
the specified external content filter. The \fItransport\fR the specified external content filter. The \fItransport\fR
name specifies the first field of a mail delivery agent name specifies the first field of a mail delivery agent
definition master.cf; the syntax of \fIdestination\fR is definition in master.cf; the syntax of the next-hop
described in the manual page of the corresponding delivery \fIdestination\fR is described in the manual page of the
agent. More information about external content filters is corresponding delivery agent. More information about
in the Postfix FILTER_README file. external content filters is in the Postfix FILTER_README
file.
.sp .sp
Note 1: do not use $\fInumber\fR regular expression Note 1: do not use $\fInumber\fR regular expression
substitutions for \fItransport\fR or \fIdestination\fR substitutions for \fItransport\fR or \fIdestination\fR
@ -187,12 +188,13 @@ one is executed.
.sp .sp
Note 3: the purpose of the FILTER command is to override Note 3: the purpose of the FILTER command is to override
message routing. To override the recipient's \fItransport\fR message routing. To override the recipient's \fItransport\fR
but not \fIdestination\fR, specify an empty \fIdestination\fR but not the next-hop \fIdestination\fR, specify an empty
(Postfix 2.7 and later), or specify a \fItransport:destination\fR filter \fIdestination\fR (Postfix 2.7 and later), or specify
that delivers through a different Postfix instance (Postfix a \fItransport:destination\fR that delivers through a
2.6 and earlier). Other options are using the recipient-dependent different Postfix instance (Postfix 2.6 and earlier). Other
\fBtrans\%port\%_maps\fR or the sen\%der-dependent options are using the recipient-dependent \fBtrans\%port\%_maps\fR
\fBsender\%_de\%pen\%dent_default_trans\%port\%_maps\fR or the sen\%der-dependent
\fBsender\%_de\%pen\%dent\%_de\%fault\%_trans\%port\%_maps\fR
features. features.
.sp .sp
This feature is available in Postfix 2.0 and later. This feature is available in Postfix 2.0 and later.

View File

@ -853,21 +853,23 @@ is already bounded by $max_idle.
After the message is queued, send the entire message to the After the message is queued, send the entire message to the
specified \fItransport:destination\fR. The \fItransport\fR name specified \fItransport:destination\fR. The \fItransport\fR name
specifies the first field of a mail delivery agent definition in specifies the first field of a mail delivery agent definition in
master.cf; the syntax of \fIdestination\fR is described in the master.cf; the syntax of the next-hop \fIdestination\fR is described
manual page of the corresponding delivery agent. More information in the manual page of the corresponding delivery agent. More
about external content filters is in the Postfix FILTER_README file. information about external content filters is in the Postfix
FILTER_README file.
.PP .PP
Notes: Notes:
.IP \(bu .IP \(bu
This setting has a lower precedence than a content filter that This setting has lower precedence than a FILTER action
is specified with an \fBaccess\fR(5) table or in a \fBheader_checks\fR(5) or that is specified in an \fBaccess\fR(5), \fBheader_checks\fR(5) or \fBbody_checks\fR(5)
\fBbody_checks\fR(5) table. table.
.IP \(bu .IP \(bu
The meaning of an empty filter \fIdestination\fR is version The meaning of an empty next-hop filter \fIdestination\fR
dependent. Postfix 2.7 and later will use the recipient domain; is version dependent. Postfix 2.7 and later will use the recipient
earlier versions will use $myhostname. Specify "legacy_filter_nexthop domain; earlier versions will use $myhostname. Specify
= yes" for compatibility with Postfix 2.6 or earlier, or specify "default_filter_nexthop = $myhostname" for compatibility with Postfix
a non-empty filter \fIdestination\fR. 2.6 or earlier, or specify a content_filter value with an explicit
next-hop \fIdestination\fR.
.SH cyrus_sasl_config_path (default: empty) .SH cyrus_sasl_config_path (default: empty)
Search path for Cyrus SASL application configuration files, Search path for Cyrus SASL application configuration files,
currently used only to locate the $smtpd_sasl_path.conf file. currently used only to locate the $smtpd_sasl_path.conf file.
@ -1168,6 +1170,15 @@ degradation.
Use \fItransport\fR_extra_recipient_limit to specify a Use \fItransport\fR_extra_recipient_limit 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_filter_nexthop (default: empty)
When a content_filter or FILTER request specifies no explicit
next-hop destination, use $default_filter_nexthop instead; when
that value is empty, use the domain in the recipient address.
Specify "default_filter_nexthop = $myhostname" for compatibility
with Postfix version 2.6 and earlier, or specify an explicit next-hop
destination with each content_filter value or FILTER action.
.PP
This feature is available in Postfix 2.7 and later.
.SH default_minimum_delivery_slots (default: 3) .SH default_minimum_delivery_slots (default: 3)
How many recipients a message must have in order to invoke the How many recipients a message must have in order to invoke the
Postfix queue manager's scheduling algorithm at all. Messages Postfix queue manager's scheduling algorithm at all. Messages
@ -1956,13 +1967,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 legacy_filter_nexthop (default: no)
When a FILTER command does not specify a destination, force the
destination to be $myhostname, instead of using the recipient domain.
Specify "legacy_filter_nexthop = yes" for compatibility with Postfix
version 2.6 and earlier, or specify a non-empty filter destination.
.PP
This feature is available in Postfix 2.7 and later.
.SH line_length_limit (default: 2048) .SH line_length_limit (default: 2048)
Upon input, long lines are chopped up into pieces of at most Upon input, long lines are chopped up into pieces of at most
this length; upon delivery, long lines are reconstructed. this length; upon delivery, long lines are reconstructed.

View File

@ -185,9 +185,10 @@ Allow a sender or recipient address to have `-' as the first
character. character.
.PP .PP
Available with Postfix version 2.7 and later: Available with Postfix version 2.7 and later:
.IP "\fBlegacy_filter_nexthop (no)\fR" .IP "\fBdefault_filter_nexthop (empty)\fR"
When a FILTER command does not specify a destination, force the When a content_filter or FILTER request specifies no explicit
destination to be $myhostname, instead of using the recipient domain. next-hop destination, use $default_filter_nexthop instead; when
that value is empty, use the domain in the recipient address.
.SH "ACTIVE QUEUE CONTROLS" .SH "ACTIVE QUEUE CONTROLS"
.na .na
.nf .nf

View File

@ -64,8 +64,8 @@ The text below provides only a parameter summary. See
.ad .ad
.fi .fi
.IP "\fBcontent_filter (empty)\fR" .IP "\fBcontent_filter (empty)\fR"
The name of a mail delivery transport that filters mail after After the message is queued, send the entire message to the
it is queued. specified \fItransport:destination\fR.
.IP "\fBreceive_override_options (empty)\fR" .IP "\fBreceive_override_options (empty)\fR"
Enable or disable recipient validation, built-in content Enable or disable recipient validation, built-in content
filtering, or address mapping. filtering, or address mapping.

View File

@ -189,9 +189,10 @@ Allow a sender or recipient address to have `-' as the first
character. character.
.PP .PP
Available with Postfix version 2.7 and later: Available with Postfix version 2.7 and later:
.IP "\fBlegacy_filter_nexthop (no)\fR" .IP "\fBdefault_filter_nexthop (empty)\fR"
When a FILTER command does not specify a destination, force the When a content_filter or FILTER request specifies no explicit
destination to be $myhostname, instead of using the recipient domain. next-hop destination, use $default_filter_nexthop instead; when
that value is empty, use the domain in the recipient address.
.SH "ACTIVE QUEUE CONTROLS" .SH "ACTIVE QUEUE CONTROLS"
.na .na
.nf .nf

View File

@ -61,8 +61,8 @@ The text below provides only a parameter summary. See
.ad .ad
.fi .fi
.IP "\fBcontent_filter (empty)\fR" .IP "\fBcontent_filter (empty)\fR"
The name of a mail delivery transport that filters mail after After the message is queued, send the entire message to the
it is queued. specified \fItransport:destination\fR.
.IP "\fBreceive_override_options (empty)\fR" .IP "\fBreceive_override_options (empty)\fR"
Enable or disable recipient validation, built-in content Enable or disable recipient validation, built-in content
filtering, or address mapping. filtering, or address mapping.

View File

@ -170,8 +170,8 @@ an external content filter AFTER the mail is queued. This content
filter is expected to inject mail back into a (Postfix or other) filter is expected to inject mail back into a (Postfix or other)
MTA for further delivery. See the FILTER_README document for details. MTA for further delivery. See the FILTER_README document for details.
.IP "\fBcontent_filter (empty)\fR" .IP "\fBcontent_filter (empty)\fR"
The name of a mail delivery transport that filters mail after After the message is queued, send the entire message to the
it is queued. specified \fItransport:destination\fR.
.SH "BEFORE QUEUE EXTERNAL CONTENT INSPECTION CONTROLS" .SH "BEFORE QUEUE EXTERNAL CONTENT INSPECTION CONTROLS"
.na .na
.nf .nf

View File

@ -355,7 +355,7 @@ while (<>) {
s;\bproxy_write_maps\b;<a href="postconf.5.html#proxy_write_maps">$&</a>;g; s;\bproxy_write_maps\b;<a href="postconf.5.html#proxy_write_maps">$&</a>;g;
s;\bqmgr_clog_warn_time\b;<a href="postconf.5.html#qmgr_clog_warn_time">$&</a>;g; s;\bqmgr_clog_warn_time\b;<a href="postconf.5.html#qmgr_clog_warn_time">$&</a>;g;
s;\bqmgr_fudge_factor\b;<a href="postconf.5.html#qmgr_fudge_factor">$&</a>;g; s;\bqmgr_fudge_factor\b;<a href="postconf.5.html#qmgr_fudge_factor">$&</a>;g;
s;\blegacy_filter_nexthop\b;<a href="postconf.5.html#legacy_filter_nexthop">$&</a>;g; s;\bdefault_filter_nexthop\b;<a href="postconf.5.html#default_filter_nexthop">$&</a>;g;
s;\bqmgr_message_active_limit\b;<a href="postconf.5.html#qmgr_message_active_limit">$&</a>;g; s;\bqmgr_message_active_limit\b;<a href="postconf.5.html#qmgr_message_active_limit">$&</a>;g;
s;\bqmgr_message_recip[-</bB>]*\n* *[<bB>]*ient_limit\b;<a href="postconf.5.html#qmgr_message_recipient_limit">$&</a>;g; s;\bqmgr_message_recip[-</bB>]*\n* *[<bB>]*ient_limit\b;<a href="postconf.5.html#qmgr_message_recipient_limit">$&</a>;g;
s;\bqmgr_message_recip[-</bB>]*\n* *[<bB>]*ient_minimum\b;<a href="postconf.5.html#qmgr_message_recipient_minimum">$&</a>;g; s;\bqmgr_message_recip[-</bB>]*\n* *[<bB>]*ient_minimum\b;<a href="postconf.5.html#qmgr_message_recipient_minimum">$&</a>;g;

View File

@ -399,18 +399,19 @@ and causes mail to be given to the content filter instead. </p>
<p> The content_filter configuration parameter expects a value of <p> The content_filter configuration parameter expects a value of
the form <i>transport:destination</i>. The <i>transport</i> name the form <i>transport:destination</i>. The <i>transport</i> name
specifies the first field of a mail delivery agent definition in specifies the first field of a mail delivery agent definition in
master.cf; the syntax of <i>destination</i> is described in the master.cf; the syntax of the next-hop <i>destination</i> is described
manual page of the corresponding delivery agent. </p> in the manual page of the corresponding delivery agent. </p>
<p> The meaning of an empty filter <i>destination</i> is version <p> The meaning of an empty next-hop filter <i>destination</i> is
dependent. Postfix 2.7 and later will use the recipient domain; version dependent. Postfix 2.7 and later will use the recipient
earlier versions will use $myhostname. Specify "legacy_filter_nexthop domain; earlier versions will use $myhostname. Specify
= yes" for compatibility with Postfix 2.6 or earlier, or specify a "default_filter_nexthop = $myhostname" for compatibility with Postfix
non-empty filter destination. </p> 2.6 or earlier, or specify a non-empty next-hop filter <i>destination</i>.
</p>
<p> The content_filter setting has a lower precedence than a content <p> The content_filter setting has lower precedence than a FILTER
filter that is specified with an access(5) table or in a header_checks(5) action that is specified in an access(5), header_checks(5) or
or body_checks(5) table. </p> body_checks(5) table. </p>
<li> <p> Execute "<b>postfix reload</b>" to complete the change. <li> <p> Execute "<b>postfix reload</b>" to complete the change.
</p> </p>
@ -625,18 +626,18 @@ of its final destination. </p>
<li> <p> The content_filter configuration parameter expects a value <li> <p> The content_filter configuration parameter expects a value
of the form <i>transport:destination</i>. The <i>transport</i> name of the form <i>transport:destination</i>. The <i>transport</i> name
specifies the first field of a mail delivery agent definition in specifies the first field of a mail delivery agent definition in
master.cf; the syntax of <i>destination</i> is described in the master.cf; the syntax of the next-hop <i>destination</i> is described
manual page of the corresponding delivery agent. </p> in the manual page of the corresponding delivery agent. </p>
<li> <p> The meaning of an empty filter <i>destination</i> is version <li> <p> The meaning of an empty next-hop filter <i>destination</i>
dependent. Postfix 2.7 and later will use the recipient domain; is version dependent. Postfix 2.7 and later will use the recipient
earlier versions will use $myhostname. Specify "legacy_filter_nexthop domain; earlier versions will use $myhostname. Specify
= yes" for compatibility with Postfix 2.6 or earlier, or specify a "default_filter_nexthop = $myhostname" for compatibility with Postfix
non-empty filter destination. </p> 2.6 or earlier, or specify a non-empty next-hop filter <i>destination</i>.
<li> <p> The content_filter setting has a lower precedence than a <li> <p> The content_filter setting has lower precedence than a
content filter that is specified with an access(5) table or in a FILTER action that is specified in an access(5), header_checks(5)
header_checks(5) or body_checks(5) table. </p> or body_checks(5) table. </p>
</ul> </ul>

View File

@ -274,10 +274,11 @@
# After the message is queued, send the entire message through # After the message is queued, send the entire message through
# the specified external content filter. The \fItransport\fR # the specified external content filter. The \fItransport\fR
# name specifies the first field of a mail delivery agent # name specifies the first field of a mail delivery agent
# definition in master.cf; the syntax of \fIdestination\fR # definition in master.cf; the syntax of the next-hop
# is described in the manual page of the corresponding delivery # \fIdestination\fR is described in the manual page of the
# agent. More information about external content filters is # corresponding delivery agent. More information about
# in the Postfix FILTER_README file. # external content filters is in the Postfix FILTER_README
# file.
# .sp # .sp
# Note 1: do not use $\fInumber\fR regular expression # Note 1: do not use $\fInumber\fR regular expression
# substitutions for \fItransport\fR or \fIdestination\fR # substitutions for \fItransport\fR or \fIdestination\fR
@ -290,12 +291,13 @@
# .sp # .sp
# Note 3: the purpose of the FILTER command is to override # Note 3: the purpose of the FILTER command is to override
# message routing. To override the recipient's \fItransport\fR # message routing. To override the recipient's \fItransport\fR
# but not \fIdestination\fR, specify an empty \fIdestination\fR # but not the next-hop \fIdestination\fR, specify an empty
# (Postfix 2.7 and later), or specify a \fItransport:destination\fR # filter \fIdestination\fR (Postfix 2.7 and later), or specify
# that delivers through a different Postfix instance (Postfix # a \fItransport:destination\fR that delivers through a
# 2.6 and earlier). Other options are using the recipient-dependent # different Postfix instance (Postfix 2.6 and earlier). Other
# \fBtrans\%port\%_maps\fR or the sen\%der-dependent # options are using the recipient-dependent \fBtrans\%port\%_maps\fR
# \fBsender\%_de\%pen\%dent_default_trans\%port\%_maps\fR # or the sen\%der-dependent
# \fBsender\%_de\%pen\%dent\%_de\%fault\%_trans\%port\%_maps\fR
# features. # features.
# .sp # .sp
# This feature is available in Postfix 2.0 and later. # This feature is available in Postfix 2.0 and later.

View File

@ -182,10 +182,11 @@
# After the message is queued, send the entire message through # After the message is queued, send the entire message through
# the specified external content filter. The \fItransport\fR # the specified external content filter. The \fItransport\fR
# name specifies the first field of a mail delivery agent # name specifies the first field of a mail delivery agent
# definition master.cf; the syntax of \fIdestination\fR is # definition in master.cf; the syntax of the next-hop
# described in the manual page of the corresponding delivery # \fIdestination\fR is described in the manual page of the
# agent. More information about external content filters is # corresponding delivery agent. More information about
# in the Postfix FILTER_README file. # external content filters is in the Postfix FILTER_README
# file.
# .sp # .sp
# Note 1: do not use $\fInumber\fR regular expression # Note 1: do not use $\fInumber\fR regular expression
# substitutions for \fItransport\fR or \fIdestination\fR # substitutions for \fItransport\fR or \fIdestination\fR
@ -198,12 +199,13 @@
# .sp # .sp
# Note 3: the purpose of the FILTER command is to override # Note 3: the purpose of the FILTER command is to override
# message routing. To override the recipient's \fItransport\fR # message routing. To override the recipient's \fItransport\fR
# but not \fIdestination\fR, specify an empty \fIdestination\fR # but not the next-hop \fIdestination\fR, specify an empty
# (Postfix 2.7 and later), or specify a \fItransport:destination\fR # filter \fIdestination\fR (Postfix 2.7 and later), or specify
# that delivers through a different Postfix instance (Postfix # a \fItransport:destination\fR that delivers through a
# 2.6 and earlier). Other options are using the recipient-dependent # different Postfix instance (Postfix 2.6 and earlier). Other
# \fBtrans\%port\%_maps\fR or the sen\%der-dependent # options are using the recipient-dependent \fBtrans\%port\%_maps\fR
# \fBsender\%_de\%pen\%dent_default_trans\%port\%_maps\fR # or the sen\%der-dependent
# \fBsender\%_de\%pen\%dent\%_de\%fault\%_trans\%port\%_maps\fR
# features. # features.
# .sp # .sp
# This feature is available in Postfix 2.0 and later. # This feature is available in Postfix 2.0 and later.

View File

@ -6864,24 +6864,25 @@ allowed set are replaced by underscores.
<p> After the message is queued, send the entire message to the <p> After the message is queued, send the entire message to the
specified <i>transport:destination</i>. The <i>transport</i> name specified <i>transport:destination</i>. The <i>transport</i> name
specifies the first field of a mail delivery agent definition in specifies the first field of a mail delivery agent definition in
master.cf; the syntax of <i>destination</i> is described in the master.cf; the syntax of the next-hop <i>destination</i> is described
manual page of the corresponding delivery agent. More information in the manual page of the corresponding delivery agent. More
about external content filters is in the Postfix FILTER_README file. information about external content filters is in the Postfix
</p> FILTER_README file. </p>
<p> Notes: </p> <p> Notes: </p>
<ul> <ul>
<li> <p> This setting has a lower precedence than a content filter that <li> <p> This setting has lower precedence than a FILTER action
is specified with an access(5) table or in a header_checks(5) or that is specified in an access(5), header_checks(5) or body_checks(5)
body_checks(5) table. </p> table. </p>
<li> <p> The meaning of an empty filter <i>destination</i> is version <li> <p> The meaning of an empty next-hop filter <i>destination</i>
dependent. Postfix 2.7 and later will use the recipient domain; is version dependent. Postfix 2.7 and later will use the recipient
earlier versions will use $myhostname. Specify "legacy_filter_nexthop domain; earlier versions will use $myhostname. Specify
= yes" for compatibility with Postfix 2.6 or earlier, or specify "default_filter_nexthop = $myhostname" for compatibility with Postfix
a non-empty filter <i>destination</i>. </p> 2.6 or earlier, or specify a content_filter value with an explicit
next-hop <i>destination</i>. </p>
</ul> </ul>
@ -12832,13 +12833,14 @@ setting for address verification probes. </p>
<p> This feature is available in Postfix 2.7 and later. </p> <p> This feature is available in Postfix 2.7 and later. </p>
%PARAM legacy_filter_nexthop no %PARAM default_filter_nexthop
<p> When a FILTER command does not specify a destination, force the <p> When a content_filter or FILTER request specifies no explicit
destination to be $myhostname, instead of using the recipient domain. next-hop destination, use $default_filter_nexthop instead; when
Specify "legacy_filter_nexthop = yes" for compatibility with Postfix that value is empty, use the domain in the recipient address.
version 2.6 and earlier, or specify a non-empty filter destination. Specify "default_filter_nexthop = $myhostname" for compatibility
</p> with Postfix version 2.6 and earlier, or specify an explicit next-hop
destination with each content_filter value or FILTER action. </p>
<p> This feature is available in Postfix 2.7 and later. </p> <p> This feature is available in Postfix 2.7 and later. </p>

View File

@ -2253,9 +2253,9 @@ extern void mail_params_init(void);
#define DEF_FILTER_XPORT "" #define DEF_FILTER_XPORT ""
extern char *var_filter_xport; extern char *var_filter_xport;
#define VAR_LEGACY_FILTER_NEXTHOP "legacy_filter_nexthop" #define VAR_DEF_FILTER_NEXTHOP "default_filter_nexthop"
#define DEF_LEGACY_FILTER_NEXTHOP 0 #define DEF_DEF_FILTER_NEXTHOP ""
extern bool var_legacy_filter_nexthop; extern char *var_def_filter_nexthop;
/* /*
* Fast flush service support. * Fast flush service support.

View File

@ -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 "20100116" #define MAIL_RELEASE_DATE "20100117"
#define MAIL_VERSION_NUMBER "2.7" #define MAIL_VERSION_NUMBER "2.7"
#ifdef SNAPSHOT #ifdef SNAPSHOT

View File

@ -159,9 +159,10 @@
/* character. /* character.
/* .PP /* .PP
/* Available with Postfix version 2.7 and later: /* Available with Postfix version 2.7 and later:
/* .IP "\fBlegacy_filter_nexthop (no)\fR" /* .IP "\fBdefault_filter_nexthop (empty)\fR"
/* When a FILTER command does not specify a destination, force the /* When a content_filter or FILTER request specifies no explicit
/* destination to be $myhostname, instead of using the recipient domain. /* next-hop destination, use $default_filter_nexthop instead; when
/* that value is empty, use the domain in the recipient address.
/* ACTIVE QUEUE CONTROLS /* ACTIVE QUEUE CONTROLS
/* .ad /* .ad
/* .fi /* .fi
@ -374,7 +375,7 @@ char *var_conc_neg_feedback;
int var_conc_cohort_limit; int var_conc_cohort_limit;
int var_conc_feedback_debug; int var_conc_feedback_debug;
int var_dest_rate_delay; int var_dest_rate_delay;
bool var_legacy_filter_nexthop; char *var_def_filter_nexthop;
static QMGR_SCAN *qmgr_scans[2]; static QMGR_SCAN *qmgr_scans[2];
@ -604,6 +605,7 @@ int main(int argc, char **argv)
VAR_DEFER_XPORTS, DEF_DEFER_XPORTS, &var_defer_xports, 0, 0, VAR_DEFER_XPORTS, DEF_DEFER_XPORTS, &var_defer_xports, 0, 0,
VAR_CONC_POS_FDBACK, DEF_CONC_POS_FDBACK, &var_conc_pos_feedback, 1, 0, VAR_CONC_POS_FDBACK, DEF_CONC_POS_FDBACK, &var_conc_pos_feedback, 1, 0,
VAR_CONC_NEG_FDBACK, DEF_CONC_NEG_FDBACK, &var_conc_neg_feedback, 1, 0, VAR_CONC_NEG_FDBACK, DEF_CONC_NEG_FDBACK, &var_conc_neg_feedback, 1, 0,
VAR_DEF_FILTER_NEXTHOP, DEF_DEF_FILTER_NEXTHOP, &var_def_filter_nexthop, 0, 0,
0, 0,
}; };
static const CONFIG_TIME_TABLE time_table[] = { static const CONFIG_TIME_TABLE time_table[] = {
@ -633,7 +635,6 @@ int main(int argc, char **argv)
static const CONFIG_BOOL_TABLE bool_table[] = { static const CONFIG_BOOL_TABLE bool_table[] = {
VAR_VERP_BOUNCE_OFF, DEF_VERP_BOUNCE_OFF, &var_verp_bounce_off, VAR_VERP_BOUNCE_OFF, DEF_VERP_BOUNCE_OFF, &var_verp_bounce_off,
VAR_CONC_FDBACK_DEBUG, DEF_CONC_FDBACK_DEBUG, &var_conc_feedback_debug, VAR_CONC_FDBACK_DEBUG, DEF_CONC_FDBACK_DEBUG, &var_conc_feedback_debug,
VAR_LEGACY_FILTER_NEXTHOP, DEF_LEGACY_FILTER_NEXTHOP, &var_legacy_filter_nexthop,
0, 0,
}; };

View File

@ -1009,8 +1009,8 @@ static void qmgr_message_resolve(QMGR_MESSAGE *message)
reply.flags = 0; reply.flags = 0;
vstring_strcpy(reply.transport, message->filter_xport); vstring_strcpy(reply.transport, message->filter_xport);
if (FILTER_WITHOUT_NEXTHOP(STR(reply.transport), nexthop) if (FILTER_WITHOUT_NEXTHOP(STR(reply.transport), nexthop)
&& (var_legacy_filter_nexthop != 0 && *(nexthop = var_def_filter_nexthop) == 0
|| RCPT_WITHOUT_DOMAIN(recipient->address, nexthop))) && RCPT_WITHOUT_DOMAIN(recipient->address, nexthop))
nexthop = var_myhostname; nexthop = var_myhostname;
vstring_strcpy(reply.nexthop, nexthop); vstring_strcpy(reply.nexthop, nexthop);
vstring_strcpy(reply.recipient, recipient->address); vstring_strcpy(reply.recipient, recipient->address);

View File

@ -46,8 +46,8 @@
/* .ad /* .ad
/* .fi /* .fi
/* .IP "\fBcontent_filter (empty)\fR" /* .IP "\fBcontent_filter (empty)\fR"
/* The name of a mail delivery transport that filters mail after /* After the message is queued, send the entire message to the
/* it is queued. /* specified \fItransport:destination\fR.
/* .IP "\fBreceive_override_options (empty)\fR" /* .IP "\fBreceive_override_options (empty)\fR"
/* Enable or disable recipient validation, built-in content /* Enable or disable recipient validation, built-in content
/* filtering, or address mapping. /* filtering, or address mapping.

View File

@ -163,9 +163,10 @@
/* character. /* character.
/* .PP /* .PP
/* Available with Postfix version 2.7 and later: /* Available with Postfix version 2.7 and later:
/* .IP "\fBlegacy_filter_nexthop (no)\fR" /* .IP "\fBdefault_filter_nexthop (empty)\fR"
/* When a FILTER command does not specify a destination, force the /* When a content_filter or FILTER request specifies no explicit
/* destination to be $myhostname, instead of using the recipient domain. /* next-hop destination, use $default_filter_nexthop instead; when
/* that value is empty, use the domain in the recipient address.
/* ACTIVE QUEUE CONTROLS /* ACTIVE QUEUE CONTROLS
/* .ad /* .ad
/* .fi /* .fi
@ -434,7 +435,7 @@ char *var_conc_neg_feedback;
int var_conc_cohort_limit; int var_conc_cohort_limit;
int var_conc_feedback_debug; int var_conc_feedback_debug;
int var_dest_rate_delay; int var_dest_rate_delay;
bool var_legacy_filter_nexthop; char *var_def_filter_nexthop;
static QMGR_SCAN *qmgr_scans[2]; static QMGR_SCAN *qmgr_scans[2];
@ -671,6 +672,7 @@ int main(int argc, char **argv)
VAR_DEFER_XPORTS, DEF_DEFER_XPORTS, &var_defer_xports, 0, 0, VAR_DEFER_XPORTS, DEF_DEFER_XPORTS, &var_defer_xports, 0, 0,
VAR_CONC_POS_FDBACK, DEF_CONC_POS_FDBACK, &var_conc_pos_feedback, 1, 0, VAR_CONC_POS_FDBACK, DEF_CONC_POS_FDBACK, &var_conc_pos_feedback, 1, 0,
VAR_CONC_NEG_FDBACK, DEF_CONC_NEG_FDBACK, &var_conc_neg_feedback, 1, 0, VAR_CONC_NEG_FDBACK, DEF_CONC_NEG_FDBACK, &var_conc_neg_feedback, 1, 0,
VAR_DEF_FILTER_NEXTHOP, DEF_DEF_FILTER_NEXTHOP, &var_def_filter_nexthop, 0, 0,
0, 0,
}; };
static const CONFIG_TIME_TABLE time_table[] = { static const CONFIG_TIME_TABLE time_table[] = {
@ -708,7 +710,6 @@ int main(int argc, char **argv)
static const CONFIG_BOOL_TABLE bool_table[] = { static const CONFIG_BOOL_TABLE bool_table[] = {
VAR_VERP_BOUNCE_OFF, DEF_VERP_BOUNCE_OFF, &var_verp_bounce_off, VAR_VERP_BOUNCE_OFF, DEF_VERP_BOUNCE_OFF, &var_verp_bounce_off,
VAR_CONC_FDBACK_DEBUG, DEF_CONC_FDBACK_DEBUG, &var_conc_feedback_debug, VAR_CONC_FDBACK_DEBUG, DEF_CONC_FDBACK_DEBUG, &var_conc_feedback_debug,
VAR_LEGACY_FILTER_NEXTHOP, DEF_LEGACY_FILTER_NEXTHOP, &var_legacy_filter_nexthop,
0, 0,
}; };

View File

@ -1068,8 +1068,8 @@ static void qmgr_message_resolve(QMGR_MESSAGE *message)
reply.flags = 0; reply.flags = 0;
vstring_strcpy(reply.transport, message->filter_xport); vstring_strcpy(reply.transport, message->filter_xport);
if (FILTER_WITHOUT_NEXTHOP(STR(reply.transport), nexthop) if (FILTER_WITHOUT_NEXTHOP(STR(reply.transport), nexthop)
&& (var_legacy_filter_nexthop != 0 && *(nexthop = var_def_filter_nexthop) == 0
|| RCPT_WITHOUT_DOMAIN(recipient->address, nexthop))) && RCPT_WITHOUT_DOMAIN(recipient->address, nexthop))
nexthop = var_myhostname; nexthop = var_myhostname;
vstring_strcpy(reply.nexthop, nexthop); vstring_strcpy(reply.nexthop, nexthop);
vstring_strcpy(reply.recipient, recipient->address); vstring_strcpy(reply.recipient, recipient->address);

View File

@ -45,8 +45,8 @@
/* .ad /* .ad
/* .fi /* .fi
/* .IP "\fBcontent_filter (empty)\fR" /* .IP "\fBcontent_filter (empty)\fR"
/* The name of a mail delivery transport that filters mail after /* After the message is queued, send the entire message to the
/* it is queued. /* specified \fItransport:destination\fR.
/* .IP "\fBreceive_override_options (empty)\fR" /* .IP "\fBreceive_override_options (empty)\fR"
/* Enable or disable recipient validation, built-in content /* Enable or disable recipient validation, built-in content
/* filtering, or address mapping. /* filtering, or address mapping.

View File

@ -150,8 +150,8 @@
/* filter is expected to inject mail back into a (Postfix or other) /* filter is expected to inject mail back into a (Postfix or other)
/* MTA for further delivery. See the FILTER_README document for details. /* MTA for further delivery. See the FILTER_README document for details.
/* .IP "\fBcontent_filter (empty)\fR" /* .IP "\fBcontent_filter (empty)\fR"
/* The name of a mail delivery transport that filters mail after /* After the message is queued, send the entire message to the
/* it is queued. /* specified \fItransport:destination\fR.
/* BEFORE QUEUE EXTERNAL CONTENT INSPECTION CONTROLS /* BEFORE QUEUE EXTERNAL CONTENT INSPECTION CONTROLS
/* .ad /* .ad
/* .fi /* .fi
@ -3227,9 +3227,9 @@ static int vrfy_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *argv)
smtpd_chat_reply(state, "501 5.1.3 Bad recipient address syntax"); smtpd_chat_reply(state, "501 5.1.3 Bad recipient address syntax");
return (-1); return (-1);
} }
/* Not: state->addr_buf */ /* Use state->addr_buf, with the unquoted result from extract_addr() */
if (SMTPD_STAND_ALONE(state) == 0 if (SMTPD_STAND_ALONE(state) == 0
&& (err = smtpd_check_rcpt(state, argv[1].strval)) != 0) { && (err = smtpd_check_rcpt(state, STR(state->addr_buf))) != 0) {
smtpd_chat_reply(state, "%s", err); smtpd_chat_reply(state, "%s", err);
return (-1); return (-1);
} }
@ -3237,8 +3237,8 @@ static int vrfy_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *argv)
/* /*
* XXX 2821 new feature: Section 3.5.1 requires that the VRFY response is * XXX 2821 new feature: Section 3.5.1 requires that the VRFY response is
* either "full name <user@domain>" or "user@domain". Postfix replies * either "full name <user@domain>" or "user@domain". Postfix replies
* with the address that was provided by the client, whether or not it is * with the string that was provided by the client, whether or not it is
* in fully qualified domain form or not. * in fully qualified domain form and the address is in <>.
* *
* Reply code 250 is reserved for the case where the address is verified; * Reply code 250 is reserved for the case where the address is verified;
* reply code 252 should be used when no definitive certainty exists. * reply code 252 should be used when no definitive certainty exists.