From: Wietse Venema Date: Wed, 9 Mar 2005 05:00:00 +0000 (-0500) Subject: postfix-2.3-20050309 X-Git-Tag: v2.3-RC1~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e52a07aa6535ae6a4244cc81264ebab2143202af;p=thirdparty%2Fpostfix.git postfix-2.3-20050309 --- diff --git a/postfix/README_FILES/ADDRESS_REWRITING_README b/postfix/README_FILES/ADDRESS_REWRITING_README index 8d4936e91..f433ec3a5 100644 --- a/postfix/README_FILES/ADDRESS_REWRITING_README +++ b/postfix/README_FILES/ADDRESS_REWRITING_README @@ -84,17 +84,19 @@ Postfix versions 2.2 give you the option to either not rewrite message headers from remote SMTP clients at all, or to label incomplete addresses in such message headers as invalid. Here is how it works: - * Postfix always rewrites message header addresses from local SMTP clients, - and from the Postfix sendmail command. The local_header_rewrite_clients - parameter controls what SMTP clients Postfix considers local (by default, - only local network interface addresses). + * Postfix always rewrites message headers from local SMTP clients and from + the Postfix sendmail command, and appends its own domain to incomplete + addresses. The local_header_rewrite_clients parameter controls what SMTP + clients Postfix considers local (by default, only local network interface + addresses). * Postfix never rewrites message header addresses from remote SMTP clients when the remote_header_rewrite_domain parameter value is empty (the default setting). - * Otherwise, Postfix appends the remote_header_rewrite_domain value to - incomplete message header addresses from remote SMTP clients. This feature - can be used to append a reserved domain such as "domain.invalid", so that - incomplete addresses cannot be mistaken for local addresses. + * Otherwise, Postfix rewrites message headers from remote SMTP clients, and + appends the remote_header_rewrite_domain value to incomplete addresses. + This feature can be used to append a reserved domain such as + "domain.invalid", so that incomplete addresses cannot be mistaken for local + addresses. PPoossttffiixx aaddddrreessss rreewwrriittiinngg oovveerrvviieeww @@ -214,12 +216,6 @@ table, it first rewrites the address to the standard rewrite(8) daemon. The purpose of rewriting to standard form is to reduce the number of entries needed in lookup tables. -NOTE: Postfix versions 2.2 and later rewrite message headers from remote SMTP -clients only if the client matches the local_header_rewrite_clients parameter, -or if the remote_header_rewrite_domain configuration parameter specifies a non- -empty value. To get the behavior before Postfix 2.2, specify -"local_header_rewrite_clients = static:all". - The Postfix trivial-rewrite(8) daemon implements the following hard-coded address manipulations: @@ -230,17 +226,38 @@ address manipulations: time. Postfix has no ability to handle route addresses, other than to strip off the route part. + NOTE: Postfix versions 2.2 and later rewrite message headers from + remote SMTP clients only if the client matches the + local_header_rewrite_clients parameter, or if the + remote_header_rewrite_domain configuration parameter specifies a non- + empty value. To get the behavior before Postfix 2.2, specify + "local_header_rewrite_clients = static:all". + Rewrite "site!user" to "user@site" This feature is controlled by the boolean swap_bangpath parameter (default: yes). The purpose is to rewrite UUCP-style addresses to domain style. This is useful only when you receive mail via UUCP, but it probably does not hurt otherwise. + NOTE: Postfix versions 2.2 and later rewrite message headers from + remote SMTP clients only if the client matches the + local_header_rewrite_clients parameter, or if the + remote_header_rewrite_domain configuration parameter specifies a non- + empty value. To get the behavior before Postfix 2.2, specify + "local_header_rewrite_clients = static:all". + Rewrite "user%domain" to "user@domain" This feature is controlled by the boolean allow_percent_hack parameter (default: yes). Typically, this is used in order to deal with monstrosities such as "user%domain@otherdomain". + NOTE: Postfix versions 2.2 and later rewrite message headers from + remote SMTP clients only if the client matches the + local_header_rewrite_clients parameter, or if the + remote_header_rewrite_domain configuration parameter specifies a non- + empty value. To get the behavior before Postfix 2.2, specify + "local_header_rewrite_clients = static:all". + Rewrite "user" to "user@$myorigin" This feature is controlled by the boolean append_at_myorigin parameter (default: yes). You should never turn off this feature, because a lot @@ -282,6 +299,13 @@ address manipulations: A single trailing dot is silently removed. However, an address that ends in multiple dots will be rejected as an invalid address. + NOTE: Postfix versions 2.2 and later rewrite message headers from + remote SMTP clients only if the client matches the + local_header_rewrite_clients parameter, or if the + remote_header_rewrite_domain configuration parameter specifies a non- + empty value. To get the behavior before Postfix 2.2, specify + "local_header_rewrite_clients = static:all". + CCaannoonniiccaall aaddddrreessss mmaappppiinngg The cleanup(8) daemon uses the canonical(5) tables to rewrite addresses in diff --git a/postfix/README_FILES/STANDARD_CONFIGURATION_README b/postfix/README_FILES/STANDARD_CONFIGURATION_README index b400191a5..f0161c115 100644 --- a/postfix/README_FILES/STANDARD_CONFIGURATION_README +++ b/postfix/README_FILES/STANDARD_CONFIGURATION_README @@ -306,7 +306,7 @@ interface. In such a configuration is it is tempting to configure $inet_interfaces in each instance with just the corresponding interface address. -In most cases using inet_interaces in this way will not work, because as +In most cases, using inet_interfaces in this way will not work, because as documented in the $inet_interfaces reference manual, the smtp(8) delivery agent will also use the specified interface address as the source address for outbound connections and will be unable to reach hosts on "the other side" of diff --git a/postfix/RELEASE_NOTES-2.2 b/postfix/RELEASE_NOTES-2.2 index 45ac18ed5..e7e2cd84c 100644 --- a/postfix/RELEASE_NOTES-2.2 +++ b/postfix/RELEASE_NOTES-2.2 @@ -27,10 +27,11 @@ form SQL queries, and domain filters to reduce unnecessary lookups. up deliveries to high-volume destinations that have some servers that respond, and some non-responding mail servers. -- By default, message header address rewriting is now disabled for -SMTP mail from other systems (including masquerading and canonical -mapping). Thus, spam from poorly written software no longer looks -like it came from a local user. +- By default, Postfix no longer rewrites message headers in mail +from remote clients. This includes masquerading, canonical mapping, +replacing "!" and "%" by "@", and appending the local domain to +incomplete addresses. Thus, spam from poorly written software no +longer looks like it came from a local user. - When your machine does not have its own domain name, Postfix can now replace your "home network" email address by your ISP account @@ -201,32 +202,32 @@ local machine. The syntax is described in generic(5) and a detailed example is in the STANDARD_CONFIGURATION_README document, the section titled "Postfix on hosts without a real Internet hostname". -[Feature 20041023] By default, Postfix no longer appends its own -domain to addresses in message headers from remote clients. Thus, -spam from poorly written software no longer looks like it came from -a local user. +[Feature 20041023] By default, Postfix no longer rewrites message +headers in mail from remote clients. This includes masquerading, +canonical mapping, replacing "!" and "%" by "@", and appending the +local domain to incomplete addresses. Thus, spam from poorly written +software no longer looks like it came from a local user. -Postfix either does not rewrite remote message headers at all, or -it rewrites headers and appends the domain name that is specified -with the remote_header_rewrite_domain parameter (like "domain.invalid"). +By default, Postfix rewrites message header addresses only when the +client IP address matches the local machine's interface addresses, +or when mail is submitted with the Postfix sendmail(1) command. -To get the behavior of earlier Postfix versions (always append -Postfix's own domain to incomplete addresses in message headers) -specify: +Postfix rewrites message headers in mail from other clients only +when the remote_header_rewrite_domain parameter specifies a domain +name (such as "domain.invalid"); this domain is appended to incomplete +addresses. Rewriting also includes masquerading, canonical mapping, +and replacing "!" and "%" by "@". + +To get the behavior before Postfix 2.2 (always append Postfix's own +domain to incomplete addresses in message headers, always subject +message headers to canonical mapping, address masquerading, and +always replace "!" and "%" by "@") specify: /etc/postfix/main.cf: local_header_rewrite_clients = static:all -Postfix always appends its own domain information to addresses in -message headers from Postfix sendmail and from local SMTP clients. - -By default, Postfix considers an SMTP client local (and thus updates -message header addresses with the Postfix's own domain) when the -client IP address matches the local machine's interface addresses, -or when mail is submitted with the Postfix sendmail(1) command. - -If you must rewrite headers from other clients then you can specify, -for example, +If you must rewrite headers in mail from specific clients then you +can specify, for example, /etc/postfix/main.cf: local_header_rewrite_clients = permit_mynetworks, @@ -249,9 +250,8 @@ header is modified. Older Postfix versions first parse and then un-parse a header so that there may be subtle changes in formatting, such as the amount of whitespace between tokens. -[Incompat 20050227] When header address rewriting is enabled, Postfix -no longer changes header label capitalization, i.e. FROM: or CC: -are no longer replaced by From: or Cc:. +[Incompat 20050227] Postfix no longer changes message header labels. +Thus, FROM: or CC: are no longer replaced by From: or Cc:. [Feature 20040827] Finer control over canonical mapping with canonical_classes, sender_canonical_classes and diff --git a/postfix/conf/canonical b/postfix/conf/canonical index 9f245bc35..6f75508c3 100644 --- a/postfix/conf/canonical +++ b/postfix/conf/canonical @@ -1,4 +1,4 @@ -# CANONICAL(5) CANONICAL(5) +# CANONICAL(5) CANONICAL(5) # # NAME # canonical - Postfix canonical table format @@ -41,6 +41,14 @@ # Sendmail rule set S3, if you like. This is controlled # with the canonical_classes parameter. # +# NOTE: Postfix versions 2.2 and later rewrite message head- +# ers from remote SMTP clients only if the client matches +# the local_header_rewrite_clients parameter, or if the +# remote_header_rewrite_domain configuration parameter spec- +# ifies a non-empty value. To get the behavior before Post- +# fix 2.2, specify "local_header_rewrite_clients = +# static:all". +# # Typically, one would use the canonical(5) table to replace # login names by Firstname.Lastname, or to clean up # addresses produced by legacy mail systems. @@ -130,8 +138,8 @@ # constituent parts, nor is user+foo broken up into user and # foo. # -# Patterns are applied in the order as specified in the -# table, until a pattern is found that matches the search +# Patterns are applied in the order as specified in the ta- +# ble, until a pattern is found that matches the search # string. # # Results are the same as with indexed file lookups, with @@ -141,9 +149,9 @@ # TCP-BASED TABLES # This section describes how the table lookups change when # lookups are directed to a TCP-based server. For a descrip- -# tion of the TCP client/server lookup protocol, see -# tcp_table(5). This feature is not available up to and -# including Postfix version 2.2. +# tion of the TCP client/server lookup protocol, see tcp_ta- +# ble(5). This feature is not available up to and including +# Postfix version 2.2. # # Each lookup operation uses the entire address once. Thus, # user@domain mail addresses are not broken up into their @@ -189,6 +197,15 @@ # receives mail on. You need to stop and start Post- # fix when this parameter changes. # +# local_header_rewrite_clients +# Rewrite message header addresses in mail from these +# clients and update incomplete addresses with the +# domain name in $myorigin or $mydomain; either don't +# rewrite message headers from other clients at all, +# or rewrite message headers and update incomplete +# addresses with the domain specified in the +# remote_header_rewrite_domain parameter. +# # proxy_interfaces # Other interfaces that this machine receives mail on # by way of a proxy agent or network address transla- @@ -218,6 +235,12 @@ # Give special treatment to owner-xxx and xxx-request # addresses. # +# remote_header_rewrite_domain +# Don't rewrite message headers from remote clients +# at all when this parameter is empty; otherwise, re- +# write message headers and append the specified +# domain name to incomplete addresses. +# # SEE ALSO # cleanup(8), canonicalize and enqueue mail # postmap(1), Postfix lookup table manager @@ -225,13 +248,13 @@ # virtual(5), virtual aliasing # # README FILES -# Use "postconf readme_directory" or "postconf html_direc- +# Use "postconf readme_directory" or "postconf html_direc- # tory" to locate this information. # DATABASE_README, Postfix lookup table overview # ADDRESS_REWRITING_README, address rewriting guide # # LICENSE -# The Secure Mailer license must be distributed with this +# The Secure Mailer license must be distributed with this # software. # # AUTHOR(S) @@ -240,4 +263,4 @@ # P.O. Box 704 # Yorktown Heights, NY 10598, USA # -# CANONICAL(5) +# CANONICAL(5) diff --git a/postfix/html/ADDRESS_REWRITING_README.html b/postfix/html/ADDRESS_REWRITING_README.html index 9a7939aa9..226d937be 100644 --- a/postfix/html/ADDRESS_REWRITING_README.html +++ b/postfix/html/ADDRESS_REWRITING_README.html @@ -153,21 +153,21 @@ how it works:

