From: Wietse Venema
The technique may also be useful to block mail for undeliverable -recipients, for example on a mail relay host that does not have a +recipients, for example on a mail relay host that does not have a list of all the valid recipient addresses. This prevents undeliverable junk mail from entering the queue, so that Postfix doesn't have to waste resources trying to send MAILER-DAEMON messages back.
@@ -416,7 +416,9 @@ parameters when it delivers an address verification probe message.First, the address_verify_relayhost parameter allows you to override the relayhost setting, and the address_verify_transport_maps -parameter allows you to override the transport_maps setting.
+parameter allows you to override the transport_maps setting. +The address_verify_sender_dependent_relayhost_maps parameter +does the same for sender-dependent relayhost selection.Second, each address class is given its own address verification version of the message delivery transport, as shown in the table diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html index bea228c66..271364db1 100644 --- a/postfix/html/postconf.5.html +++ b/postfix/html/postconf.5.html @@ -333,7 +333,7 @@ This feature is available in Postfix 2.1 and later.
Overrides the relayhost parameter setting for address verification -probes. +probes. This information can be overruled with the transport(5) table.
@@ -373,11 +373,11 @@ This feature is available in Postfix 2.1 and later. -
-Overrides the sender_relayhost_maps parameter setting for address +Overrides the sender_dependent_relayhost_maps parameter setting for address verification probes.
@@ -589,7 +589,7 @@ $local_header_rewrite_cli -To get the behavior before Postfix 2.2, specify +
To get the behavior before Postfix version 2.2, specify "local_header_rewrite_clients = static:all".
@@ -675,7 +675,7 @@ are calculated.
This feature is implemented by the anvil(8) service which is not -part of the stable Postfix 2.1 release. +part of the stable Postfix version 2.1 release.
@@ -741,7 +741,7 @@ $local_header_rewrite_cli
- To get the behavior before Postfix 2.2, specify
+ To get the behavior before Postfix version 2.2, specify
"local_header_rewrite_clients = static:all". To get the behavior before Postfix 2.2, specify
+ To get the behavior before Postfix version 2.2, specify
"local_header_rewrite_clients = static:all".
Pathname of a configuration file with bounce message templates. -These override the bounce(8) server built-in templates of delivery -status notification (DSN) messages for undeliverable mail, for -delayed mail, for successful delivery, or for mail delivery -verification.
+These override the built-in templates of delivery status notification +(DSN) messages for undeliverable mail, for delayed mail, successful +delivery, or delivery verification. The bounce(5) manual page +describes how to edit and test template files. Template message body text may contain $name references to
Postfix configuration parameters. The result of $name expansion can
@@ -1208,7 +1208,7 @@ $local_header_rewrite_cli
- To get the behavior before Postfix 2.2, specify
+ To get the behavior before Postfix version 2.2, specify
"local_header_rewrite_clients = static:all".
@@ -1752,7 +1752,7 @@ address, or Recipient address.
-The default mail delivery transport for domains that do not match -$mydestination, $inet_interfaces, $proxy_interfaces, -$virtual_alias_domains, $virtual_mailbox_domains, or $relay_domains. -This information can be overruled with the transport(5) table. +The default mail delivery transport and next-hop destination for +destinations that do not match $mydestination, $inet_interfaces, +$proxy_interfaces, $virtual_alias_domains, $virtual_mailbox_domains, +or $relay_domains. In order of decreasing precedence, the nexthop +destination is taken from $default_transport, +$sender_dependent_relayhost_maps, $relayhost, or from the recipient +domain. This information can be overruled with the transport(5) +table.
@@ -2168,8 +2172,8 @@ created locally as the result of configuration or software error.
Report mail delivery errors to the address specified with the non-standard Errors-To: message header, instead of the envelope -sender address (this feature is removed with Postfix 2.2, is -turned off by default with Postfix 2.1, and is always turned on +sender address (this feature is removed with Postfix version 2.2, is +turned off by default with Postfix version 2.1, and is always turned on with older Postfix versions).
@@ -2191,7 +2195,7 @@ duplicate elimination on the rewritten recipient address only, and generates empty original recipient queue file records.This feature is available in Postfix 2.1 and later. With Postfix -2.0, support for the X-Original-To message header is always turned +version 2.0, support for the X-Original-To message header is always turned on. Postfix versions before 2.0 have no support for the X-Original-To message header.
@@ -2261,7 +2265,7 @@ time keeping on System-V-ish systems.Specify a list of names and/or name=value pairs, separated by whitespace or comma. The name=value form is supported with -Postfix 2.1 and later. +Postfix version 2.1 and later.
@@ -2284,7 +2288,7 @@ from message headers when mail is submitted with "sendmail -t".
-This feature was removed in Postfix 2.1. +This feature was removed in Postfix version 2.1.
@@ -2747,7 +2751,7 @@ parameters:Specify a list of names and/or name=value pairs, separated by whitespace or comma. The name=value form is supported with -Postfix 2.1 and later.
+Postfix version 2.1 and later.The network interface addresses that this mail system receives mail on. Specify "all" to receive mail on all network interfaces (default), and "loopback-only" to receive mail -on loopback network interfaces only (Postfix 2.2 and later). The +on loopback network interfaces only (Postfix version 2.2 and later). The parameter also controls delivery of mail to user@[ip.address].
@@ -2825,9 +2829,9 @@ Examples:inet_interfaces = all (DEFAULT) -inet_interfaces = loopback-only (Postfix 2.2 and later) +inet_interfaces = loopback-only (Postfix version 2.2 and later) inet_interfaces = 127.0.0.1 -inet_interfaces = 127.0.0.1, [::1] (Postfix 2.2 and later) +inet_interfaces = 127.0.0.1, [::1] (Postfix version 2.2 and later) inet_interfaces = 192.168.1.2, 127.0.0.1@@ -2843,7 +2847,7 @@ or "ipv6", separated by whitespace or commas. The form "all" is equivalent to "ipv4, ipv6" or "ipv4", depending on whether the operating system implements IPv6. -
This feature is available in Postfix version 2.2 and later.
+This feature is available in Postfix 2.2 and later.
Note: you MUST stop and start Postfix after changing this parameter.
@@ -3556,9 +3560,10 @@ Examples:The default mail delivery transport for domains that match -$mydestination, $inet_interfaces or $proxy_interfaces. This -information can be overruled with the transport(5) table.
+The default mail delivery transport and next-hop destination +for final delivery to domains listed with mydestination, and for +[ipaddress] destinations that match $inet_interfaces or $proxy_interfaces. +This information can be overruled with the transport(5) table.
By default, local mail is delivered to the transport called "local", @@ -3691,7 +3696,7 @@ or daemon. PLEASE USE A DEDICATED USER ID AND GROUP ID.
When this parameter value is changed you need to re-run "postfix -set-permissions" (with Postfix 2.0 and earlier: +set-permissions" (with Postfix version 2.0 and earlier: "/etc/postfix/post-install set-permissions".
@@ -3769,22 +3774,22 @@ The following environment variables are exported to the command:To get the behavior before Postfix 2.2, specify +
To get the behavior before Postfix version 2.2, specify "local_header_rewrite_clients = static:all".
@@ -5039,7 +5044,7 @@ server to decide if it will accept any mail at all.
-By default, the Postfix 2.1 SMTP server rejects MAIL FROM commands +By default, the Postfix version 2.1 SMTP server rejects MAIL FROM commands when the amount of free space is less than 1.5*$message_size_limit. To specify a higher minimum free space limit, specify a queue_minfree value that is at least 1.5*$message_size_limit. @@ -5338,7 +5343,7 @@ D7:04:2F:A7:0B:8C:A5:21:FA:31:77:E1:41:8A:EE:80 lutzpc.at.home
an appropriate access(5) policy for each client. See RESTRICTION_CLASS_README. -This feature is available with Postfix 2.2.
+This feature is available with Postfix version 2.2.
@@ -5351,7 +5356,7 @@ via the relay message delivery transport. This limit is enforced by the queue manager. The message delivery transport name is the first field in the entry in the master.cf file. -This feature is available in Postfix version 2.0 and later.
+This feature is available in Postfix 2.0 and later.
@@ -5368,7 +5373,7 @@ the entry in the master.cf file. relay_destination_concurrency_limit from concurrency per domain into concurrency per recipient. -This feature is available in Postfix version 2.0 and later.
+This feature is available in Postfix 2.0 and later.
@@ -5458,9 +5463,12 @@ This feature is available in Postfix 2.0 and later. (default: relay)-The default mail delivery transport and next-hop information for -domains that match the $relay_domains parameter value. This -information can be overruled with the transport(5) table. +The default mail delivery transport and next-hop destination for +remote delivery to domains listed with $relay_domains. In order of +decreasing precedence, the nexthop destination is taken from +$relay_transport, $sender_dependent_relayhost_maps, $relayhost, or +from the recipient domain. This information can be overruled with +the transport(5) table.
@@ -5486,9 +5494,10 @@ This feature is available in Postfix 2.0 and later. (default: empty)
-The default host to send non-local mail to when no entry is matched -in the optional transport(5) table. When no relayhost is given, -mail is routed directly to the destination. +The next-hop destination of non-local mail; overrides non-local +domains in recipient addresses. This information is overruled with +relay_transport, default_transport, sender_dependent_relayhost_maps +and with the transport(5) table.
@@ -5619,7 +5628,7 @@ backup MX service for Sendmail systems.
local hostname were specified, instead of rejecting the address as invalid. -This feature is available in Postfix version 2.1 and later. +
This feature is available in Postfix 2.1 and later. Earlier versions always resolve the null domain as the local hostname.
@@ -5660,8 +5669,8 @@ The name of the directory with example Postfix configuration files. (default: no)-This parameter should not be used. It was replaced by sender_relayhost_maps -in Postfix 2.3. +This parameter should not be used. It was replaced by sender_dependent_relayhost_maps +in Postfix version 2.3.
@@ -5772,12 +5781,13 @@ Example:A sender-specific override for the global relayhost parameter +
A sender-dependent override for the global relayhost parameter setting. The tables are searched by the sender address and by the -sender @domain.
+sender @domain. This information is overruled with relay_transport, +default_transport and with the transport(5) table.This feature is available in Postfix 2.3 and later. @@ -5820,7 +5830,7 @@ The default time unit is s (seconds).
The group ownership of set-gid Postfix commands and of group-writable Postfix directories. When this parameter value is changed you need -to re-run "postfix set-permissions" (with Postfix 2.0 and +to re-run "postfix set-permissions" (with Postfix version 2.0 and earlier: "/etc/postfix/post-install set-permissions".
@@ -5913,7 +5923,7 @@ An optional numerical network address that the SMTP client should bind to when making an IPv6 connection. -This feature is available in Postfix version 2.2 and later.
+This feature is available in Postfix 2.2 and later.
This can be specified in the main.cf file for all SMTP clients, or @@ -6068,7 +6078,7 @@ delivery latency becomes effectively that of the slowest MX host divided by the total number of MX hosts.
The solution uses connection caching in a way that differs from -Postfix 2.2. By limiting the amount of time during which a connection +Postfix version 2.2. By limiting the amount of time during which a connection can be used repeatedly (instead of limiting the number of deliveries over that connection), Postfix not only restores fairness in the distribution of simultaneous connections across a set of MX hosts, @@ -6080,7 +6090,7 @@ smtp transaction timeouts which are fair estimates of maximum excess latency for a slow delivery. Note that hosts may accept thousands of messages over a single connection within the default connection reuse time limit. This number is much larger than the default Postfix -2.2 limit of 10 messages per cached connection. It may prove necessary +version 2.2 limit of 10 messages per cached connection. It may prove necessary to lower the limit to avoid interoperability issues with MTAs that exhibit bugs when many messages are delivered via a single connection. A lower reuse time limit risks losing the benefit of connection @@ -6400,7 +6410,7 @@ The default time unit is s (seconds).
The maximal number of MX (mail exchanger) IP addresses that can result from mail exchanger lookups, or zero (no limit). Prior to -Postfix 2.3, this limit was disabled by default. +Postfix version 2.3, this limit was disabled by default.
@@ -6416,8 +6426,8 @@ This feature is available in Postfix 2.1 and later.
The maximal number of SMTP sessions per delivery request before giving up or delivering to a fall-back relay host, or zero (no limit). This restriction ignores sessions that fail to complete the -SMTP initial handshake (Postfix 2.2 and earlier) or that fail to -complete the EHLO and TLS handshake (Postfix 2.3 and later).
+SMTP initial handshake (Postfix version 2.2 and earlier) or that fail to +complete the EHLO and TLS handshake (Postfix version 2.3 and later).This feature is available in Postfix 2.1 and later.
@@ -6431,23 +6441,6 @@ complete the EHLO and TLS handshake (Postfix 2.3 and later). smtp_always_send_ehlo parameter. --Enable per-sender authentication in the SMTP client; this is available -only with SASL authentication, and disables SMTP connection caching -to ensure that mail from different senders will use the appropriate -credentials. -
- --This feature is available in Postfix 2.3 and later. -
- -Optional SMTP client lookup tables with one username:password entry -per remote hostname or domain (or per sender address, when per-sender -authentication is enabled). If no username:password entry is found, +per remote hostname or domain, or sender address when sender-dependent +authentication is enabled. If no username:password entry is found, then the Postfix SMTP client will not attempt to authenticate to the remote host.
@@ -6726,6 +6719,22 @@ This feature is available in Postfix 2.1 and later. + + ++Enable sender-dependent authentication in the SMTP client; this is +available only with SASL authentication, and disables SMTP connection +caching to ensure that mail from different senders will use the +appropriate credentials.
+ ++This feature is available in Postfix 2.3 and later. +
+ +This feature is available in Postfix version 2.0 and earlier. +
This feature is available in Postfix 2.0 and earlier. Later Postfix versions always skip SMTP servers that greet with a 4XX status code.
@@ -7104,8 +7113,8 @@ time with a per recipient return address.By default, no clients are allowed to specify XVERP.
-This parameter was renamed with Postfix 2.1. The default value -is backwards compatible with Postfix 2.0.
+This parameter was renamed with Postfix version 2.1. The default value +is backwards compatible with Postfix version 2.0.
Specify a list of network/netmask patterns, separated by commas and/or whitespace. The mask specifies the number of bits in the @@ -7467,7 +7476,7 @@ client network address information.
With Postfix 2.1 and later: the SMTP server response delay after +
With Postfix version 2.1 and later: the SMTP server response delay after a client has made more than $smtpd_soft_error_limit errors, and fewer than $smtpd_hard_error_limit errors, without delivering mail.
-With Postfix 2.0 and earlier: the SMTP server delay before +
With Postfix version 2.0 and earlier: the SMTP server delay before sending a reject (4xx or 5xx) response, when the client has made fewer than $smtpd_soft_error_limit errors without delivering mail.
@@ -8388,7 +8397,7 @@ parameter specifies the response code for rejected requests (default: 554); the default_rbl_reply parameter specifies the default server reply; and the rbl_reply_maps parameter specifies tables with server replies indexed by rbl_domain. This feature is available -in Postfix 2.0 and later.To get the behavior before Postfix 2.2, specify +
To get the behavior before Postfix version 2.2, specify "local_header_rewrite_clients = static:all".
@@ -9924,7 +9933,7 @@ in the ADDRESS_CLASS_README file
This feature is available in Postfix 2.0 and later. The default -value is backwards compatible with Postfix 1.1. +value is backwards compatible with Postfix version 1.1.
@@ -9986,7 +9995,7 @@ manipulations see the ADDRESS_REWRITING_
This feature is available in Postfix 2.0 and later. The default
-value is backwards compatible with Postfix 1.1.
+value is backwards compatible with Postfix version 1.1.
@@ -10124,7 +10133,7 @@ configuration parameter.
This feature is available in Postfix 2.0 and later. The default
-value is backwards compatible with Postfix 1.1.
+value is backwards compatible with Postfix version 1.1.
-The default mail delivery transport for domains that match the -$virtual_mailbox_domains parameter value. This information can -be overruled with the transport(5) table. +The default mail delivery transport and next-hop destination for +final delivery to domains listed with virtual_mailbox_domains. +This information can be overruled with the transport(5) table.
diff --git a/postfix/html/smtp.8.html b/postfix/html/smtp.8.html
index f7be280cf..65b2ff9db 100644
--- a/postfix/html/smtp.8.html
+++ b/postfix/html/smtp.8.html
@@ -188,9 +188,9 @@ SMTP(8) SMTP(8)
smtp_sasl_password_maps (empty)
Optional SMTP client lookup tables with one user-
- name:password entry per remote hostname or domain
- (or per sender, when per-sender authentication is
- enabled).
+ name:password entry per remote hostname or domain,
+ or sender address when sender-dependent authentica-
+ tion is enabled.
smtp_sasl_security_options (noplaintext, noanonymous)
What authentication mechanisms the Postfix SMTP
@@ -205,8 +205,8 @@ SMTP(8) SMTP(8)
Available in Postfix version 2.3 and later:
- smtp_per_sender_authentication (no)
- Enable per-sender authentication in the SMTP
+ smtp_sender_dependent_authentication (no)
+ Enable sender-dependent authentication in the SMTP
client; this is available only with SASL authenti-
cation, and disables SMTP connection caching to
ensure that mail from different senders will use
diff --git a/postfix/html/transport.5.html b/postfix/html/transport.5.html
index a0263aad0..5e9225f39 100644
--- a/postfix/html/transport.5.html
+++ b/postfix/html/transport.5.html
@@ -41,15 +41,15 @@ TRANSPORT(5) TRANSPORT(5)
This is the default for remote delivery to domains
listed with relay_domains. In order of decreasing
precedence, the nexthop destination is taken from
- relay_transport, sender_relayhost_maps, relayhost,
- or from the recipient domain.
+ relay_transport, sender_dependent_relayhost_maps,
+ relayhost, or from the recipient domain.
default_transport (default: smtp:)
This is the default for remote delivery to other
destinations. In order of decreasing precedence,
the nexthop destination is taken from
- default_transport, sender_relayhost_maps, relay-
- host, or from the recipient domain.
+ default_transport, sender_dependent_relayhost_maps,
+ relayhost, or from the recipient domain.
Normally, the transport(5) table is specified as a text
file that serves as input to the postmap(1) command. The
@@ -114,8 +114,8 @@ TRANSPORT(5) TRANSPORT(5)
.domain transport:nexthop
Deliver mail for any subdomain of domain through
transport to nexthop. This applies only when the
- string transport_maps is not listed in the par-
- ent_domain_matches_subdomains configuration set-
+ string transport_maps is not listed in the par-
+ ent_domain_matches_subdomains configuration set-
ting. Otherwise, a domain name matches itself and
its subdomains.
diff --git a/postfix/html/trivial-rewrite.8.html b/postfix/html/trivial-rewrite.8.html
index 9bb40a081..1aaa7183d 100644
--- a/postfix/html/trivial-rewrite.8.html
+++ b/postfix/html/trivial-rewrite.8.html
@@ -36,10 +36,10 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
the local domain to spam from poorly written
remote clients.
- resolve address
- Resolve an address to a (transport, nexthop, recip-
- ient, flags) quadruple. The meaning of the results
- is as follows:
+ resolve sender address
+ Resolve the address to a (transport, nexthop,
+ recipient, flags) quadruple. The meaning of the
+ results is as follows:
transport
The delivery agent to use. This is the first
@@ -57,8 +57,8 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
requires relaying, whether the address has
problems, and whether the request failed.
- verify address
- Resolve an address for address verification pur-
+ verify sender address
+ Resolve the address for address verification pur-
poses.
SERVER PROCESS MANAGEMENT
@@ -145,36 +145,38 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
virtual_mailbox_domains or proxy_interfaces.
local_transport (local:$myhostname)
- The default mail delivery transport for domains
- that match $mydestination, $inet_interfaces or
- $proxy_interfaces.
+ The default mail delivery transport and next-hop
+ destination for final delivery to domains listed
+ with mydestination, and for [ipaddress] destina-
+ tions that match $inet_interfaces or $proxy_inter-
+ faces.
virtual_transport (virtual)
- The default mail delivery transport for domains
- that match the $virtual_mailbox_domains parameter
- value.
+ The default mail delivery transport and next-hop
+ destination for final delivery to domains listed
+ with virtual_mailbox_domains.
relay_transport (relay)
The default mail delivery transport and next-hop
- information for domains that match the
- $relay_domains parameter value.
+ destination for remote delivery to domains listed
+ with $relay_domains.
default_transport (smtp)
- The default mail delivery transport for domains
- that do not match $mydestination, $inet_interfaces,
- $proxy_interfaces, $virtual_alias_domains, $vir-
- tual_mailbox_domains, or $relay_domains.
+ The default mail delivery transport and next-hop
+ destination for destinations that do not match
+ $mydestination, $inet_interfaces, $proxy_inter-
+ faces, $virtual_alias_domains, $virtual_mail-
+ box_domains, or $relay_domains.
- parent_domain_matches_subdomains (see 'postconf -d' out-
+ parent_domain_matches_subdomains (see 'postconf -d' out-
put)
What Postfix features match subdomains of
"domain.tld" automatically, instead of requiring an
explicit ".domain.tld" pattern.
relayhost (empty)
- The default host to send non-local mail to when no
- entry is matched in the optional transport(5) ta-
- ble.
+ The next-hop destination of non-local mail; over-
+ rides non-local domains in recipient addresses.
transport_maps (empty)
Optional lookup tables with mappings from recipient
@@ -183,9 +185,9 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
Available in Postfix version 2.3 and later:
- sender_relayhost_maps (empty)
- A sender-specific override for the global relayhost
- parameter setting.
+ sender_dependent_relayhost_maps (empty)
+ A sender-dependent override for the global relay-
+ host parameter setting.
ADDRESS VERIFICATION CONTROLS
Postfix version 2.1 introduces sender and recipient
@@ -216,26 +218,28 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
Overrides the relayhost parameter setting for
address verification probes.
- address_verify_sender_relayhost_maps (empty)
- Overrides the sender_relayhost_maps parameter set-
- ting for address verification probes.
-
address_verify_transport_maps ($transport_maps)
- Overrides the transport_maps parameter setting for
+ Overrides the transport_maps parameter setting for
address verification probes.
+ Available in Postfix version 2.3 and later:
+
+ address_verify_sender_dependent_relayhost_maps (empty)
+ Overrides the sender_dependent_relayhost_maps
+ parameter setting for address verification probes.
+
MISCELLANEOUS CONTROLS
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and
+ The default location of the Postfix main.cf and
master.cf configuration files.
daemon_timeout (18000s)
- How much time a Postfix daemon process may take to
- handle a request before it is terminated by a
+ How much time a Postfix daemon process may take to
+ handle a request before it is terminated by a
built-in watchdog timer.
empty_address_recipient (MAILER-DAEMON)
- The recipient of mail addressed to the null
+ The recipient of mail addressed to the null
address.
ipc_timeout (3600s)
@@ -243,12 +247,12 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
over an internal communication channel.
max_idle (100s)
- The maximum amount of time that an idle Postfix
- daemon process waits for the next service request
+ The maximum amount of time that an idle Postfix
+ daemon process waits for the next service request
before exiting.
max_use (100)
- The maximal number of connection requests before a
+ The maximal number of connection requests before a
Postfix daemon process terminates.
relocated_maps (empty)
@@ -256,33 +260,33 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
for users or domains that no longer exist.
process_id (read-only)
- The process ID of a Postfix command or daemon
+ The process ID of a Postfix command or daemon
process.
process_name (read-only)
- The process name of a Postfix command or daemon
+ The process name of a Postfix command or daemon
process.
queue_directory (see 'postconf -d' output)
- The location of the Postfix top-level queue direc-
+ The location of the Postfix top-level queue direc-
tory.
show_user_unknown_table_name (yes)
- Display the name of the recipient table in the
+ Display the name of the recipient table in the
"User unknown" responses.
syslog_facility (mail)
The syslog facility of Postfix logging.
syslog_name (postfix)
- The mail system name that is prepended to the
- process name in syslog records, so that "smtpd"
+ The mail system name that is prepended to the
+ process name in syslog records, so that "smtpd"
becomes, for example, "postfix/smtpd".
Available in Postfix version 2.0 and later:
helpful_warnings (yes)
- Log warnings about problematic configuration set-
+ Log warnings about problematic configuration set-
tings, and provide helpful suggestions.
SEE ALSO
@@ -297,7 +301,7 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
ADDRESS_VERIFICATION_README, Postfix address verification
LICENSE
- The Secure Mailer license must be distributed with this
+ The Secure Mailer license must be distributed with this
software.
AUTHOR(S)
diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5
index 481151606..4d4a5de7e 100644
--- a/postfix/man/man5/postconf.5
+++ b/postfix/man/man5/postconf.5
@@ -172,7 +172,7 @@ verification probes.
This feature is available in Postfix 2.1 and later.
.SH address_verify_relayhost (default: $relayhost)
Overrides the relayhost parameter setting for address verification
-probes.
+probes. This information can be overruled with the \fBtransport\fR(5) table.
.PP
This feature is available in Postfix 2.1 and later.
.SH address_verify_sender (default: postmaster)
@@ -197,8 +197,8 @@ address_verify_sender = postmaster@my.domain
.ft R
.PP
This feature is available in Postfix 2.1 and later.
-.SH address_verify_sender_relayhost_maps (default: empty)
-Overrides the sender_relayhost_maps parameter setting for address
+.SH address_verify_sender_dependent_relayhost_maps (default: empty)
+Overrides the sender_dependent_relayhost_maps parameter setting for address
verification probes.
.PP
This feature is available in Postfix 2.3 and later.
@@ -322,7 +322,7 @@ $local_header_rewrite_clients,
The message is received from the network, and the
remote_header_rewrite_domain parameter specifies a non-empty value.
.PP
-To get the behavior before Postfix 2.2, specify
+To get the behavior before Postfix version 2.2, specify
"local_header_rewrite_clients = static:all".
.PP
Example:
@@ -369,7 +369,7 @@ The time unit over which client connection rates and other rates
are calculated.
.PP
This feature is implemented by the \fBanvil\fR(8) service which is not
-part of the stable Postfix 2.1 release.
+part of the stable Postfix version 2.1 release.
.PP
The default interval is relatively short. Because of the high
frequency of updates, the \fBanvil\fR(8) server uses volatile memory
@@ -404,7 +404,7 @@ $local_header_rewrite_clients,
The message is received from the network, and the
remote_header_rewrite_domain parameter specifies a non-empty value.
.PP
-To get the behavior before Postfix 2.2, specify
+To get the behavior before Postfix version 2.2, specify
"local_header_rewrite_clients = static:all".
.SH append_dot_mydomain (default: yes)
With locally submitted mail, append the string ".$mydomain" to
@@ -427,7 +427,7 @@ $local_header_rewrite_clients,
The message is received from the network, and the
remote_header_rewrite_domain parameter specifies a non-empty value.
.PP
-To get the behavior before Postfix 2.2, specify
+To get the behavior before Postfix version 2.2, specify
"local_header_rewrite_clients = static:all".
.SH application_event_drain_time (default: 100s)
How long the \fBpostkick\fR(1) command waits for a request to enter the
@@ -606,10 +606,10 @@ this limit, then you should increase the mime_nesting_limit value
proportionally.
.SH bounce_template_file (default: empty)
Pathname of a configuration file with bounce message templates.
-These override the \fBbounce\fR(8) server built-in templates of delivery
-status notification (DSN) messages for undeliverable mail, for
-delayed mail, for successful delivery, or for mail delivery
-verification.
+These override the built-in templates of delivery status notification
+(DSN) messages for undeliverable mail, for delayed mail, successful
+delivery, or delivery verification. The \fBbounce\fR(5) manual page
+describes how to edit and test template files.
.PP
Template message body text may contain $name references to
Postfix configuration parameters. The result of $name expansion can
@@ -661,7 +661,7 @@ $local_header_rewrite_clients,
The message is received from the network, and the
remote_header_rewrite_domain parameter specifies a non-empty value.
.PP
-To get the behavior before Postfix 2.2, specify
+To get the behavior before Postfix version 2.2, specify
"local_header_rewrite_clients = static:all".
.PP
Examples:
@@ -953,7 +953,7 @@ address, or Recipient address.
The numerical SMTP response code, as specified with the
maps_rbl_reject_code configuration parameter. Note: The numerical
SMTP response code is required, and must appear at the start of the
-reply. With Postfix 2.3 and later this information may be followed
+reply. With Postfix version 2.3 and later this information may be followed
by an RFC 3463 enhanced status code.
.IP "\fB$rbl_domain\fR"
The RBL domain where $rbl_what is blacklisted.
@@ -1001,10 +1001,14 @@ qmgr_message_recipient_limit after the message has been assigned
to the respective transports. See also default_extra_recipient_limit
and qmgr_message_recipient_minimum.
.SH default_transport (default: smtp)
-The default mail delivery transport for domains that do not match
-$mydestination, $inet_interfaces, $proxy_interfaces,
-$virtual_alias_domains, $virtual_mailbox_domains, or $relay_domains.
-This information can be overruled with the \fBtransport\fR(5) table.
+The default mail delivery transport and next-hop destination for
+destinations that do not match $mydestination, $inet_interfaces,
+$proxy_interfaces, $virtual_alias_domains, $virtual_mailbox_domains,
+or $relay_domains. In order of decreasing precedence, the nexthop
+destination is taken from $default_transport,
+$sender_dependent_relayhost_maps, $relayhost, or from the recipient
+domain. This information can be overruled with the \fBtransport\fR(5)
+table.
.PP
Specify a string of the form \fItransport:nexthop\fR, where \fItransport\fR
is the name of a mail delivery transport defined in master.cf.
@@ -1155,8 +1159,8 @@ created locally as the result of configuration or software error.
.SH enable_errors_to (default: no)
Report mail delivery errors to the address specified with the
non-standard Errors-To: message header, instead of the envelope
-sender address (this feature is removed with Postfix 2.2, is
-turned off by default with Postfix 2.1, and is always turned on
+sender address (this feature is removed with Postfix version 2.2, is
+turned off by default with Postfix version 2.1, and is always turned on
with older Postfix versions).
.SH enable_original_recipient (default: yes)
Enable support for the X-Original-To message header. This header
@@ -1172,7 +1176,7 @@ duplicate elimination on the rewritten recipient address only, and
generates empty original recipient queue file records.
.PP
This feature is available in Postfix 2.1 and later. With Postfix
-2.0, support for the X-Original-To message header is always turned
+version 2.0, support for the X-Original-To message header is always turned
on. Postfix versions before 2.0 have no support for the X-Original-To
message header.
.SH error_notice_recipient (default: postmaster)
@@ -1203,7 +1207,7 @@ time keeping on System-V-ish systems.
.PP
Specify a list of names and/or name=value pairs, separated by
whitespace or comma. The name=value form is supported with
-Postfix 2.1 and later.
+Postfix version 2.1 and later.
.PP
Example:
.PP
@@ -1218,7 +1222,7 @@ export_environment = TZ PATH=/bin:/usr/bin
The maximal number of recipient addresses that Postfix will extract
from message headers when mail is submitted with "\fBsendmail -t\fR".
.PP
-This feature was removed in Postfix 2.1.
+This feature was removed in Postfix version 2.1.
.SH fallback_relay (default: empty)
Optional list of relay hosts for SMTP destinations that can't be
found or that are unreachable.
@@ -1444,7 +1448,7 @@ Needed to make "\fBpostfix -c\fR" work.
.PP
Specify a list of names and/or name=value pairs, separated by
whitespace or comma. The name=value form is supported with
-Postfix 2.1 and later.
+Postfix version 2.1 and later.
.SH in_flow_delay (default: 1s)
Time to pause before accepting a new message, when the message
arrival rate exceeds the message delivery rate. This feature is
@@ -1459,7 +1463,7 @@ Specify 0 to disable the feature. Valid delays are 0..10.
The network interface addresses that this mail system receives
mail on. Specify "all" to receive mail on all network
interfaces (default), and "loopback-only" to receive mail
-on loopback network interfaces only (Postfix 2.2 and later). The
+on loopback network interfaces only (Postfix version 2.2 and later). The
parameter also controls delivery of mail to user@[ip.address].
.PP
Note 1: you need to stop and start Postfix when this parameter changes.
@@ -1498,9 +1502,9 @@ Examples:
.na
.ft C
inet_interfaces = all (DEFAULT)
-inet_interfaces = loopback-only (Postfix 2.2 and later)
+inet_interfaces = loopback-only (Postfix version 2.2 and later)
inet_interfaces = 127.0.0.1
-inet_interfaces = 127.0.0.1, [::1] (Postfix 2.2 and later)
+inet_interfaces = 127.0.0.1, [::1] (Postfix version 2.2 and later)
inet_interfaces = 192.168.1.2, 127.0.0.1
.fi
.ad
@@ -1512,7 +1516,7 @@ or "ipv6", separated by whitespace or commas. The form
"all" is equivalent to "ipv4, ipv6" or "ipv4", depending
on whether the operating system implements IPv6.
.PP
-This feature is available in Postfix version 2.2 and later.
+This feature is available in Postfix 2.2 and later.
.PP
Note: you MUST stop and start Postfix after changing this
parameter.
@@ -1934,9 +1938,10 @@ local_recipient_maps =
.ad
.ft R
.SH local_transport (default: local:$myhostname)
-The default mail delivery transport for domains that match
-$mydestination, $inet_interfaces or $proxy_interfaces. This
-information can be overruled with the \fBtransport\fR(5) table.
+The default mail delivery transport and next-hop destination
+for final delivery to domains listed with mydestination, and for
+[ipaddress] destinations that match $inet_interfaces or $proxy_interfaces.
+This information can be overruled with the \fBtransport\fR(5) table.
.PP
By default, local mail is delivered to the transport called "local",
which is just the name of a service that is defined the master.cf file.
@@ -2008,7 +2013,7 @@ or processes on the system. In particular, don't specify nobody
or daemon. PLEASE USE A DEDICATED USER ID AND GROUP ID.
.PP
When this parameter value is changed you need to re-run "\fBpostfix
-set-permissions\fR" (with Postfix 2.0 and earlier:
+set-permissions\fR" (with Postfix version 2.0 and earlier:
"\fB/etc/postfix/post-install set-permissions\fR".
.SH mail_release_date (default: see "postconf -d" output)
The Postfix release date, in "YYYYMMDD" format.
@@ -2047,15 +2052,15 @@ aliased to a real user and 2) don't log in as root, use "su" instead.
.PP
The following environment variables are exported to the command:
.IP "\fBCLIENT_ADDRESS\fR"
-Remote client network address. Available in Postfix 2.2 and
+Remote client network address. Available in Postfix version 2.2 and
later.
.IP "\fBCLIENT_HELO\fR"
-Remote client EHLO command parameter. Available in Postfix 2.2
+Remote client EHLO command parameter. Available in Postfix version 2.2
and later.
.IP "\fBCLIENT_HOSTNAME\fR"
-Remote client hostname. Available in Postfix 2.2 and later.
+Remote client hostname. Available in Postfix version 2.2 and later.
.IP "\fBCLIENT_PROTOCOL\fR"
-Remote client protocol. Available in Postfix 2.2 and later.
+Remote client protocol. Available in Postfix version 2.2 and later.
.IP "\fBDOMAIN\fR"
The domain part of the recipient address.
.IP "\fBEXTENSION\fR"
@@ -2070,13 +2075,13 @@ The recipient's username.
The full recipient address.
.IP "\fBSASL_METHOD\fR"
SASL authentication method specified in the remote client AUTH
-command. Available in Postfix 2.2 and later.
+command. Available in Postfix version 2.2 and later.
.IP "\fBSASL_SENDER\fR"
SASL sender address specified in the remote client MAIL FROM
-command. Available in Postfix 2.2 and later.
+command. Available in Postfix version 2.2 and later.
.IP "\fBSASL_USER\fR"
SASL username specified in the remote client AUTH command.
-Available in Postfix 2.2 and later.
+Available in Postfix version 2.2 and later.
.IP "\fBSENDER\fR"
The full sender address.
.IP "\fBSHELL\fR"
@@ -2218,7 +2223,7 @@ $local_header_rewrite_clients,
The message is received from the network, and the
remote_header_rewrite_domain parameter specifies a non-empty value.
.PP
-To get the behavior before Postfix 2.2, specify
+To get the behavior before Postfix version 2.2, specify
"local_header_rewrite_clients = static:all".
.PP
Example:
@@ -2759,7 +2764,7 @@ The minimal amount of free space in bytes in the queue file system
that is needed to receive mail. This is currently used by the SMTP
server to decide if it will accept any mail at all.
.PP
-By default, the Postfix 2.1 SMTP server rejects MAIL FROM commands
+By default, the Postfix version 2.1 SMTP server rejects MAIL FROM commands
when the amount of free space is less than 1.5*$message_size_limit.
To specify a higher minimum free space limit, specify a queue_minfree
value that is at least 1.5*$message_size_limit.
@@ -2947,14 +2952,14 @@ For more fine-grained control, use check_ccert_access to select
an appropriate \fBaccess\fR(5) policy for each client.
See RESTRICTION_CLASS_README.
.PP
-This feature is available with Postfix 2.2.
+This feature is available with Postfix version 2.2.
.SH relay_destination_concurrency_limit (default: $default_destination_concurrency_limit)
The maximal number of parallel deliveries to the same destination
via the relay message delivery transport. This limit is enforced
by the queue manager. The message delivery transport name is the
first field in the entry in the master.cf file.
.PP
-This feature is available in Postfix version 2.0 and later.
+This feature is available in Postfix 2.0 and later.
.SH relay_destination_recipient_limit (default: $default_destination_recipient_limit)
The maximal number of recipients per delivery via the relay
message delivery transport. This limit is enforced by the queue
@@ -2965,7 +2970,7 @@ Setting this parameter to a value of 1 changes the meaning of
relay_destination_concurrency_limit from concurrency per domain
into concurrency per recipient.
.PP
-This feature is available in Postfix version 2.0 and later.
+This feature is available in Postfix 2.0 and later.
.SH relay_domains (default: $mydestination)
What destination domains (and subdomains thereof) this system
will relay mail to. Subdomain matching is controlled with the
@@ -3022,9 +3027,12 @@ relay_recipient_maps = hash:/etc/postfix/relay_recipients
.PP
This feature is available in Postfix 2.0 and later.
.SH relay_transport (default: relay)
-The default mail delivery transport and next-hop information for
-domains that match the $relay_domains parameter value. This
-information can be overruled with the \fBtransport\fR(5) table.
+The default mail delivery transport and next-hop destination for
+remote delivery to domains listed with $relay_domains. In order of
+decreasing precedence, the nexthop destination is taken from
+$relay_transport, $sender_dependent_relayhost_maps, $relayhost, or
+from the recipient domain. This information can be overruled with
+the \fBtransport\fR(5) table.
.PP
Specify a string of the form \fItransport:nexthop\fR, where \fItransport\fR
is the name of a mail delivery transport defined in master.cf.
@@ -3036,9 +3044,10 @@ file.
.PP
This feature is available in Postfix 2.0 and later.
.SH relayhost (default: empty)
-The default host to send non-local mail to when no entry is matched
-in the optional \fBtransport\fR(5) table. When no relayhost is given,
-mail is routed directly to the destination.
+The next-hop destination of non-local mail; overrides non-local
+domains in recipient addresses. This information is overruled with
+relay_transport, default_transport, sender_dependent_relayhost_maps
+and with the \fBtransport\fR(5) table.
.PP
On an intranet, specify the organizational domain name. If your
internal DNS uses no MX records, specify the name of the intranet
@@ -3138,7 +3147,7 @@ Resolve an address that ends in the "@" null domain as if the
local hostname were specified, instead of rejecting the address as
invalid.
.PP
-This feature is available in Postfix version 2.1 and later.
+This feature is available in Postfix 2.1 and later.
Earlier versions always resolve the null domain as the local
hostname.
.PP
@@ -3154,8 +3163,8 @@ This feature is available in Postfix 2.0 and later.
.SH sample_directory (default: /etc/postfix)
The name of the directory with example Postfix configuration files.
.SH sender_based_routing (default: no)
-This parameter should not be used. It was replaced by sender_relayhost_maps
-in Postfix 2.3.
+This parameter should not be used. It was replaced by sender_dependent_relayhost_maps
+in Postfix version 2.3.
.SH sender_bcc_maps (default: empty)
Optional BCC (blind carbon-copy) address lookup tables, indexed
by sender address. The BCC address (multiple results are not
@@ -3228,10 +3237,11 @@ sender_canonical_maps = hash:/etc/postfix/sender_canonical
.fi
.ad
.ft R
-.SH sender_relayhost_maps (default: empty)
-A sender-specific override for the global relayhost parameter
+.SH sender_dependent_relayhost_maps (default: empty)
+A sender-dependent override for the global relayhost parameter
setting. The tables are searched by the sender address and by the
-sender @domain.
+sender @domain. This information is overruled with relay_transport,
+default_transport and with the \fBtransport\fR(5) table.
.PP
This feature is available in Postfix 2.3 and later.
.SH sendmail_path (default: see "postconf -d" output)
@@ -3247,7 +3257,7 @@ The default time unit is s (seconds).
.SH setgid_group (default: postdrop)
The group ownership of set-gid Postfix commands and of group-writable
Postfix directories. When this parameter value is changed you need
-to re-run "\fBpostfix set-permissions\fR" (with Postfix 2.0 and
+to re-run "\fBpostfix set-permissions\fR" (with Postfix version 2.0 and
earlier: "\fB/etc/postfix/post-install set-permissions\fR".
.SH show_user_unknown_table_name (default: yes)
Display the name of the recipient table in the "User unknown"
@@ -3295,7 +3305,7 @@ but this form is not recommended here.
An optional numerical network address that the SMTP client should
bind to when making an IPv6 connection.
.PP
-This feature is available in Postfix version 2.2 and later.
+This feature is available in Postfix 2.2 and later.
.PP
This can be specified in the main.cf file for all SMTP clients, or
it can be specified in the master.cf file for a specific client,
@@ -3403,7 +3413,7 @@ delivery latency becomes effectively that of the slowest MX host
divided by the total number of MX hosts.
.PP
The solution uses connection caching in a way that differs from
-Postfix 2.2. By limiting the amount of time during which a connection
+Postfix version 2.2. By limiting the amount of time during which a connection
can be used repeatedly (instead of limiting the number of deliveries
over that connection), Postfix not only restores fairness in the
distribution of simultaneous connections across a set of MX hosts,
@@ -3415,7 +3425,7 @@ smtp transaction timeouts which are fair estimates of maximum excess
latency for a slow delivery. Note that hosts may accept thousands
of messages over a single connection within the default connection
reuse time limit. This number is much larger than the default Postfix
-2.2 limit of 10 messages per cached connection. It may prove necessary
+version 2.2 limit of 10 messages per cached connection. It may prove necessary
to lower the limit to avoid interoperability issues with MTAs that
exhibit bugs when many messages are delivered via a single connection.
A lower reuse time limit risks losing the benefit of connection
@@ -3580,27 +3590,20 @@ The default time unit is s (seconds).
.SH smtp_mx_address_limit (default: 5)
The maximal number of MX (mail exchanger) IP addresses that can
result from mail exchanger lookups, or zero (no limit). Prior to
-Postfix 2.3, this limit was disabled by default.
+Postfix version 2.3, this limit was disabled by default.
.PP
This feature is available in Postfix 2.1 and later.
.SH smtp_mx_session_limit (default: 2)
The maximal number of SMTP sessions per delivery request before
giving up or delivering to a fall-back relay host, or zero (no
limit). This restriction ignores sessions that fail to complete the
-SMTP initial handshake (Postfix 2.2 and earlier) or that fail to
-complete the EHLO and TLS handshake (Postfix 2.3 and later).
+SMTP initial handshake (Postfix version 2.2 and earlier) or that fail to
+complete the EHLO and TLS handshake (Postfix version 2.3 and later).
.PP
This feature is available in Postfix 2.1 and later.
.SH smtp_never_send_ehlo (default: no)
Never send EHLO at the start of an SMTP session. See also the
smtp_always_send_ehlo parameter.
-.SH smtp_per_sender_authentication (default: no)
-Enable per-sender authentication in the SMTP client; this is available
-only with SASL authentication, and disables SMTP connection caching
-to ensure that mail from different senders will use the appropriate
-credentials.
-.PP
-This feature is available in Postfix 2.3 and later.
.SH smtp_pix_workaround_delay_time (default: 10s)
How long the Postfix SMTP client pauses before sending
". First, the address_verify_relayhost parameter allows you to
override the relayhost setting, and the address_verify_transport_maps
-parameter allows you to override the transport_maps setting.
Second, each address class is given its own address verification version of the message delivery transport, as shown in the table diff --git a/postfix/proto/postconf.proto b/postfix/proto/postconf.proto index 2809d39f6..35230c37a 100644 --- a/postfix/proto/postconf.proto +++ b/postfix/proto/postconf.proto @@ -333,7 +333,7 @@ This feature is available in Postfix 2.1 and later.
Overrides the relayhost parameter setting for address verification -probes. +probes. This information can be overruled with the transport(5) table.
@@ -526,7 +526,7 @@ remote_header_rewrite_domain parameter specifies a non-empty value. -
To get the behavior before Postfix 2.2, specify +
To get the behavior before Postfix version 2.2, specify "local_header_rewrite_clients = static:all".
@@ -718,7 +718,7 @@ remote_header_rewrite_domain parameter specifies a non-empty value. -
To get the behavior before Postfix 2.2, specify +
To get the behavior before Postfix version 2.2, specify "local_header_rewrite_clients = static:all".
@@ -1006,7 +1006,7 @@ address, or Recipient address.
-The default mail delivery transport for domains that do not match -$mydestination, $inet_interfaces, $proxy_interfaces, -$virtual_alias_domains, $virtual_mailbox_domains, or $relay_domains. -This information can be overruled with the transport(5) table. +The default mail delivery transport and next-hop destination for +destinations that do not match $mydestination, $inet_interfaces, +$proxy_interfaces, $virtual_alias_domains, $virtual_mailbox_domains, +or $relay_domains. In order of decreasing precedence, the nexthop +destination is taken from $default_transport, +$sender_dependent_relayhost_maps, $relayhost, or from the recipient +domain. This information can be overruled with the transport(5) +table.
@@ -1208,7 +1212,7 @@ duplicate elimination on the rewritten recipient address only, and generates empty original recipient queue file records.
This feature is available in Postfix 2.1 and later. With Postfix -2.0, support for the X-Original-To message header is always turned +version 2.0, support for the X-Original-To message header is always turned on. Postfix versions before 2.0 have no support for the X-Original-To message header.
@@ -1223,7 +1227,7 @@ time keeping on System-V-ish systems.Specify a list of names and/or name=value pairs, separated by whitespace or comma. The name=value form is supported with -Postfix 2.1 and later. +Postfix version 2.1 and later.
@@ -1626,7 +1630,7 @@ parameters:
Specify a list of names and/or name=value pairs, separated by whitespace or comma. The name=value form is supported with -Postfix 2.1 and later.
+Postfix version 2.1 and later. %PARAM in_flow_delay 1s @@ -1650,7 +1654,7 @@ Specify 0 to disable the feature. Valid delays are 0..10.The network interface addresses that this mail system receives mail on. Specify "all" to receive mail on all network interfaces (default), and "loopback-only" to receive mail -on loopback network interfaces only (Postfix 2.2 and later). The +on loopback network interfaces only (Postfix version 2.2 and later). The parameter also controls delivery of mail to user@[ip.address].
@@ -1696,9 +1700,9 @@ Examples:inet_interfaces = all (DEFAULT) -inet_interfaces = loopback-only (Postfix 2.2 and later) +inet_interfaces = loopback-only (Postfix version 2.2 and later) inet_interfaces = 127.0.0.1 -inet_interfaces = 127.0.0.1, [::1] (Postfix 2.2 and later) +inet_interfaces = 127.0.0.1, [::1] (Postfix version 2.2 and later) inet_interfaces = 192.168.1.2, 127.0.0.1@@ -1710,7 +1714,7 @@ or "ipv6", separated by whitespace or commas. The form "all" is equivalent to "ipv4, ipv6" or "ipv4", depending on whether the operating system implements IPv6. -
This feature is available in Postfix version 2.2 and later.
+This feature is available in Postfix 2.2 and later.
Note: you MUST stop and start Postfix after changing this parameter.
@@ -2091,9 +2095,10 @@ local_recipient_maps = %PARAM local_transport local:$myhostname -The default mail delivery transport for domains that match -$mydestination, $inet_interfaces or $proxy_interfaces. This -information can be overruled with the transport(5) table.
+The default mail delivery transport and next-hop destination +for final delivery to domains listed with mydestination, and for +[ipaddress] destinations that match $inet_interfaces or $proxy_interfaces. +This information can be overruled with the transport(5) table.
By default, local mail is delivered to the transport called "local", @@ -2214,7 +2219,7 @@ or daemon. PLEASE USE A DEDICATED USER ID AND GROUP ID.
When this parameter value is changed you need to re-run "postfix -set-permissions" (with Postfix 2.0 and earlier: +set-permissions" (with Postfix version 2.0 and earlier: "/etc/postfix/post-install set-permissions".
@@ -2270,22 +2275,22 @@ The following environment variables are exported to the command:To get the behavior before Postfix 2.2, specify +
To get the behavior before Postfix version 2.2, specify "local_header_rewrite_clients = static:all".
@@ -3001,7 +3006,7 @@ server to decide if it will accept any mail at all.-By default, the Postfix 2.1 SMTP server rejects MAIL FROM commands +By default, the Postfix version 2.1 SMTP server rejects MAIL FROM commands when the amount of free space is less than 1.5*$message_size_limit. To specify a higher minimum free space limit, specify a queue_minfree value that is at least 1.5*$message_size_limit. @@ -3274,9 +3279,10 @@ This feature is available in Postfix 2.0 and later. %PARAM relayhost
-The default host to send non-local mail to when no entry is matched -in the optional transport(5) table. When no relayhost is given, -mail is routed directly to the destination. +The next-hop destination of non-local mail; overrides non-local +domains in recipient addresses. This information is overruled with +relay_transport, default_transport, sender_dependent_relayhost_maps +and with the transport(5) table.
@@ -3362,7 +3368,7 @@ backup MX service for Sendmail systems.
local hostname were specified, instead of rejecting the address as invalid. -This feature is available in Postfix version 2.1 and later. +
This feature is available in Postfix 2.1 and later. Earlier versions always resolve the null domain as the local hostname.
@@ -3498,7 +3504,7 @@ An optional numerical network address that the SMTP client should bind to when making an IPv6 connection. -This feature is available in Postfix version 2.2 and later.
+This feature is available in Postfix 2.2 and later.
This can be specified in the main.cf file for all SMTP clients, or @@ -3565,7 +3571,7 @@ delivery latency becomes effectively that of the slowest MX host divided by the total number of MX hosts.
The solution uses connection caching in a way that differs from -Postfix 2.2. By limiting the amount of time during which a connection +Postfix version 2.2. By limiting the amount of time during which a connection can be used repeatedly (instead of limiting the number of deliveries over that connection), Postfix not only restores fairness in the distribution of simultaneous connections across a set of MX hosts, @@ -3577,7 +3583,7 @@ smtp transaction timeouts which are fair estimates of maximum excess latency for a slow delivery. Note that hosts may accept thousands of messages over a single connection within the default connection reuse time limit. This number is much larger than the default Postfix -2.2 limit of 10 messages per cached connection. It may prove necessary +version 2.2 limit of 10 messages per cached connection. It may prove necessary to lower the limit to avoid interoperability issues with MTAs that exhibit bugs when many messages are delivered via a single connection. A lower reuse time limit risks losing the benefit of connection @@ -3738,7 +3744,7 @@ via the relay message delivery transport. This limit is enforced by the queue manager. The message delivery transport name is the first field in the entry in the master.cf file.
-This feature is available in Postfix version 2.0 and later.
+This feature is available in Postfix 2.0 and later.
%PARAM relay_destination_recipient_limit $default_destination_recipient_limit @@ -3751,7 +3757,7 @@ the entry in the master.cf file. relay_destination_concurrency_limit from concurrency per domain into concurrency per recipient. -This feature is available in Postfix version 2.0 and later.
+This feature is available in Postfix 2.0 and later.
%PARAM smtp_destination_concurrency_limit $default_destination_concurrency_limit @@ -3890,7 +3896,7 @@ The default time unit is s (seconds).The maximal number of MX (mail exchanger) IP addresses that can result from mail exchanger lookups, or zero (no limit). Prior to -Postfix 2.3, this limit was disabled by default. +Postfix version 2.3, this limit was disabled by default.
@@ -3902,8 +3908,8 @@ This feature is available in Postfix 2.1 and later.
The maximal number of SMTP sessions per delivery request before giving up or delivering to a fall-back relay host, or zero (no limit). This restriction ignores sessions that fail to complete the -SMTP initial handshake (Postfix 2.2 and earlier) or that fail to -complete the EHLO and TLS handshake (Postfix 2.3 and later).
+SMTP initial handshake (Postfix version 2.2 and earlier) or that fail to +complete the EHLO and TLS handshake (Postfix version 2.3 and later).This feature is available in Postfix 2.1 and later.
@@ -4002,8 +4008,8 @@ smtp_sasl_auth_enable = yesOptional SMTP client lookup tables with one username:password entry -per remote hostname or domain (or per sender address, when per-sender -authentication is enabled). If no username:password entry is found, +per remote hostname or domain, or sender address when sender-dependent +authentication is enabled. If no username:password entry is found, then the Postfix SMTP client will not attempt to authenticate to the remote host.
@@ -4117,7 +4123,7 @@ By default, Postfix moves on the next mail exchanger. Specify immediately. -This feature is available in Postfix version 2.0 and earlier. +
This feature is available in Postfix 2.0 and earlier. Later Postfix versions always skip SMTP servers that greet with a 4XX status code.
@@ -4192,8 +4198,8 @@ time with a per recipient return address.By default, no clients are allowed to specify XVERP.
-This parameter was renamed with Postfix 2.1. The default value -is backwards compatible with Postfix 2.0.
+This parameter was renamed with Postfix version 2.1. The default value +is backwards compatible with Postfix version 2.0.
Specify a list of network/netmask patterns, separated by commas and/or whitespace. The mask specifies the number of bits in the @@ -4515,7 +4521,7 @@ client network address information.
When the error counter is less than $smtpd_soft_error_limit the -Postfix SMTP server replies immediately (Postfix 2.0 and earlier +Postfix SMTP server replies immediately (Postfix version 2.0 and earlier delay their 4xx or 5xx error response).
When the error counter reaches $smtpd_soft_error_limit, the Postfix @@ -4764,12 +4770,12 @@ SMTP server breaks the connection.
%PARAM smtpd_error_sleep_time 1s -With Postfix 2.1 and later: the SMTP server response delay after +
With Postfix version 2.1 and later: the SMTP server response delay after a client has made more than $smtpd_soft_error_limit errors, and fewer than $smtpd_hard_error_limit errors, without delivering mail.
-With Postfix 2.0 and earlier: the SMTP server delay before +
With Postfix version 2.0 and earlier: the SMTP server delay before sending a reject (4xx or 5xx) response, when the client has made fewer than $smtpd_soft_error_limit errors without delivering mail.
@@ -5234,7 +5240,7 @@ parameter specifies the response code for rejected requests (default: 554); the default_rbl_reply parameter specifies the default server reply; and the rbl_reply_maps parameter specifies tables with server replies indexed by rbl_domain. This feature is available -in Postfix 2.0 and later. +in Postfix version 2.0 and later.To get the behavior before Postfix 2.2, specify +
To get the behavior before Postfix version 2.2, specify "local_header_rewrite_clients = static:all".
@@ -5944,7 +5950,7 @@ in the ADDRESS_CLASS_README file
This feature is available in Postfix 2.0 and later. The default -value is backwards compatible with Postfix 1.1. +value is backwards compatible with Postfix version 1.1.
@@ -5998,7 +6004,7 @@ manipulations see the ADDRESS_REWRITING_README document.
This feature is available in Postfix 2.0 and later. The default -value is backwards compatible with Postfix 1.1. +value is backwards compatible with Postfix version 1.1.
@@ -6117,7 +6123,7 @@ remote_header_rewrite_domain parameter specifies a non-empty value. -
To get the behavior before Postfix 2.2, specify +
To get the behavior before Postfix version 2.2, specify "local_header_rewrite_clients = static:all".
%PARAM append_dot_mydomain yes @@ -6150,7 +6156,7 @@ remote_header_rewrite_domain parameter specifies a non-empty value. -To get the behavior before Postfix 2.2, specify +
To get the behavior before Postfix version 2.2, specify "local_header_rewrite_clients = static:all".
%PARAM application_event_drain_time 100s @@ -6331,8 +6337,8 @@ The default time unit is s (seconds).Report mail delivery errors to the address specified with the non-standard Errors-To: message header, instead of the envelope -sender address (this feature is removed with Postfix 2.2, is -turned off by default with Postfix 2.1, and is always turned on +sender address (this feature is removed with Postfix version 2.2, is +turned off by default with Postfix version 2.1, and is always turned on with older Postfix versions).
%PARAM extract_recipient_limit 10240 @@ -6343,7 +6349,7 @@ from message headers when mail is submitted with "sendmail -t".-This feature was removed in Postfix 2.1. +This feature was removed in Postfix version 2.1.
%PARAM anvil_rate_time_unit 60s @@ -6355,7 +6361,7 @@ are calculated.This feature is implemented by the anvil(8) service which is not -part of the stable Postfix 2.1 release. +part of the stable Postfix version 2.1 release.
@@ -6434,7 +6440,7 @@ encoded in the envelope sender address. The VERP_README file describes configuration and operation details of Postfix support for variable envelope return path addresses. VERP style delivery is requested with the SMTP XVERP command or with the "sendmail --V" command-line option and is available in Postfix version +-V" command-line option and is available in Postfix 1.1 and later.
@@ -7071,9 +7077,12 @@ configure or operate a specific Postfix subsystem or feature. %PARAM relay_transport relay-The default mail delivery transport and next-hop information for -domains that match the $relay_domains parameter value. This -information can be overruled with the transport(5) table. +The default mail delivery transport and next-hop destination for +remote delivery to domains listed with $relay_domains. In order of +decreasing precedence, the nexthop destination is taken from +$relay_transport, $sender_dependent_relayhost_maps, $relayhost, or +from the recipient domain. This information can be overruled with +the transport(5) table.
@@ -7113,8 +7122,8 @@ The name of the directory with example Postfix configuration files. %PARAM sender_based_routing no
-This parameter should not be used. It was replaced by sender_relayhost_maps -in Postfix 2.3. +This parameter should not be used. It was replaced by sender_dependent_relayhost_maps +in Postfix version 2.3.
%PARAM sendmail_path see "postconf -d" output @@ -7142,7 +7151,7 @@ The default time unit is s (seconds).The group ownership of set-gid Postfix commands and of group-writable Postfix directories. When this parameter value is changed you need -to re-run "postfix set-permissions" (with Postfix 2.0 and +to re-run "postfix set-permissions" (with Postfix version 2.0 and earlier: "/etc/postfix/post-install set-permissions".
@@ -7617,7 +7626,7 @@ configuration parameter.This feature is available in Postfix 2.0 and later. The default -value is backwards compatible with Postfix 1.1. +value is backwards compatible with Postfix version 1.1.
%PARAM virtual_mailbox_limit 51200000 @@ -7704,9 +7713,9 @@ deferred. %PARAM virtual_transport virtual-The default mail delivery transport for domains that match the -$virtual_mailbox_domains parameter value. This information can -be overruled with the transport(5) table. +The default mail delivery transport and next-hop destination for +final delivery to domains listed with virtual_mailbox_domains. +This information can be overruled with the transport(5) table.
@@ -7779,7 +7788,7 @@ parameter in the default main.cf file.
addresses are aliased to addresses in other local or remote domains, and b) addresses that are aliased to addresses in other local or remote domains. Available before Postfix version 2.0. With Postfix -2.0 and later, this is replaced by separate controls: virtual_alias_domains +version 2.0 and later, this is replaced by separate controls: virtual_alias_domains and virtual_alias_maps. %PARAM smtp_discard_ehlo_keywords @@ -8230,7 +8239,7 @@ relay_clientcerts = hash:/etc/postfix/relay_clientcerts an appropriate access(5) policy for each client. See RESTRICTION_CLASS_README. -This feature is available with Postfix 2.2.
+This feature is available with Postfix version 2.2.
%PARAM smtpd_tls_cipherlist @@ -8694,10 +8703,10 @@ precision. %PARAM bounce_template_file emptyPathname of a configuration file with bounce message templates. -These override the bounce(8) server built-in templates of delivery -status notification (DSN) messages for undeliverable mail, for -delayed mail, for successful delivery, or for mail delivery -verification.
+These override the built-in templates of delivery status notification +(DSN) messages for undeliverable mail, for delayed mail, successful +delivery, or delivery verification. The bounce(5) manual page +describes how to edit and test template files.Template message body text may contain $name references to Postfix configuration parameters. The result of $name expansion can @@ -8706,20 +8715,21 @@ is placed into the Postfix configuration directory.
This feature is available in Postfix 2.3 and later.
-%PARAM sender_relayhost_maps empty +%PARAM sender_dependent_relayhost_maps empty -A sender-specific override for the global relayhost parameter +
A sender-dependent override for the global relayhost parameter setting. The tables are searched by the sender address and by the -sender @domain.
+sender @domain. This information is overruled with relay_transport, +default_transport and with the transport(5) table.This feature is available in Postfix 2.3 and later.
-%PARAM address_verify_sender_relayhost_maps empty +%PARAM address_verify_sender_dependent_relayhost_maps empty-Overrides the sender_relayhost_maps parameter setting for address +Overrides the sender_dependent_relayhost_maps parameter setting for address verification probes.
@@ -8727,14 +8737,13 @@ verification probes. This feature is available in Postfix 2.3 and later. -%PARAM smtp_per_sender_authentication no +%PARAM smtp_sender_dependent_authentication no-Enable per-sender authentication in the SMTP client; this is available -only with SASL authentication, and disables SMTP connection caching -to ensure that mail from different senders will use the appropriate -credentials. -
+Enable sender-dependent authentication in the SMTP client; this is +available only with SASL authentication, and disables SMTP connection +caching to ensure that mail from different senders will use the +appropriate credentials.
This feature is available in Postfix 2.3 and later.
diff --git a/postfix/proto/transport b/postfix/proto/transport
index f096779f4..8ad53e2cc 100644
--- a/postfix/proto/transport
+++ b/postfix/proto/transport
@@ -30,13 +30,13 @@
# This is the default for remote delivery to domains listed
# with \fBrelay_domains\fR. In order of decreasing precedence,
# the \fInexthop\fR destination is taken from \fBrelay_transport\fR,
-# \fBsender_relayhost_maps\fR, \fBrelayhost\fR, or from the
+# \fBsender_dependent_relayhost_maps\fR, \fBrelayhost\fR, or from the
# recipient domain.
# .IP "\fBdefault_transport (default: smtp:)\fR"
# This is the default for remote delivery to other destinations.
# In order of decreasing precedence, the \fInexthop\fR
# destination is taken from \fBdefault_transport\fR,
-# \fBsender_relayhost_maps\fR, \fBrelayhost\fR, or from the
+# \fBsender_dependent_relayhost_maps\fR, \fBrelayhost\fR, or from the
# recipient domain.
# .PP
# Normally, the \fBtransport\fR(5) table is specified as a text file
diff --git a/postfix/src/bounce/bounce_template.c b/postfix/src/bounce/bounce_template.c
index eb2e0167d..99ded0966 100644
--- a/postfix/src/bounce/bounce_template.c
+++ b/postfix/src/bounce/bounce_template.c
@@ -407,6 +407,7 @@ static const char *bounce_template_lookup(const char *key, int unused_mode,
tp->origin, tp->class, key);
msg_warn("please reduce time unit \"%s\" of \"%s\" "
"in %s template", bd->suffix, key, tp->class);
+ msg_warn("for instructions see the bounce(5) manual");
}
if (buf == 0)
buf = vstring_alloc(10);
diff --git a/postfix/src/global/mail_params.h b/postfix/src/global/mail_params.h
index 1f76e7ca8..fc513fe02 100644
--- a/postfix/src/global/mail_params.h
+++ b/postfix/src/global/mail_params.h
@@ -185,7 +185,7 @@ extern char *var_masq_classes;
#define DEF_RELAYHOST ""
extern char *var_relayhost;
-#define VAR_SND_RELAY_MAPS "sender_relayhost_maps"
+#define VAR_SND_RELAY_MAPS "sender_dependent_relayhost_maps"
#define DEF_SND_RELAY_MAPS ""
extern char *var_snd_relay_maps;
@@ -2156,7 +2156,7 @@ extern char *var_vrfy_def_xport;
#define DEF_VRFY_RELAYHOST "$" VAR_RELAYHOST
extern char *var_vrfy_relayhost;
-#define VAR_VRFY_RELAY_MAPS "address_verify_sender_relayhost_maps"
+#define VAR_VRFY_RELAY_MAPS "address_verify_sender_dependent_relayhost_maps"
#define DEF_VRFY_RELAY_MAPS "$" VAR_SND_RELAY_MAPS
extern char *var_vrfy_relay_maps;
@@ -2413,9 +2413,9 @@ extern int var_delay_max_res;
extern char *var_bounce_tmpl;
/*
- * Per-sender authentication.
+ * Sender-dependent authentication.
*/
-#define VAR_SMTP_SENDER_AUTH "smtp_per_sender_authentication"
+#define VAR_SMTP_SENDER_AUTH "smtp_sender_dependent_authentication"
#define DEF_SMTP_SENDER_AUTH 0
extern bool var_smtp_sender_auth;
diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h
index 731c190b4..143d31f27 100644
--- a/postfix/src/global/mail_version.h
+++ b/postfix/src/global/mail_version.h
@@ -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 "20051124"
+#define MAIL_RELEASE_DATE "20051125"
#define MAIL_VERSION_NUMBER "2.3"
#ifdef SNAPSHOT
diff --git a/postfix/src/global/resolve_clnt.c b/postfix/src/global/resolve_clnt.c
index 123d0fe68..7dd7147a3 100644
--- a/postfix/src/global/resolve_clnt.c
+++ b/postfix/src/global/resolve_clnt.c
@@ -22,10 +22,20 @@
/* const char *address;
/* RESOLVE_REPLY *reply;
/*
+/* void resolve_clnt_query_from(sender, address, reply)
+/* const char *sender;
+/* const char *address;
+/* RESOLVE_REPLY *reply;
+/*
/* void resolve_clnt_verify(address, reply)
/* const char *address;
/* RESOLVE_REPLY *reply;
/*
+/* void resolve_clnt_verify_from(sender, address, reply)
+/* const char *sender;
+/* const char *address;
+/* RESOLVE_REPLY *reply;
+/*
/* void resolve_clnt_free(reply)
/* RESOLVE_REPLY *reply;
/* DESCRIPTION
@@ -44,6 +54,10 @@
/* resolve_clnt_verify() implements an alternative version that can
/* be used for address verification.
/*
+/* resolve_clnt_query_from() and resolve_clnt_verify_from()
+/* allow the caller to supply sender context that will be used
+/* for sender-dependent relayhost lookup.
+/*
/* In the resolver reply, the flags member is the bit-wise OR of
/* zero or more of the following:
/* .IP RESOLVE_FLAG_FINAL
@@ -59,9 +73,6 @@
/* The address resolved to something that has invalid syntax.
/* .IP RESOLVE_FLAG_FAIL
/* The request could not be completed.
-/* .IP RESOLVE_FLAG_SMARTHOST
-/* The client may override the next-hop host with per-sender
-/* relay host information.
/* .PP
/* In addition, the address domain class is returned by setting
/* one of the following flags (this is preliminary code awaiting
@@ -131,6 +142,7 @@
extern CLNT_STREAM *rewrite_clnt_stream;
static VSTRING *last_class;
+static VSTRING *last_sender;
static VSTRING *last_addr;
static RESOLVE_REPLY last_reply;
@@ -146,7 +158,8 @@ void resolve_clnt_init(RESOLVE_REPLY *reply)
/* resolve_clnt - resolve address to (transport, next hop, recipient) */
-void resolve_clnt(const char *class, const char *addr, RESOLVE_REPLY *reply)
+void resolve_clnt(const char *class, const char *sender,
+ const char *addr, RESOLVE_REPLY *reply)
{
char *myname = "resolve_clnt";
VSTREAM *stream;
@@ -157,6 +170,7 @@ void resolve_clnt(const char *class, const char *addr, RESOLVE_REPLY *reply)
*/
if (last_addr == 0) {
last_class = vstring_alloc(10);
+ last_sender = vstring_alloc(10);
last_addr = vstring_alloc(100);
resolve_clnt_init(&last_reply);
}
@@ -176,14 +190,15 @@ void resolve_clnt(const char *class, const char *addr, RESOLVE_REPLY *reply)
#define IFSET(flag, text) ((reply->flags & (flag)) ? (text) : "")
if (*addr && strcmp(addr, STR(last_addr)) == 0
- && strcmp(class, STR(last_class)) == 0) {
+ && strcmp(class, STR(last_class)) == 0
+ && strcmp(sender, STR(last_sender)) == 0) {
vstring_strcpy(reply->transport, STR(last_reply.transport));
vstring_strcpy(reply->nexthop, STR(last_reply.nexthop));
vstring_strcpy(reply->recipient, STR(last_reply.recipient));
reply->flags = last_reply.flags;
if (msg_verbose)
- msg_info("%s: cached: `%s' -> transp=`%s' host=`%s' rcpt=`%s' flags=%s%s%s%s class=%s%s%s%s%s",
- myname, addr, STR(reply->transport),
+ msg_info("%s: cached: `%s' -> `%s' -> transp=`%s' host=`%s' rcpt=`%s' flags=%s%s%s%s class=%s%s%s%s%s",
+ myname, sender, addr, STR(reply->transport),
STR(reply->nexthop), STR(reply->recipient),
IFSET(RESOLVE_FLAG_FINAL, "final"),
IFSET(RESOLVE_FLAG_ROUTED, "routed"),
@@ -213,6 +228,7 @@ void resolve_clnt(const char *class, const char *addr, RESOLVE_REPLY *reply)
errno = 0;
if (attr_print(stream, ATTR_FLAG_NONE,
ATTR_TYPE_STR, MAIL_ATTR_REQ, class,
+ ATTR_TYPE_STR, MAIL_ATTR_SENDER, sender,
ATTR_TYPE_STR, MAIL_ATTR_ADDR, addr,
ATTR_TYPE_END) != 0
|| vstream_fflush(stream)
@@ -258,6 +274,7 @@ void resolve_clnt(const char *class, const char *addr, RESOLVE_REPLY *reply)
* Update the cache.
*/
vstring_strcpy(last_class, class);
+ vstring_strcpy(last_sender, sender);
vstring_strcpy(last_addr, addr);
vstring_strcpy(last_reply.transport, STR(reply->transport));
vstring_strcpy(last_reply.nexthop, STR(reply->nexthop));
diff --git a/postfix/src/global/resolve_clnt.h b/postfix/src/global/resolve_clnt.h
index 8f012a133..a198bfdaf 100644
--- a/postfix/src/global/resolve_clnt.h
+++ b/postfix/src/global/resolve_clnt.h
@@ -26,7 +26,6 @@
#define RESOLVE_FLAG_ROUTED (1<<1) /* routed destination */
#define RESOLVE_FLAG_ERROR (1<<2) /* bad destination syntax */
#define RESOLVE_FLAG_FAIL (1<<3) /* request failed */
-#define RESOLVE_FLAG_SMARTHOST (1<<4) /* smarthost route */
#define RESOLVE_CLASS_LOCAL (1<<8) /* mydestination/inet_interfaces */
#define RESOLVE_CLASS_ALIAS (1<<9) /* virtual_alias_domains */
@@ -46,14 +45,23 @@ typedef struct RESOLVE_REPLY {
VSTRING *nexthop;
VSTRING *recipient;
int flags;
-} RESOLVE_REPLY;
+} RESOLVE_REPLY;
extern void resolve_clnt_init(RESOLVE_REPLY *);
-extern void resolve_clnt(const char *, const char *, RESOLVE_REPLY *);
+extern void resolve_clnt(const char *, const char *, const char *, RESOLVE_REPLY *);
extern void resolve_clnt_free(RESOLVE_REPLY *);
-#define resolve_clnt_query(a, r) resolve_clnt(RESOLVE_REGULAR, (a), (r))
-#define resolve_clnt_verify(a, r) resolve_clnt(RESOLVE_VERIFY, (a), (r))
+#define RESOLVE_NULL_FROM ""
+
+#define resolve_clnt_query(a, r) \
+ resolve_clnt(RESOLVE_REGULAR, RESOLVE_NULL_FROM, (a), (r))
+#define resolve_clnt_verify(a, r) \
+ resolve_clnt(RESOLVE_VERIFY, RESOLVE_NULL_FROM, (a), (r))
+
+#define resolve_clnt_query_from(f, a, r) \
+ resolve_clnt(RESOLVE_REGULAR, (f), (a), (r))
+#define resolve_clnt_verify_from(f, a, r) \
+ resolve_clnt(RESOLVE_VERIFY, (f), (a), (r))
#define RESOLVE_CLNT_ASSIGN(reply, transport, nexthop, recipient) { \
(reply).transport = (transport); \
diff --git a/postfix/src/global/tok822.h b/postfix/src/global/tok822.h
index 23ddfbef0..11432965a 100644
--- a/postfix/src/global/tok822.h
+++ b/postfix/src/global/tok822.h
@@ -105,7 +105,9 @@ extern TOK822 *tok822_rewrite(TOK822 *, const char *);
/*
* tok822_resolve.c
*/
-extern void tok822_resolve(TOK822 *, RESOLVE_REPLY *);
+#define tok822_resolve(t, r) tok822_resolve_from(RESOLVE_NULL_FROM, (t), (r))
+
+extern void tok822_resolve_from(const char *, TOK822 *, RESOLVE_REPLY *);
/* LICENSE
/* .ad
diff --git a/postfix/src/global/tok822_resolve.c b/postfix/src/global/tok822_resolve.c
index ae491ff2d..f178aaf9a 100644
--- a/postfix/src/global/tok822_resolve.c
+++ b/postfix/src/global/tok822_resolve.c
@@ -9,10 +9,18 @@
/* void tok822_resolve(addr, reply)
/* TOK822 *addr;
/* RESOLVE_REPLY *reply;
+/*
+/* void tok822_resolve_from(sender, addr, reply)
+/* const char *sender;
+/* TOK822 *addr;
+/* RESOLVE_REPLY *reply;
/* DESCRIPTION
/* tok822_resolve() takes an address token tree and finds out the
/* transport to deliver via, the next-hop host on that transport,
/* and the recipient relative to that host.
+/*
+/* tok822_resolve_from() allows the caller to specify sender context
+/* that will be used to look up sender-dependent relayhost information.
/* SEE ALSO
/* resolve_clnt(3) basic resolver client interface
/* LICENSE
@@ -42,7 +50,8 @@
/* tok822_resolve - address rewriting interface */
-void tok822_resolve(TOK822 *addr, RESOLVE_REPLY *reply)
+void tok822_resolve_from(const char *sender, TOK822 *addr,
+ RESOLVE_REPLY *reply)
{
VSTRING *intern_form = vstring_alloc(100);
@@ -54,9 +63,10 @@ void tok822_resolve(TOK822 *addr, RESOLVE_REPLY *reply)
* Shipping string forms is much simpler than shipping parse trees.
*/
tok822_internalize(intern_form, addr->head, TOK822_STR_DEFL);
- resolve_clnt_query(vstring_str(intern_form), reply);
+ resolve_clnt_query_from(sender, vstring_str(intern_form), reply);
if (msg_verbose)
- msg_info("tok822_resolve: addr=%s -> chan=%s, host=%s, rcpt=%s",
+ msg_info("tok822_resolve: from=%s addr=%s -> chan=%s, host=%s, rcpt=%s",
+ sender,
vstring_str(intern_form), vstring_str(reply->transport),
vstring_str(reply->nexthop), vstring_str(reply->recipient));
diff --git a/postfix/src/oqmgr/qmgr.c b/postfix/src/oqmgr/qmgr.c
index 319b56120..d666d3381 100644
--- a/postfix/src/oqmgr/qmgr.c
+++ b/postfix/src/oqmgr/qmgr.c
@@ -329,15 +329,10 @@ int var_local_con_lim; /* XXX */
int var_proc_limit;
bool var_verp_bounce_off;
int var_qmgr_clog_warn_time;
-char *var_snd_relay_maps;
-char *var_vrfy_relay_maps;
static QMGR_SCAN *qmgr_incoming;
static QMGR_SCAN *qmgr_deferred;
-MAPS *qmgr_snd_relay_maps;
-MAPS *qmgr_vrfy_relay_maps;
-
/* qmgr_deferred_run_event - queue manager heartbeat */
static void qmgr_deferred_run_event(int unused_event, char *dummy)
@@ -488,12 +483,6 @@ static void pre_accept(char *unused_name, char **unused_argv)
static void qmgr_pre_init(char *unused_name, char **unused_argv)
{
flush_init();
- if (*var_snd_relay_maps)
- qmgr_snd_relay_maps =
- maps_create(VAR_SND_RELAY_MAPS, var_snd_relay_maps, 0);
- if (*var_vrfy_relay_maps)
- qmgr_vrfy_relay_maps =
- maps_create(VAR_VRFY_RELAY_MAPS, var_vrfy_relay_maps, 0);
}
/* qmgr_post_init - post-jail initialization */
@@ -542,8 +531,6 @@ int main(int argc, char **argv)
{
static CONFIG_STR_TABLE str_table[] = {
VAR_DEFER_XPORTS, DEF_DEFER_XPORTS, &var_defer_xports, 0, 0,
- VAR_SND_RELAY_MAPS, DEF_SND_RELAY_MAPS, &var_snd_relay_maps, 0, 0,
- VAR_VRFY_RELAY_MAPS, DEF_VRFY_RELAY_MAPS, &var_vrfy_relay_maps, 0, 0,
0,
};
static CONFIG_TIME_TABLE time_table[] = {
diff --git a/postfix/src/oqmgr/qmgr.h b/postfix/src/oqmgr/qmgr.h
index 2630116bb..5966b8df8 100644
--- a/postfix/src/oqmgr/qmgr.h
+++ b/postfix/src/oqmgr/qmgr.h
@@ -25,7 +25,6 @@
*/
#include