Feature: specify "disable_verp_bounces = yes" to have
Postfix send one RFC-standard, non-VERP, bounce report for
- multi-recipient mail, even when VERP style delivery is
+ multi-recipient mail, even when VERP style delivery was
requested.
20010801
Bugfix: postconf was using unexpanded values internally
for myhostname, inet_interfaces, and mynetworks_style.
- This broke the default mynetworks setting calculation.
- File: postconf/postconf.c.
+ This broke the "postconf -d" mynetworks computation. File:
+ postconf/postconf.c.
20010803
address masquerading. The default setting is backwards
compatible: envelope_sender header_sender header_recipient.
Files: cleanup/whatever.c.
-
-20010806
-
- Bugfix: did not address masquerade the always_bcc recipient
- after extracting envelope recipients from message headers.
- File: cleanup/cleanup_extracted.c.
-
- Bugfix: did not address masquerade the envelope recipients
- extracted from message headers. File: cleanup/cleanup_message.c.
-Incompatible changes with snapshot-20010802
+Incompatible changes with snapshot-20010808
===========================================
-The default setting for the maps_rbl_domains parameter is "empty",
-because mail-abuse.org has become a subscription-based service.
+The default setting for the maps_rbl_domains parameter is now
+"empty", because mail-abuse.org has become a subscription-based
+service. The names of the RBL parameters haven't changed yet.
-The permit_mx_backup feature has changed. It accepts mail only when
-the primary MX hosts for the recipient match the networks that are
-specified with the new auth_permit_mx_backup configuration parameter.
-Postfix will not accept mail when permit_mx_backup is used while
-auth_permit_mx_backup is not configured.
+The permit_mx_backup feature has changed. It now accepts mail only
+when the primary MX hosts for the recipient match the networks that
+are specified with the new auth_mx_backup_networks configuration
+parameter. Postfix refuses to accept mail when permit_mx_backup
+is used while auth_mx_backup_networks is not configured.
The protocol between Postfix master and child processes has changed.
You must stop and start Postfix in order to switch between Snapshot
-20010801 and releases that implement the older protocol.
+20010808 and releases that implement the older protocol.
-Major changes with snapshot-20010802
+Major changes with snapshot-20010808
====================================
Specify "disable_verp_bounces = yes" to have Postfix send one
RFC-standard, non-VERP, bounce report for multi-recipient mail,
-even when VERP style delivery is requested.
+even when VERP style delivery was requested. This reduces the
+explosive behavior of bounces when sending mail to a list.
-Fine control over address masquerading. The masquerade_classes
-parameter controls header and envelope sender and recipient addresses.
+Finer control over address masquerading. The masquerade_classes
+parameter now controls header and envelope sender and recipient
+addresses. With earlier Postfix versions, address masquerading
+rewrote all addresses except for the envelope recipient.
+
+More rational behavior when a regexp or pcre map entry ends in
+whitespace (i.e. ignore it, instead of not recognizing REJECT).
+
+More rational behavior when multiple hosts in $inet_interfaces
+happen to have a common IP address (i.e. ignore the duplicate
+address, instead of having the Postfix master abort at startup).
Variable coupling between message receiving rates and message
delivery rates. When the message receiving rate exceeds the message
delivery rate, an SMTP server will pause for $in_flow_delay seconds
-(default: 1) before accepting a message. This delay gives Postfix
-a chance catch up and access the disk, while still allowing new
-mail to arrive.
+before accepting a message. This delay gives Postfix a chance
+catch up and access the disk, while still allowing new mail to
+arrive.
+
+This feature is disabled by default, because it needs further
+development. It will change but I have not enough time now.
The in_flow_delay feature has effect mainly when your system is
being flooded through a limited number of SMTP connections. This
-is useful for mass-mailing applications, because it eliminates the
-need to hand-tune the rate for sending mail into Postfix.
+is useful for mass-mailing applications, because it can avoid the
+need to hand-tune the optimal rate for sending mail into Postfix.
The in_flow_delay feature has negligible effect when mail arrives
via many different SMTP connections. With the default limit of 50
# INPUT RATE CONTROL
#
# The in_flow_delay configuration parameter implements mail input
-# flow control. By default, a Postfix process will pause for one
-# second before accepting a new message, when the message arrival
-# rate exceeds the message delivery rate. With the default 50 SMTP
-# server process limit, this limits the mail inflow to 50 messages
-# a second more than the number of messages delivered per second.
+# flow control. This feature is turned off by default because it
+# needs further development.
+#
+# A Postfix process will pause for $in_flow_delay seconds before
+# accepting a new message, when the message arrival rate exceeds the
+# message delivery rate. With the default 50 SMTP server process
+# limit, this limits the mail inflow to 50 messages a second more
+# than the number of messages delivered per second.
#
# Specify 0 to disable the feature. Valid delays are 0..10.
#
argv_add(rcpt, STR(clean_addr), (char *) 0);
}
argv_terminate(rcpt);
+
+ /*
+ * Recipients extracted from message headers already have
+ * undergone recipient address rewriting (see cleanup_message.c),
+ * but still may need address masquerading.
+ */
for (cpp = rcpt->argv; CLEANUP_OUT_OK(state) && *cpp; cpp++) {
if (cleanup_masq_domains
&& (cleanup_masq_flags & CLEANUP_MASQ_FLAG_ENV_RCPT)) {
if (cleanup_comm_canon_maps)
cleanup_map11_tree(state, *tpp, cleanup_comm_canon_maps,
cleanup_ext_prop_mask & EXT_PROP_CANONICAL);
+
+ /*
+ * Extract envelope recipients after recipient address rewriting but
+ * before address masquerading.
+ */
if (state->recip == 0 && (hdr_opts->flags & HDR_OPT_EXTRACT) != 0) {
rcpt = (hdr_opts->flags & HDR_OPT_RR) ?
state->resent_recip : state->recipients;
* Version of this program.
*/
#define VAR_MAIL_VERSION "mail_version"
-#define DEF_MAIL_VERSION "Snapshot-20010806"
+#define DEF_MAIL_VERSION "Snapshot-20010808"
extern char *var_mail_version;
/* LICENSE
#define TRYAGAIN 2
/*
- * Resolve this host into IP addresses, and check if thy are within
- * auth_mx_backup_networks
+ * Verify that all host addresses are within auth_mx_backup_networks.
*/
dns_status = dns_lookup(host, T_A, 0, &addr_list, (VSTRING *) 0, (VSTRING *) 0);
if (dns_status != DNS_OK)
if (!namadr_list_match(auth_mx_networks, host, inet_ntoa(addr))) {
/*
- * Reject: IP address not listed in auth_mx_backup_networks.
+ * Reject: at least one IP address is not listed in
+ * auth_mx_backup_networks.
*/
if (msg_verbose)
msg_info("%s: address %s does not match %s",
msg_warn("in the %s/sample-smtpd.cf configuration file.",
var_config_dir);
longjmp(smtpd_check_buf, smtpd_check_reject(state, MAIL_ERROR_SOFTWARE,
- "%d <%s>: Configuration error in %s",
+ "%d <%s>: Configuration error in %s",
451, recipient,
VAR_AUTH_MX_NETWORKS));
}
+++ /dev/null
-a
-1
-b
-2
-c
-3
-d
-4
-e
-5
-f
-6
-f
-e
-d
-c
-b
-a
-1
-b
-c
-d
-e
-f
-6
-f