@@ -414,13 +414,6 @@ mapping lookup table, it first rewrites the address to the standard form is to reduce the number of entries needed in lookup tables.

-

NOTE: Postfix versions 2.2 and later rewrite message headers -from remote SMTP clients only if the client matches the -local_header_rewrite_clients parameter, or if the -remote_header_rewrite_domain configuration parameter specifies a -non-empty value. To get the behavior before Postfix 2.2, specify -"local_header_rewrite_clients = static:all".

-

The Postfix trivial-rewrite(8) daemon implements the following hard-coded address manipulations:

@@ -434,21 +427,41 @@ hard-coded address manipulations:

is called a route address, and specifies that mail for "user@site" be delivered via "hosta" and "hostb". Usage of this form has been deprecated for a long time. Postfix has no ability to handle route -addresses, other than to strip off the route part.

+addresses, other than to strip off the route part.

+ +

NOTE: Postfix versions 2.2 and later rewrite message headers +from remote SMTP clients only if the client matches the +local_header_rewrite_clients parameter, or if the +remote_header_rewrite_domain configuration parameter specifies a +non-empty value. To get the behavior before Postfix 2.2, specify +"local_header_rewrite_clients = static:all".

Rewrite "site!user" to "user@site"

This feature is controlled by the boolean swap_bangpath parameter (default: yes). The purpose is to rewrite UUCP-style addresses to domain style. This is useful only when you receive -mail via UUCP, but it probably does not hurt otherwise.

