diff --git a/postfix/HISTORY b/postfix/HISTORY index e57440d02..fdca8a3fa 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -5396,15 +5396,15 @@ Apologies for any names omitted. 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 @@ -5412,12 +5412,3 @@ Apologies for any names omitted. 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. diff --git a/postfix/RELEASE_NOTES b/postfix/RELEASE_NOTES index d5c715dc2..b3d204f9f 100644 --- a/postfix/RELEASE_NOTES +++ b/postfix/RELEASE_NOTES @@ -1,40 +1,54 @@ -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 diff --git a/postfix/conf/main.cf b/postfix/conf/main.cf index 9bd6bcd61..ccd3ddaf2 100644 --- a/postfix/conf/main.cf +++ b/postfix/conf/main.cf @@ -243,11 +243,14 @@ mail_owner = postfix # 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. # diff --git a/postfix/src/cleanup/cleanup_extracted.c b/postfix/src/cleanup/cleanup_extracted.c index eaa687a98..b9721bd88 100644 --- a/postfix/src/cleanup/cleanup_extracted.c +++ b/postfix/src/cleanup/cleanup_extracted.c @@ -165,6 +165,12 @@ static void cleanup_extracted_process(CLEANUP_STATE *state, int type, char *buf, 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)) { diff --git a/postfix/src/cleanup/cleanup_message.c b/postfix/src/cleanup/cleanup_message.c index 9d67e239b..2944e75da 100644 --- a/postfix/src/cleanup/cleanup_message.c +++ b/postfix/src/cleanup/cleanup_message.c @@ -223,6 +223,11 @@ static void cleanup_rewrite_recip(CLEANUP_STATE *state, HEADER_OPTS *hdr_opts) 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; diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index baf903f19..b088beb5a 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -15,7 +15,7 @@ * 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 diff --git a/postfix/src/smtpd/smtpd_check.c b/postfix/src/smtpd/smtpd_check.c index 01a4b74cc..f29b7204c 100644 --- a/postfix/src/smtpd/smtpd_check.c +++ b/postfix/src/smtpd/smtpd_check.c @@ -1043,8 +1043,7 @@ static int all_auth_mx_addr(char *host) #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) @@ -1062,7 +1061,8 @@ static int all_auth_mx_addr(char *host) 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", @@ -1242,7 +1242,7 @@ static int permit_auth_mx_backup(SMTPD_STATE *state, const char *recipient) 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)); } diff --git a/postfix/src/util/cache b/postfix/src/util/cache deleted file mode 100755 index 607a835a7..000000000 Binary files a/postfix/src/util/cache and /dev/null differ diff --git a/postfix/src/util/cache.in b/postfix/src/util/cache.in deleted file mode 100644 index 89974bd2c..000000000 --- a/postfix/src/util/cache.in +++ /dev/null @@ -1,26 +0,0 @@ -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