+mail via UUCP, but it probably does not hurt otherwise.

+ +

NOTE: Postfix versions 2.2 and later rewrite message headers +from remote SMTP clients only if the client matches the +local_header_rewrite_clients parameter, or if the +remote_header_rewrite_domain configuration parameter specifies a +non-empty value. To get the behavior before Postfix 2.2, specify +"local_header_rewrite_clients = static:all".

Rewrite "user%domain" to "user@domain"

This feature is controlled by the boolean allow_percent_hack parameter (default: yes). Typically, this is used in order to deal with monstrosities such as "user%domain@otherdomain".

-
+ +

NOTE: Postfix versions 2.2 and later rewrite message headers +from remote SMTP clients only if the client matches the +local_header_rewrite_clients parameter, or if the +remote_header_rewrite_domain configuration parameter specifies a +non-empty value. To get the behavior before Postfix 2.2, specify +"local_header_rewrite_clients = static:all".

@@ -499,7 +512,14 @@ of having Postfix's own domain appended automatically.

A single trailing dot is silently removed. However, an address that ends in multiple dots will be rejected as an invalid -address.

+address.

+ +

NOTE: Postfix versions 2.2 and later rewrite message headers +from remote SMTP clients only if the client matches the +local_header_rewrite_clients parameter, or if the +remote_header_rewrite_domain configuration parameter specifies a +non-empty value. To get the behavior before Postfix 2.2, specify +"local_header_rewrite_clients = static:all".

diff --git a/postfix/html/STANDARD_CONFIGURATION_README.html b/postfix/html/STANDARD_CONFIGURATION_README.html index 00411616a..188e023f4 100644 --- a/postfix/html/STANDARD_CONFIGURATION_README.html +++ b/postfix/html/STANDARD_CONFIGURATION_README.html @@ -430,7 +430,7 @@ listening on the internal interface. In such a configuration is it is tempting to configure $inet_interfaces in each instance with just the corresponding interface address.

-

In most cases using inet_interaces in this way will not work, +

In most cases, using inet_interfaces in this way will not work, because as documented in the $inet_interfaces reference manual, the smtp(8) delivery agent will also use the specified interface address as the source address for outbound connections and will be unable to diff --git a/postfix/html/canonical.5.html b/postfix/html/canonical.5.html index ce76539ba..d5c9d4dd8 100644 --- a/postfix/html/canonical.5.html +++ b/postfix/html/canonical.5.html @@ -47,6 +47,14 @@ CANONICAL(5) CANONICAL(5) Sendmail rule set S3, if you like. This is controlled with the canonical_classes parameter. + NOTE: Postfix versions 2.2 and later rewrite message head- + ers from remote SMTP clients only if the client matches + the local_header_rewrite_clients parameter, or if the + remote_header_rewrite_domain configuration parameter spec- + ifies a non-empty value. To get the behavior before Post- + fix 2.2, specify "local_header_rewrite_clients = + static:all". + Typically, one would use the canonical(5) table to replace login names by Firstname.Lastname, or to clean up addresses produced by legacy mail systems. @@ -195,6 +203,15 @@ CANONICAL(5) CANONICAL(5) receives mail on. You need to stop and start Post- fix when this parameter changes. + local_header_rewrite_clients + Rewrite message header addresses in mail from these + clients and update incomplete addresses with the + domain name in $myorigin or $mydomain; either don't + rewrite message headers from other clients at all, + or rewrite message headers and update incomplete + addresses with the domain specified in the + remote_header_rewrite_domain parameter. + proxy_interfaces Other interfaces that this machine receives mail on by way of a proxy agent or network address transla- @@ -224,6 +241,12 @@ CANONICAL(5) CANONICAL(5) Give special treatment to owner-xxx and xxx-request addresses. + remote_header_rewrite_domain + Don't rewrite message headers from remote clients + at all when this parameter is empty; otherwise, re- + write message headers and append the specified + domain name to incomplete addresses. + SEE ALSO cleanup(8), canonicalize and enqueue mail postmap(1), Postfix lookup table manager @@ -235,7 +258,7 @@ CANONICAL(5) CANONICAL(5) ADDRESS_REWRITING_README, address rewriting guide 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/html/cleanup.8.html b/postfix/html/cleanup.8.html index 4f187e1bd..792188942 100644 --- a/postfix/html/cleanup.8.html +++ b/postfix/html/cleanup.8.html @@ -245,8 +245,8 @@ CLEANUP(8) CLEANUP(8) remote_header_rewrite_domain (empty) Don't rewrite message headers from remote clients at all when this parameter is empty; otherwise, re- - write remote message headers and append the speci- - fied domain name to incomplete addresses. + write message headers and append the specified + domain name to incomplete addresses. RESOURCE AND RATE CONTROLS duplicate_filter_limit (1000) diff --git a/postfix/html/ldap_table.5.html b/postfix/html/ldap_table.5.html index c989d3089..768dabb4a 100644 --- a/postfix/html/ldap_table.5.html +++ b/postfix/html/ldap_table.5.html @@ -273,7 +273,7 @@ LDAP_TABLE(5) LDAP_TABLE(5) %[SUD1-9] The upper-case and decimal digit expansions interpolate the parts of the input key - rather than the result. Their behaviour is + rather than the result. Their behavior is identical to that described with query_fil- ter, and in fact because the input key is known in advance, lookups whose key does not diff --git a/postfix/html/local.8.html b/postfix/html/local.8.html index 1ed9eb5a9..c7c0f03c7 100644 --- a/postfix/html/local.8.html +++ b/postfix/html/local.8.html @@ -565,7 +565,7 @@ LOCAL(8) LOCAL(8) FILES The following are examples; details differ between systems. $HOME/.forward, per-user aliasing - /etc/aliases, sytem-wide alias database + /etc/aliases, system-wide alias database /var/spool/mail, system mailboxes SEE ALSO diff --git a/postfix/html/mysql_table.5.html b/postfix/html/mysql_table.5.html index fc75c4d2c..23ed116ae 100644 --- a/postfix/html/mysql_table.5.html +++ b/postfix/html/mysql_table.5.html @@ -207,7 +207,7 @@ MYSQL_TABLE(5) MYSQL_TABLE(5) %[SUD1-9] The upper-case and decimal digit expansions interpolate the parts of the input key - rather than the result. Their behaviour is + rather than the result. Their behavior is identical to that described with query, and in fact because the input key is known in advance, queries whose key does not contain diff --git a/postfix/html/pgsql_table.5.html b/postfix/html/pgsql_table.5.html index 28412b428..13152c9a5 100644 --- a/postfix/html/pgsql_table.5.html +++ b/postfix/html/pgsql_table.5.html @@ -61,7 +61,7 @@ PGSQL_TABLE(5) PGSQL_TABLE(5) query = SELECT select_function('%s') - or in the absense of selection_function, the lower prece- + or in the absence of selection_function, the lower prece- dence: query = SELECT select_field @@ -212,7 +212,7 @@ PGSQL_TABLE(5) PGSQL_TABLE(5) %[SUD1-9] The upper-case and decimal digit expansions interpolate the parts of the input key - rather than the result. Their behaviour is + rather than the result. Their behavior is identical to that described with query, and in fact because the input key is known in advance, queries whose key does not contain diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html index db9d2883e..71800a22c 100644 --- a/postfix/html/postconf.5.html +++ b/postfix/html/postconf.5.html @@ -559,7 +559,7 @@ Enable the rewriting of the form "user%domain" to "user@domain". This is enabled by default.

-

Note: With Postfix version 2.2, message header address rewriting +

Note: with Postfix version 2.2, message header address rewriting happens only when one of the following conditions is true: