From: Wietse Venema Date: Thu, 2 Feb 2006 05:00:00 +0000 (-0500) Subject: postfix-2.3-20060202 X-Git-Tag: v2.3-RC1~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a202164509d49ffcce5f65ec107f04c16c8278ec;p=thirdparty%2Fpostfix.git postfix-2.3-20060202 --- diff --git a/postfix/HISTORY b/postfix/HISTORY index 8adfd6df9..c58ffee55 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -11902,8 +11902,9 @@ Apologies for any names omitted. elimination of non-intuitive behavior as documented next. With Victor Duchovni. Files: smtp_session.c, smtp.h. - Bugfix: a per-site MUST_NOPEERMATCH policy could not override - a main.cf MUST (with peer match) policy. + Bugfix: a TLS per-site MUST_NOPEERMATCH policy could not + override a main.cf MUST (with peer match) policy, while a + per-site NONE policy could. Bugfix: a combined TLS per-site (host, next-hop) policy of (NONE, MAY) would change the strongest main.cf MUST policy @@ -11960,12 +11961,16 @@ Apologies for any names omitted. 20060201 - Bugfix: despite efforts to treat malformed domain names in - DNS replies as hard errors (change 20050726) they were still - processed as soft errors. File: dns/dns_lookup.c. + Bugfix: despite efforts to treat malformed domain names as + hard errors (change 20050726) they were still processed as + soft errors. File: dns/dns_lookup.c. Open issues: + Make the map case folding/locking options configurable, if + not at run-time then at least at compile time so we get + consistent behavior across applications. + Investigate if it is feasible to eliminate cleanup(8) from the path of mail that is forwarded or generated internally. Good: we don't want header rewriting or content inspection. @@ -11977,11 +11982,9 @@ Open issues: make the old behavior configurable in a unified queue manager. This would shave another 2.7 KLOC from the source footprint. - Document case folding strategy in different maps (access, - canonical, etc). Even better: make it configurable, so we - can blame the user when they make a mistake :-) + Document the case folding strategy for match_list like features. - Eliminate the (incoming,deferred)-active rename operation. + Eliminate the (incoming,deferred)->active rename operation. Softbounce fallback-to-ISP for SOHO users. This requires playing with with the soft_error test in the smtp_trouble.c @@ -11989,8 +11992,10 @@ Open issues: select -> kqueue, epoll, /dev/poll, poll() ... - Set pipelining flag at start of session and at other protocol - synchronization points. + In the SMTP server, set a "pipelining detected" flag at the + start of a session and at protocol synchronization points, + so that reject_unauth_pipelining can be specified in any + access rule. Centralize main.cf parameter input so that defaults work consistently. diff --git a/postfix/conf/access b/postfix/conf/access index 515ee6d2f..95f904349 100644 --- a/postfix/conf/access +++ b/postfix/conf/access @@ -37,6 +37,12 @@ # way as described below under "REGULAR EXPRESSION TABLES" # and "TCP-BASED TABLES". # +# CASE FOLDING +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. +# # TABLE FORMAT # The input format for the postmap(1) command is as follows: # @@ -45,53 +51,53 @@ # address, perform the corresponding action. # # blank lines and comments -# Empty lines and whitespace-only lines are ignored, -# as are lines whose first non-whitespace character +# Empty lines and whitespace-only lines are ignored, +# as are lines whose first non-whitespace character # is a `#'. # # multi-line text -# A logical line starts with non-whitespace text. A -# line that starts with whitespace continues a logi- +# A logical line starts with non-whitespace text. A +# line that starts with whitespace continues a logi- # cal line. # # EMAIL ADDRESS PATTERNS # With lookups from indexed files such as DB or DBM, or from -# networked tables such as NIS, LDAP or SQL, patterns are +# networked tables such as NIS, LDAP or SQL, patterns are # tried in the order as listed below: # # user@domain # Matches the specified mail address. # # domain.tld -# Matches domain.tld as the domain part of an email +# Matches domain.tld as the domain part of an email # address. # # The pattern domain.tld also matches subdomains, but # only when the string smtpd_access_maps is listed in -# the Postfix parent_domain_matches_subdomains con- -# figuration setting (note that this is the default -# for some versions of Postfix). Otherwise, specify -# .domain.tld (note the initial dot) in order to +# the Postfix parent_domain_matches_subdomains con- +# figuration setting (note that this is the default +# for some versions of Postfix). Otherwise, specify +# .domain.tld (note the initial dot) in order to # match subdomains. # -# user@ Matches all mail addresses with the specified user +# user@ Matches all mail addresses with the specified user # part. # -# Note: lookup of the null sender address is not possible -# with some types of lookup table. By default, Postfix uses -# <> as the lookup key for such addresses. The value is -# specified with the smtpd_null_access_lookup_key parameter +# Note: lookup of the null sender address is not possible +# with some types of lookup table. By default, Postfix uses +# <> as the lookup key for such addresses. The value is +# specified with the smtpd_null_access_lookup_key parameter # in the Postfix main.cf file. # # EMAIL ADDRESS EXTENSION # When a mail address localpart contains the optional recip- -# ient delimiter (e.g., user+foo@domain), the lookup order -# becomes: user+foo@domain, user@domain, domain, user+foo@, +# ient delimiter (e.g., user+foo@domain), the lookup order +# becomes: user+foo@domain, user@domain, domain, user+foo@, # and user@. # # HOST NAME/ADDRESS PATTERNS # With lookups from indexed files such as DB or DBM, or from -# networked tables such as NIS, LDAP or SQL, the following +# networked tables such as NIS, LDAP or SQL, the following # lookup patterns are examined in the order as listed: # # domain.tld @@ -99,9 +105,9 @@ # # The pattern domain.tld also matches subdomains, but # only when the string smtpd_access_maps is listed in -# the Postfix parent_domain_matches_subdomains con- +# the Postfix parent_domain_matches_subdomains con- # figuration setting. Otherwise, specify .domain.tld -# (note the initial dot) in order to match subdo- +# (note the initial dot) in order to match subdo- # mains. # # net.work.addr.ess @@ -110,21 +116,21 @@ # # net.work # -# net Matches the specified IPv4 host address or subnet- -# work. An IPv4 host address is a sequence of four +# net Matches the specified IPv4 host address or subnet- +# work. An IPv4 host address is a sequence of four # decimal octets separated by ".". # -# Subnetworks are matched by repeatedly truncating +# Subnetworks are matched by repeatedly truncating # the last ".octet" from the remote IPv4 host address -# string until a match is found in the access table, +# string until a match is found in the access table, # or until further truncation is not possible. # # NOTE 1: The information in the access map should be # in canonical form, with unnecessary null characters -# eliminated. Address information must not be +# eliminated. Address information must not be # enclosed with "[]" characters. # -# NOTE 2: use the cidr lookup table type to specify +# NOTE 2: use the cidr lookup table type to specify # network/netmask patterns. See cidr_table(5) for # details. # @@ -134,12 +140,12 @@ # # net:work # -# net Matches the specified IPv6 host address or subnet- -# work. An IPv6 host address is a sequence of three -# to eight hexadecimal octet pairs separated by ":". +# net Matches the specified IPv6 host address or subnet- +# work. An IPv6 host address is a sequence of three +# to eight hexadecimal octet pairs separated by ":". # -# Subnetworks are matched by repeatedly truncating -# the last ":octetpair" from the remote IPv6 host +# Subnetworks are matched by repeatedly truncating +# the last ":octetpair" from the remote IPv6 host # address string until a match is found in the access # table, or until further truncation is not possible. # @@ -149,10 +155,10 @@ # # NOTE 2: The information in the access map should be # in canonical form, with unnecessary null characters -# eliminated. Address information must not be +# eliminated. Address information must not be # enclosed with "[]" characters. # -# NOTE 3: use the cidr lookup table type to specify +# NOTE 3: use the cidr lookup table type to specify # network/netmask patterns. See cidr_table(5) for # details. # @@ -163,33 +169,33 @@ # # all-numerical # An all-numerical result is treated as OK. This for- -# mat is generated by address-based relay authoriza- +# mat is generated by address-based relay authoriza- # tion schemes such as pop-before-smtp. # # REJECT ACTIONS -# Postfix version 2.3 and later support enhanced status -# codes. When no code is specified at the beginning of the +# Postfix version 2.3 and later support enhanced status +# codes. When no code is specified at the beginning of the # text below, Postfix inserts a default enhanced status code -# of "5.7.1" in the case of reject actions, and "4.7.1" in -# the case of defer actions. See "ENHANCED STATUS CODES" +# of "5.7.1" in the case of reject actions, and "4.7.1" in +# the case of defer actions. See "ENHANCED STATUS CODES" # below. # # 4NN text # # 5NN text -# Reject the address etc. that matches the pattern, +# Reject the address etc. that matches the pattern, # and respond with the numerical three-digit code and -# text. 4NN means "try again later", while 5NN means +# text. 4NN means "try again later", while 5NN means # "do not try again". # # REJECT optional text... -# Reject the address etc. that matches the pattern. -# Reply with $reject_code optional text... when the -# optional text is specified, otherwise reply with a +# Reject the address etc. that matches the pattern. +# Reply with $reject_code optional text... when the +# optional text is specified, otherwise reply with a # generic error response message. # # DEFER_IF_REJECT optional text... -# Defer the request if some later restriction would +# Defer the request if some later restriction would # result in a REJECT action. Reply with "450 optional # text... when the optional text is specified, other- # wise reply with a generic error response message. @@ -197,10 +203,10 @@ # This feature is available in Postfix 2.1 and later. # # DEFER_IF_PERMIT optional text... -# Defer the request if some later restriction would -# result in a an explicit or implicit PERMIT action. -# Reply with "450 optional text... when the optional -# text is specified, otherwise reply with a generic +# Defer the request if some later restriction would +# result in a an explicit or implicit PERMIT action. +# Reply with "450 optional text... when the optional +# text is specified, otherwise reply with a generic # error response message. # # This feature is available in Postfix 2.1 and later. @@ -211,158 +217,158 @@ # reject_unauth_destination, and so on). # # DISCARD optional text... -# Claim successful delivery and silently discard the -# message. Log the optional text if specified, oth- +# Claim successful delivery and silently discard the +# message. Log the optional text if specified, oth- # erwise log a generic message. # -# Note: this action currently affects all recipients -# of the message. To discard only one recipient -# without discarding the entire message, use the +# Note: this action currently affects all recipients +# of the message. To discard only one recipient +# without discarding the entire message, use the # transport(5) table to direct mail to the discard(8) # service. # # This feature is available in Postfix 2.0 and later. # -# DUNNO Pretend that the lookup key was not found. This -# prevents Postfix from trying substrings of the -# lookup key (such as a subdomain name, or a network +# DUNNO Pretend that the lookup key was not found. This +# prevents Postfix from trying substrings of the +# lookup key (such as a subdomain name, or a network # address subnetwork). # # This feature is available in Postfix 2.0 and later. # # FILTER transport:destination -# After the message is queued, send the entire mes- +# After the message is queued, send the entire mes- # sage through the specified external content filter. -# The transport:destination syntax is described in -# the transport(5) manual page. More information -# about external content filters is in the Postfix +# The transport:destination syntax is described in +# the transport(5) manual page. More information +# about external content filters is in the Postfix # FILTER_README file. # -# Note: this action overrides the main.cf con- +# Note: this action overrides the main.cf con- # tent_filter setting, and currently affects all # recipients of the message. # # This feature is available in Postfix 2.0 and later. # # HOLD optional text... -# Place the message on the hold queue, where it will -# sit until someone either deletes it or releases it -# for delivery. Log the optional text if specified, +# Place the message on the hold queue, where it will +# sit until someone either deletes it or releases it +# for delivery. Log the optional text if specified, # otherwise log a generic message. # -# Mail that is placed on hold can be examined with -# the postcat(1) command, and can be destroyed or +# Mail that is placed on hold can be examined with +# the postcat(1) command, and can be destroyed or # released with the postsuper(1) command. # -# Note: use "postsuper -r" to release mail that was -# kept on hold for a significant fraction of $maxi- +# Note: use "postsuper -r" to release mail that was +# kept on hold for a significant fraction of $maxi- # mal_queue_lifetime or $bounce_queue_lifetime, or # longer. # -# Note: this action currently affects all recipients +# Note: this action currently affects all recipients # of the message. # # This feature is available in Postfix 2.0 and later. # # PREPEND headername: headervalue -# Prepend the specified message header to the mes- +# Prepend the specified message header to the mes- # sage. When this action is used multiple times, the -# first prepended header appears before the second +# first prepended header appears before the second # etc. prepended header. # -# Note: this action does not support multi-line mes- +# Note: this action does not support multi-line mes- # sage headers. # -# Note: this action must be used before the message -# content is received; it cannot be used in +# Note: this action must be used before the message +# content is received; it cannot be used in # smtpd_end_of_data_restrictions. # # This feature is available in Postfix 2.1 and later. # # REDIRECT user@domain -# After the message is queued, send the message to +# After the message is queued, send the message to # the specified address instead of the intended # recipient(s). # -# Note: this action overrides the FILTER action, and +# Note: this action overrides the FILTER action, and # currently affects all recipients of the message. # # This feature is available in Postfix 2.1 and later. # # WARN optional text... # Log a warning with the optional text, together with -# client information and if available, with helo, +# client information and if available, with helo, # sender, recipient and protocol information. # # This feature is available in Postfix 2.1 and later. # # ENHANCED STATUS CODES # When an enhanced status code is specified in an access ta- -# ble, it is subject to modification. The following trans- -# formations are needed when the same access table is used -# for client, helo, sender, or recipient access restric- -# tions; they happen regardless of whether Postfix replies +# ble, it is subject to modification. The following trans- +# formations are needed when the same access table is used +# for client, helo, sender, or recipient access restric- +# tions; they happen regardless of whether Postfix replies # to a MAIL FROM, RCPT TO or other SMTP command. # -# o When a sender address matches a REJECT action, the -# Postfix SMTP server will transform a recipient DSN -# status (e.g., 4.1.1-4.1.6) into the corresponding +# o When a sender address matches a REJECT action, the +# Postfix SMTP server will transform a recipient DSN +# status (e.g., 4.1.1-4.1.6) into the corresponding # sender DSN status, and vice versa. # -# o When non-address information matches a REJECT -# action (such as the HELO command argument or the -# client hostname/address), the Postfix SMTP server -# will transform a sender or recipient DSN status -# into a generic non-address DSN status (e.g., +# o When non-address information matches a REJECT +# action (such as the HELO command argument or the +# client hostname/address), the Postfix SMTP server +# will transform a sender or recipient DSN status +# into a generic non-address DSN status (e.g., # 4.0.0). # # REGULAR EXPRESSION TABLES -# This section describes how the table lookups change when +# This section describes how the table lookups change when # the table is given in the form of regular expressions. For -# a description of regular expression lookup table syntax, +# a description of regular expression lookup table syntax, # see regexp_table(5) or pcre_table(5). # -# Each pattern is a regular expression that is applied to +# Each pattern is a regular expression that is applied to # the entire string being looked up. Depending on the appli- -# cation, that string is an entire client hostname, an +# cation, that string is an entire client hostname, an # entire client IP address, or an entire mail address. Thus, # no parent domain or parent network search is done, -# user@domain mail addresses are not broken up into their +# user@domain mail addresses are not broken up into their # user@ and domain constituent parts, nor is user+foo broken # up into user and foo. # -# Patterns are applied in the order as specified in the ta- -# ble, 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. # -# Actions are the same as with indexed file lookups, with -# the additional feature that parenthesized substrings from +# Actions are the same as with indexed file lookups, with +# the additional feature that parenthesized substrings from # the pattern can be interpolated as $1, $2 and so on. # # TCP-BASED TABLES -# This section describes how the table lookups change when +# 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_ta- # ble(5). This feature is not available up to and including # Postfix version 2.2. # -# Each lookup operation uses the entire query string once. -# Depending on the application, that string is an entire +# Each lookup operation uses the entire query string once. +# Depending on the application, that string is an entire # client hostname, an entire client IP address, or an entire -# mail address. Thus, no parent domain or parent network -# search is done, user@domain mail addresses are not broken -# up into their user@ and domain constituent parts, nor is +# mail address. Thus, no parent domain or parent network +# search is done, user@domain mail addresses are not broken +# up into their user@ and domain constituent parts, nor is # user+foo broken up into user and foo. # # Actions are the same as with indexed file lookups. # # EXAMPLE -# The following example uses an indexed file, so that the -# order of table entries does not matter. The example per- -# mits access by the client at address 1.2.3.4 but rejects -# all other clients in 1.2.3.0/24. Instead of hash lookup -# tables, some systems use dbm. Use the command "postconf -# -m" to find out what lookup tables Postfix supports on +# The following example uses an indexed file, so that the +# order of table entries does not matter. The example per- +# mits access by the client at address 1.2.3.4 but rejects +# all other clients in 1.2.3.0/24. Instead of hash lookup +# tables, some systems use dbm. Use the command "postconf +# -m" to find out what lookup tables Postfix supports on # your system. # # /etc/postfix/main.cf: @@ -377,7 +383,7 @@ # editing the file. # # BUGS -# The table format does not understand quoting conventions. +# The table format does not understand quoting conventions. # # SEE ALSO # postmap(1), Postfix lookup table manager @@ -386,13 +392,13 @@ # transport(5), transport:nexthop syntax # # README FILES -# Use "postconf readme_directory" or "postconf html_direc- +# Use "postconf readme_directory" or "postconf html_direc- # tory" to locate this information. # SMTPD_ACCESS_README, built-in SMTP server access control # DATABASE_README, Postfix lookup table overview # # 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/conf/aliases b/postfix/conf/aliases index d2a6eb460..32d3f9797 100644 --- a/postfix/conf/aliases +++ b/postfix/conf/aliases @@ -139,66 +139,70 @@ decode: root # whether an unmatched address extension (+foo) is propa- # gated to the result of table lookup. # +# CASE FOLDING +# The local(8) delivery agent always folds the search string +# to lowercase before database lookup. +# # SECURITY -# The local(8) delivery agent disallows regular expression -# substitution of $1 etc. in alias_maps, because that would +# The local(8) delivery agent disallows regular expression +# substitution of $1 etc. in alias_maps, because that would # open a security hole. # -# The local(8) delivery agent will silently ignore requests -# to use the proxymap(8) server within alias_maps. Instead -# it will open the table directly. Before Postfix version -# 2.2, the local(8) delivery agent will terminate with a +# The local(8) delivery agent will silently ignore requests +# to use the proxymap(8) server within alias_maps. Instead +# it will open the table directly. Before Postfix version +# 2.2, the local(8) delivery agent will terminate with a # fatal error. # # CONFIGURATION PARAMETERS -# The following main.cf parameters are especially relevant. -# The text below provides only a parameter summary. See +# The following main.cf parameters are especially relevant. +# The text below provides only a parameter summary. See # postconf(5) for more details including examples. # # alias_database -# List of alias databases that are updated by the +# List of alias databases that are updated by the # newaliases(1) command. # # alias_maps -# List of alias databases queried by the local(8) +# List of alias databases queried by the local(8) # delivery agent. # # allow_mail_to_commands -# Restrict the usage of mail delivery to external +# Restrict the usage of mail delivery to external # command. # # allow_mail_to_files -# Restrict the usage of mail delivery to external +# Restrict the usage of mail delivery to external # file. # # expand_owner_alias # When delivering to an alias that has an owner- com- -# panion alias, set the envelope sender address to -# the right-hand side of the owner alias, instead +# panion alias, set the envelope sender address to +# the right-hand side of the owner alias, instead # using of the left-hand side address. # # propagate_unmatched_extensions -# A list of address rewriting or forwarding mecha- -# nisms that propagate an address extension from the -# original address to the result. Specify zero or -# more of canonical, virtual, alias, forward, +# A list of address rewriting or forwarding mecha- +# nisms that propagate an address extension from the +# original address to the result. Specify zero or +# more of canonical, virtual, alias, forward, # include, or generic. # # owner_request_special -# Give special treatment to owner-listname and list- +# Give special treatment to owner-listname and list- # name-request addresses. # # recipient_delimiter -# Delimiter that separates recipients from address +# Delimiter that separates recipients from address # extensions. # # Available in Postfix version 2.3 and later: # # frozen_delivered_to -# Update the local(8) delivery agent's Delivered-To: -# address (see prepend_delivered_header) only once, -# at the start of a delivery; do not update the -# Delivered-To: address while expanding aliases or +# Update the local(8) delivery agent's Delivered-To: +# address (see prepend_delivered_header) only once, +# at the start of a delivery; do not update the +# Delivered-To: address while expanding aliases or # .forward files. # # STANDARDS @@ -211,12 +215,12 @@ decode: root # postconf(5), configuration parameters # # 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 # # 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/conf/canonical b/postfix/conf/canonical index ab9f2bea1..3ae946aaf 100644 --- a/postfix/conf/canonical +++ b/postfix/conf/canonical @@ -59,44 +59,50 @@ # The canonical(5) mapping is not to be confused with local # aliasing. Use the aliases(5) map for that purpose. # +# CASE FOLDING +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. +# # TABLE FORMAT # The input format for the postmap(1) command is as follows: # # pattern result -# When pattern matches a mail address, replace it by +# When pattern matches a mail address, replace it by # the corresponding result. # # blank lines and comments -# Empty lines and whitespace-only lines are ignored, -# as are lines whose first non-whitespace character +# Empty lines and whitespace-only lines are ignored, +# as are lines whose first non-whitespace character # is a `#'. # # multi-line text -# A logical line starts with non-whitespace text. A -# line that starts with whitespace continues a logi- +# A logical line starts with non-whitespace text. A +# line that starts with whitespace continues a logi- # cal line. # # TABLE SEARCH ORDER # With lookups from indexed files such as DB or DBM, or from -# networked tables such as NIS, LDAP or SQL, patterns are +# networked tables such as NIS, LDAP or SQL, patterns are # tried in the order as listed below: # # user@domain address -# Replace user@domain by address. This form has the +# Replace user@domain by address. This form has the # highest precedence. # -# This is useful to clean up addresses produced by -# legacy mail systems. It can also be used to pro- -# duce Firstname.Lastname style addresses, but see +# This is useful to clean up addresses produced by +# legacy mail systems. It can also be used to pro- +# duce Firstname.Lastname style addresses, but see # below for a simpler solution. # # user address -# Replace user@site by address when site is equal to -# $myorigin, when site is listed in $mydestination, -# or when it is listed in $inet_interfaces or +# Replace user@site by address when site is equal to +# $myorigin, when site is listed in $mydestination, +# or when it is listed in $inet_interfaces or # $proxy_interfaces. # -# This form is useful for replacing login names by +# This form is useful for replacing login names by # Firstname.Lastname. # # @domain address @@ -106,10 +112,10 @@ # RESULT ADDRESS REWRITING # The lookup result is subject to address rewriting: # -# o When the result has the form @otherdomain, the +# o When the result has the form @otherdomain, the # result becomes the same user in otherdomain. # -# o When "append_at_myorigin=yes", append "@$myorigin" +# o When "append_at_myorigin=yes", append "@$myorigin" # to addresses without "@domain". # # o When "append_dot_mydomain=yes", append ".$mydomain" @@ -117,58 +123,58 @@ # # ADDRESS EXTENSION # When a mail address localpart contains the optional recip- -# ient delimiter (e.g., user+foo@domain), the lookup order +# ient delimiter (e.g., user+foo@domain), the lookup order # becomes: user+foo@domain, user@domain, user+foo, user, and # @domain. # -# The propagate_unmatched_extensions parameter controls -# whether an unmatched address extension (+foo) is propa- +# The propagate_unmatched_extensions parameter controls +# whether an unmatched address extension (+foo) is propa- # gated to the result of table lookup. # # REGULAR EXPRESSION TABLES -# This section describes how the table lookups change when +# This section describes how the table lookups change when # the table is given in the form of regular expressions. For -# a description of regular expression lookup table syntax, +# a description of regular expression lookup table syntax, # see regexp_table(5) or pcre_table(5). # -# Each pattern is a regular expression that is applied to +# Each pattern is a regular expression that is applied to # the entire address being looked up. Thus, user@domain mail -# addresses are not broken up into their user and @domain +# addresses are not broken up into their user and @domain # constituent parts, nor is user+foo broken up into user and # foo. # -# Patterns are applied in the order as specified in the ta- -# ble, 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 -# the additional feature that parenthesized substrings from +# Results are the same as with indexed file lookups, with +# the additional feature that parenthesized substrings from # the pattern can be interpolated as $1, $2 and so on. # # TCP-BASED TABLES -# This section describes how the table lookups change when +# 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_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 +# user@domain mail addresses are not broken up into their # user and @domain constituent parts, nor is user+foo broken # up into user and foo. # # Results are the same as with indexed file lookups. # # BUGS -# The table format does not understand quoting conventions. +# The table format does not understand quoting conventions. # # CONFIGURATION PARAMETERS -# The following main.cf parameters are especially relevant. -# The text below provides only a parameter summary. See +# The following main.cf parameters are especially relevant. +# The text below provides only a parameter summary. See # postconf(5) for more details including examples. # # canonical_classes -# What addresses are subject to canonical address +# What addresses are subject to canonical address # mapping. # # canonical_maps @@ -183,26 +189,26 @@ # header sender addresses. # # propagate_unmatched_extensions -# A list of address rewriting or forwarding mecha- -# nisms that propagate an address extension from the -# original address to the result. Specify zero or -# more of canonical, virtual, alias, forward, +# A list of address rewriting or forwarding mecha- +# nisms that propagate an address extension from the +# original address to the result. Specify zero or +# more of canonical, virtual, alias, forward, # include, or generic. # # Other parameters of interest: # # inet_interfaces -# The network interface addresses that this system +# The network interface addresses that this system # 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 +# 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 +# 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 @@ -211,20 +217,20 @@ # tor. # # masquerade_classes -# List of address classes subject to masquerading: -# zero or more of envelope_sender, envelope_recipi- +# List of address classes subject to masquerading: +# zero or more of envelope_sender, envelope_recipi- # ent, header_sender, header_recipient. # # masquerade_domains -# List of domains that hide their subdomain struc- +# List of domains that hide their subdomain struc- # ture. # # masquerade_exceptions -# List of user names that are not subject to address +# List of user names that are not subject to address # masquerading. # # mydestination -# List of domains that this mail system considers +# List of domains that this mail system considers # local. # # myorigin @@ -235,9 +241,9 @@ # addresses. # # remote_header_rewrite_domain -# Don't rewrite message headers from remote clients +# Don't rewrite message headers from remote clients # at all when this parameter is empty; otherwise, re- -# write message headers and append the specified +# write message headers and append the specified # domain name to incomplete addresses. # # SEE ALSO @@ -247,13 +253,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) diff --git a/postfix/conf/generic b/postfix/conf/generic index f8666fe77..3d5c616c1 100644 --- a/postfix/conf/generic +++ b/postfix/conf/generic @@ -1,4 +1,4 @@ -# GENERIC(5) GENERIC(5) +# GENERIC(5) GENERIC(5) # # NAME # generic - Postfix generic table format @@ -47,36 +47,42 @@ # way as described below under "REGULAR EXPRESSION TABLES" # and "TCP-BASED TABLES". # +# CASE FOLDING +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. +# # TABLE FORMAT # The input format for the postmap(1) command is as follows: # # pattern result -# When pattern matches a mail address, replace it by +# When pattern matches a mail address, replace it by # the corresponding result. # # blank lines and comments -# Empty lines and whitespace-only lines are ignored, -# as are lines whose first non-whitespace character +# Empty lines and whitespace-only lines are ignored, +# as are lines whose first non-whitespace character # is a `#'. # # multi-line text -# A logical line starts with non-whitespace text. A -# line that starts with whitespace continues a logi- +# A logical line starts with non-whitespace text. A +# line that starts with whitespace continues a logi- # cal line. # # TABLE SEARCH ORDER # With lookups from indexed files such as DB or DBM, or from -# networked tables such as NIS, LDAP or SQL, patterns are +# networked tables such as NIS, LDAP or SQL, patterns are # tried in the order as listed below: # # user@domain address -# Replace user@domain by address. This form has the +# Replace user@domain by address. This form has the # highest precedence. # # user address -# Replace user@site by address when site is equal to -# $myorigin, when site is listed in $mydestination, -# or when it is listed in $inet_interfaces or +# Replace user@site by address when site is equal to +# $myorigin, when site is listed in $mydestination, +# or when it is listed in $inet_interfaces or # $proxy_interfaces. # # @domain address @@ -86,10 +92,10 @@ # RESULT ADDRESS REWRITING # The lookup result is subject to address rewriting: # -# o When the result has the form @otherdomain, the +# o When the result has the form @otherdomain, the # result becomes the same user in otherdomain. # -# o When "append_at_myorigin=yes", append "@$myorigin" +# o When "append_at_myorigin=yes", append "@$myorigin" # to addresses without "@domain". # # o When "append_dot_mydomain=yes", append ".$mydomain" @@ -97,55 +103,55 @@ # # ADDRESS EXTENSION # When a mail address localpart contains the optional recip- -# ient delimiter (e.g., user+foo@domain), the lookup order +# ient delimiter (e.g., user+foo@domain), the lookup order # becomes: user+foo@domain, user@domain, user+foo, user, and # @domain. # -# The propagate_unmatched_extensions parameter controls -# whether an unmatched address extension (+foo) is propa- +# The propagate_unmatched_extensions parameter controls +# whether an unmatched address extension (+foo) is propa- # gated to the result of table lookup. # # REGULAR EXPRESSION TABLES -# This section describes how the table lookups change when +# This section describes how the table lookups change when # the table is given in the form of regular expressions. For -# a description of regular expression lookup table syntax, +# a description of regular expression lookup table syntax, # see regexp_table(5) or pcre_table(5). # -# Each pattern is a regular expression that is applied to +# Each pattern is a regular expression that is applied to # the entire address being looked up. Thus, user@domain mail -# addresses are not broken up into their user and @domain +# addresses are not broken up into their user and @domain # 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 -# the additional feature that parenthesized substrings from +# Results are the same as with indexed file lookups, with +# the additional feature that parenthesized substrings from # the pattern can be interpolated as $1, $2 and so on. # # TCP-BASED TABLES -# This section describes how the table lookups change when +# 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 +# user@domain mail addresses are not broken up into their # user and @domain constituent parts, nor is user+foo broken # up into user and foo. # # Results are the same as with indexed file lookups. # # EXAMPLE -# The following shows a generic mapping with an indexed -# file. When mail is sent to a remote host via SMTP, this -# replaces his@localdomain.local by his ISP mail address, -# replaces her@localdomain.local by her ISP mail address, -# and replaces other local addresses by his ISP account, -# with an address extension of +local (this example assumes +# The following shows a generic mapping with an indexed +# file. When mail is sent to a remote host via SMTP, this +# replaces his@localdomain.local by his ISP mail address, +# replaces her@localdomain.local by her ISP mail address, +# and replaces other local addresses by his ISP account, +# with an address extension of +local (this example assumes # that the ISP supports "+" style address extensions). # # /etc/postfix/main.cf: @@ -156,35 +162,35 @@ # her@localdomain.local heraccount@herisp.example # @localdomain.local hisaccount+local@hisisp.example # -# Execute the command "postmap /etc/postfix/generic" when- -# ever the table is changed. Instead of hash, some systems -# use dbm database files. To find out what tables your sys- +# Execute the command "postmap /etc/postfix/generic" when- +# ever the table is changed. Instead of hash, some systems +# use dbm database files. To find out what tables your sys- # tem supports use the command "postconf -m". # # BUGS -# The table format does not understand quoting conventions. +# The table format does not understand quoting conventions. # # CONFIGURATION PARAMETERS -# The following main.cf parameters are especially relevant. -# The text below provides only a parameter summary. See +# The following main.cf parameters are especially relevant. +# The text below provides only a parameter summary. See # postconf(5) for more details including examples. # # smtp_generic_maps # Address mapping lookup table for envelope and -# header sender and recipient addresses while deliv- +# header sender and recipient addresses while deliv- # ering mail via SMTP. # # propagate_unmatched_extensions -# A list of address rewriting or forwarding mecha- -# nisms that propagate an address extension from the -# original address to the result. Specify zero or -# more of canonical, virtual, alias, forward, +# A list of address rewriting or forwarding mecha- +# nisms that propagate an address extension from the +# original address to the result. Specify zero or +# more of canonical, virtual, alias, forward, # include, or generic. # # Other parameters of interest: # # inet_interfaces -# The network interface addresses that this system +# The network interface addresses that this system # receives mail on. You need to stop and start Post- # fix when this parameter changes. # @@ -194,7 +200,7 @@ # tor. # # mydestination -# List of domains that this mail system considers +# List of domains that this mail system considers # local. # # myorigin @@ -210,14 +216,14 @@ # smtp(8), Postfix SMTP client # # README FILES -# Use "postconf readme_directory" or "postconf html_direc- +# Use "postconf readme_directory" or "postconf html_direc- # tory" to locate this information. # ADDRESS_REWRITING_README, address rewriting guide # DATABASE_README, Postfix lookup table overview # STANDARD_CONFIGURATION_README, configuration examples # # LICENSE -# The Secure Mailer license must be distributed with this +# The Secure Mailer license must be distributed with this # software. # # HISTORY @@ -231,4 +237,4 @@ # P.O. Box 704 # Yorktown Heights, NY 10598, USA # -# GENERIC(5) +# GENERIC(5) diff --git a/postfix/conf/relocated b/postfix/conf/relocated index a14d03227..468dd4dc6 100644 --- a/postfix/conf/relocated +++ b/postfix/conf/relocated @@ -31,30 +31,36 @@ # # Table lookups are case insensitive. # +# CASE FOLDING +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. +# # TABLE FORMAT # The input format for the postmap(1) command is as follows: # # o An entry has one of the following form: # pattern new_location -# Where new_location specifies contact information -# such as an email address, or perhaps a street +# Where new_location specifies contact information +# such as an email address, or perhaps a street # address or telephone number. # -# o Empty lines and whitespace-only lines are ignored, -# as are lines whose first non-whitespace character +# o Empty lines and whitespace-only lines are ignored, +# as are lines whose first non-whitespace character # is a `#'. # -# o A logical line starts with non-whitespace text. A -# line that starts with whitespace continues a logi- +# o A logical line starts with non-whitespace text. A +# line that starts with whitespace continues a logi- # cal line. # # TABLE SEARCH ORDER # With lookups from indexed files such as DB or DBM, or from -# networked tables such as NIS, LDAP or SQL, patterns are +# networked tables such as NIS, LDAP or SQL, patterns are # tried in the order as listed below: # # user@domain -# Matches user@domain. This form has precedence over +# Matches user@domain. This form has precedence over # all other forms. # # user Matches user@site when site is $myorigin, when site @@ -62,59 +68,59 @@ # in $inet_interfaces or $proxy_interfaces. # # @domain -# Matches other addresses in domain. This form has +# Matches other addresses in domain. This form has # the lowest precedence. # # ADDRESS EXTENSION # When a mail address localpart contains the optional recip- -# ient delimiter (e.g., user+foo@domain), the lookup order +# ient delimiter (e.g., user+foo@domain), the lookup order # becomes: user+foo@domain, user@domain, user+foo, user, and # @domain. # # REGULAR EXPRESSION TABLES -# This section describes how the table lookups change when -# the table is given in the form of regular expressions or -# when lookups are directed to a TCP-based server. For a +# This section describes how the table lookups change when +# the table is given in the form of regular expressions or +# when lookups are directed to a TCP-based server. For a # description of regular expression lookup table syntax, see # regexp_table(5) or pcre_table(5). For a description of the # TCP client/server table lookup protocol, see tcp_table(5). -# This feature is not available up to and including Postfix +# This feature is not available up to and including Postfix # version 2.2. # -# Each pattern is a regular expression that is applied to +# Each pattern is a regular expression that is applied to # the entire address being looked up. Thus, user@domain mail -# addresses are not broken up into their user and @domain +# addresses are not broken up into their user and @domain # constituent parts, nor is user+foo broken up into user and # foo. # -# Patterns are applied in the order as specified in the ta- -# ble, 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 -# the additional feature that parenthesized substrings from +# Results are the same as with indexed file lookups, with +# the additional feature that parenthesized substrings from # the pattern can be interpolated as $1, $2 and so on. # # TCP-BASED TABLES -# This section describes how the table lookups change when +# 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_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 +# user@domain mail addresses are not broken up into their # user and @domain constituent parts, nor is user+foo broken # up into user and foo. # # Results are the same as with indexed file lookups. # # BUGS -# The table format does not understand quoting conventions. +# The table format does not understand quoting conventions. # # CONFIGURATION PARAMETERS -# The following main.cf parameters are especially relevant. -# The text below provides only a parameter summary. See +# The following main.cf parameters are especially relevant. +# The text below provides only a parameter summary. See # postconf(5) for more details including examples. # # relocated_maps @@ -123,12 +129,12 @@ # Other parameters of interest: # # inet_interfaces -# The network interface addresses that this system +# The network interface addresses that this system # receives mail on. You need to stop and start Post- # fix when this parameter changes. # # mydestination -# List of domains that this mail system considers +# List of domains that this mail system considers # local. # # myorigin @@ -145,13 +151,13 @@ # postconf(5), configuration parameters # # 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) diff --git a/postfix/conf/transport b/postfix/conf/transport index c3718ac08..e83b52a09 100644 --- a/postfix/conf/transport +++ b/postfix/conf/transport @@ -63,6 +63,12 @@ # way as described below under "REGULAR EXPRESSION TABLES" # and "TCP-BASED TABLES". # +# CASE FOLDING +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. +# # TABLE FORMAT # The input format for the postmap(1) command is as follows: # @@ -71,125 +77,125 @@ # domain, use the corresponding result. # # blank lines and comments -# Empty lines and whitespace-only lines are ignored, -# as are lines whose first non-whitespace character +# Empty lines and whitespace-only lines are ignored, +# as are lines whose first non-whitespace character # is a `#'. # # multi-line text -# A logical line starts with non-whitespace text. A -# line that starts with whitespace continues a logi- +# A logical line starts with non-whitespace text. A +# line that starts with whitespace continues a logi- # cal line. # -# The pattern specifies an email address, a domain name, or -# a domain name hierarchy, as described in section "TABLE +# The pattern specifies an email address, a domain name, or +# a domain name hierarchy, as described in section "TABLE # LOOKUP". # -# The result is of the form transport:nexthop and specifies +# The result is of the form transport:nexthop and specifies # how or where to deliver mail. This is described in section # "RESULT FORMAT". # # TABLE SEARCH ORDER # With lookups from indexed files such as DB or DBM, or from -# networked tables such as NIS, LDAP or SQL, patterns are +# networked tables such as NIS, LDAP or SQL, patterns are # tried in the order as listed below: # # user+extension@domain transport:nexthop -# Deliver mail for user+extension@domain through +# Deliver mail for user+extension@domain through # transport to nexthop. # # user@domain transport:nexthop -# Deliver mail for user@domain through transport to +# Deliver mail for user@domain through transport to # nexthop. # # domain transport:nexthop -# Deliver mail for domain through transport to nex- +# Deliver mail for domain through transport to nex- # thop. # # .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- -# ting. Otherwise, a domain name matches itself and +# 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- +# ting. Otherwise, a domain name matches itself and # its subdomains. # # Note 1: the special pattern * represents any address (i.e. # it functions as the wild-card pattern). # -# Note 2: the null recipient address is looked up as +# Note 2: the null recipient address is looked up as # $empty_address_recipient@$myhostname (default: mailer-dae- # mon@hostname). # -# Note 3: user@domain or user+extension@domain lookup is +# Note 3: user@domain or user+extension@domain lookup is # available in Postfix 2.0 and later. # # RESULT FORMAT -# The lookup result is of the form transport:nexthop. The -# transport field specifies a mail delivery transport such -# as smtp or local. The nexthop field specifies where and +# The lookup result is of the form transport:nexthop. The +# transport field specifies a mail delivery transport such +# as smtp or local. The nexthop field specifies where and # how to deliver mail. # -# The transport field specifies the name of a mail delivery +# The transport field specifies the name of a mail delivery # transport (the first name of a mail delivery service entry # in the Postfix master.cf file). # -# The interpretation of the nexthop field is transport -# dependent. In the case of SMTP, specify a service on a -# non-default port as host:service, and disable MX (mail -# exchanger) DNS lookups with [host] or [host]:port. The [] +# The interpretation of the nexthop field is transport +# dependent. In the case of SMTP, specify a service on a +# non-default port as host:service, and disable MX (mail +# exchanger) DNS lookups with [host] or [host]:port. The [] # form is required when you specify an IP address instead of # a hostname. # -# A null transport and null nexthop result means "do not -# change": use the delivery transport and nexthop informa- -# tion that would be used when the entire transport table +# A null transport and null nexthop result means "do not +# change": use the delivery transport and nexthop informa- +# tion that would be used when the entire transport table # did not exist. # -# A non-null transport field with a null nexthop field +# A non-null transport field with a null nexthop field # resets the nexthop information to the recipient domain. # -# A null transport field with non-null nexthop field does +# A null transport field with non-null nexthop field does # not modify the transport information. # # EXAMPLES -# In order to deliver internal mail directly, while using a -# mail relay for all other mail, specify a null entry for -# internal destinations (do not change the delivery trans- -# port or the nexthop information) and specify a wildcard +# In order to deliver internal mail directly, while using a +# mail relay for all other mail, specify a null entry for +# internal destinations (do not change the delivery trans- +# port or the nexthop information) and specify a wildcard # for all other destinations. # # my.domain : # .my.domain : # * smtp:outbound-relay.my.domain # -# In order to send mail for example.com and its subdomains +# In order to send mail for example.com and its subdomains # via the uucp transport to the UUCP host named example: # # example.com uucp:example # .example.com uucp:example # -# When no nexthop host name is specified, the destination -# domain name is used instead. For example, the following -# directs mail for user@example.com via the slow transport -# to a mail exchanger for example.com. The slow transport +# When no nexthop host name is specified, the destination +# domain name is used instead. For example, the following +# directs mail for user@example.com via the slow transport +# to a mail exchanger for example.com. The slow transport # could be configured to run at most one delivery process at # a time: # # example.com slow: # # When no transport is specified, Postfix uses the transport -# that matches the address domain class (see DESCRIPTION -# above). The following sends all mail for example.com and +# that matches the address domain class (see DESCRIPTION +# above). The following sends all mail for example.com and # its subdomains to host gateway.example.com: # # example.com :[gateway.example.com] # .example.com :[gateway.example.com] # -# In the above example, the [] suppress MX lookups. This -# prevents mail routing loops when your machine is primary +# In the above example, the [] suppress MX lookups. This +# prevents mail routing loops when your machine is primary # MX host for example.com. # -# In the case of delivery via SMTP, one may specify host- +# In the case of delivery via SMTP, one may specify host- # name:service instead of just a host: # # example.com smtp:bar.example:2025 @@ -201,57 +207,57 @@ # # The error mailer can be used to bounce mail: # -# .example.com error:mail for *.example.com is not +# .example.com error:mail for *.example.com is not # deliverable # -# This causes all mail for user@anything.example.com to be +# This causes all mail for user@anything.example.com to be # bounced. # # REGULAR EXPRESSION TABLES -# This section describes how the table lookups change when +# This section describes how the table lookups change when # the table is given in the form of regular expressions. For -# a description of regular expression lookup table syntax, +# a description of regular expression lookup table syntax, # see regexp_table(5) or pcre_table(5). # -# Each pattern is a regular expression that is applied to -# the entire address being looked up. Thus, -# some.domain.hierarchy is not looked up via its parent -# domains, nor is user+foo@domain looked up as user@domain. +# Each pattern is a regular expression that is applied to +# the entire address being looked up. Thus, +# some.domain.hierarchy is not looked up via its parent +# domains, nor is user+foo@domain looked up as user@domain. # -# Patterns are applied in the order as specified in the ta- -# ble, 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 -# the additional feature that parenthesized substrings from +# Results are the same as with indexed file lookups, with +# the additional feature that parenthesized substrings from # the pattern can be interpolated as $1, $2 and so on. # # TCP-BASED TABLES -# This section describes how the table lookups change when +# 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_ta- # ble(5). This feature is not available up to and including # Postfix version 2.2. # -# Each lookup operation uses the entire recipient address -# once. Thus, some.domain.hierarchy is not looked up via -# its parent domains, nor is user+foo@domain looked up as +# Each lookup operation uses the entire recipient address +# once. Thus, some.domain.hierarchy is not looked up via +# its parent domains, nor is user+foo@domain looked up as # user@domain. # # Results are the same as with indexed file lookups. # # CONFIGURATION PARAMETERS -# The following main.cf parameters are especially relevant. -# The text below provides only a parameter summary. See +# The following main.cf parameters are especially relevant. +# The text below provides only a parameter summary. See # postconf(5) for more details including examples. # # empty_address_recipient -# The address that is looked up instead of the null +# The address that is looked up instead of the null # sender address. # # parent_domain_matches_subdomains -# List of Postfix features that use domain.tld pat- -# terns to match sub.domain.tld (as opposed to +# List of Postfix features that use domain.tld pat- +# terns to match sub.domain.tld (as opposed to # requiring .domain.tld patterns). # # transport_maps @@ -263,13 +269,13 @@ # postmap(1), Postfix lookup table manager # # 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 # FILTER_README, external content filter # # 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/conf/virtual b/postfix/conf/virtual index c26162787..1790f062a 100644 --- a/postfix/conf/virtual +++ b/postfix/conf/virtual @@ -56,40 +56,46 @@ # way as described below under "REGULAR EXPRESSION TABLES" # and "TCP-BASED TABLES". # +# CASE FOLDING +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. +# # TABLE FORMAT # The input format for the postmap(1) command is as follows: # # pattern result -# When pattern matches a mail address, replace it by +# When pattern matches a mail address, replace it by # the corresponding result. # # blank lines and comments -# Empty lines and whitespace-only lines are ignored, -# as are lines whose first non-whitespace character +# Empty lines and whitespace-only lines are ignored, +# as are lines whose first non-whitespace character # is a `#'. # # multi-line text -# A logical line starts with non-whitespace text. A -# line that starts with whitespace continues a logi- +# A logical line starts with non-whitespace text. A +# line that starts with whitespace continues a logi- # cal line. # # TABLE SEARCH ORDER # With lookups from indexed files such as DB or DBM, or from -# networked tables such as NIS, LDAP or SQL, patterns are +# networked tables such as NIS, LDAP or SQL, patterns are # tried in the order as listed below: # # user@domain address, address, ... -# Redirect mail for user@domain to address. This +# Redirect mail for user@domain to address. This # form has the highest precedence. # # user address, address, ... # Redirect mail for user@site to address when site is -# equal to $myorigin, when site is listed in $mydes- -# tination, or when it is listed in $inet_interfaces +# equal to $myorigin, when site is listed in $mydes- +# tination, or when it is listed in $inet_interfaces # or $proxy_interfaces. # -# This functionality overlaps with functionality of -# the local aliases(5) database. The difference is +# This functionality overlaps with functionality of +# the local aliases(5) database. The difference is # that virtual(5) mapping can be applied to non-local # addresses. # @@ -100,12 +106,12 @@ # RESULT ADDRESS REWRITING # The lookup result is subject to address rewriting: # -# o When the result has the form @otherdomain, the -# result becomes the same user in otherdomain. This +# o When the result has the form @otherdomain, the +# result becomes the same user in otherdomain. This # works only for the first address in a multi-address # lookup result. # -# o When "append_at_myorigin=yes", append "@$myorigin" +# o When "append_at_myorigin=yes", append "@$myorigin" # to addresses without "@domain". # # o When "append_dot_mydomain=yes", append ".$mydomain" @@ -113,29 +119,29 @@ # # ADDRESS EXTENSION # When a mail address localpart contains the optional recip- -# ient delimiter (e.g., user+foo@domain), the lookup order +# ient delimiter (e.g., user+foo@domain), the lookup order # becomes: user+foo@domain, user@domain, user+foo, user, and # @domain. # -# The propagate_unmatched_extensions parameter controls -# whether an unmatched address extension (+foo) is propa- +# The propagate_unmatched_extensions parameter controls +# whether an unmatched address extension (+foo) is propa- # gated to the result of table lookup. # # VIRTUAL ALIAS DOMAINS -# Besides virtual aliases, the virtual alias table can also +# Besides virtual aliases, the virtual alias table can also # be used to implement virtual alias domains. With a virtual -# alias domain, all recipient addresses are aliased to +# alias domain, all recipient addresses are aliased to # addresses in other domains. # # Virtual alias domains are not to be confused with the vir- # tual mailbox domains that are implemented with the Postfix # virtual(8) mail delivery agent. With virtual mailbox -# domains, each recipient address can have its own mailbox. +# domains, each recipient address can have its own mailbox. # -# With a virtual alias domain, the virtual domain has its -# own user name space. Local (i.e. non-virtual) usernames -# are not visible in a virtual alias domain. In particular, -# local aliases(5) and local mailing lists are not visible +# With a virtual alias domain, the virtual domain has its +# own user name space. Local (i.e. non-virtual) usernames +# are not visible in a virtual alias domain. In particular, +# local aliases(5) and local mailing lists are not visible # as localname@virtual-alias.domain. # # Support for a virtual alias domain looks like: @@ -143,8 +149,8 @@ # /etc/postfix/main.cf: # virtual_alias_maps = hash:/etc/postfix/virtual # -# Note: some systems use dbm databases instead of hash. -# See the output from "postconf -m" for available data- +# Note: some systems use dbm databases instead of hash. +# See the output from "postconf -m" for available data- # base types. # # /etc/postfix/virtual: @@ -153,95 +159,95 @@ # user1@virtual-alias.domain address1 # user2@virtual-alias.domain address2, address3 # -# The virtual-alias.domain anything entry is required for a +# The virtual-alias.domain anything entry is required for a # virtual alias domain. Without this entry, mail is rejected -# with "relay access denied", or bounces with "mail loops +# with "relay access denied", or bounces with "mail loops # back to myself". # -# Do not specify virtual alias domain names in the main.cf +# Do not specify virtual alias domain names in the main.cf # mydestination or relay_domains configuration parameters. # -# With a virtual alias domain, the Postfix SMTP server -# accepts mail for known-user@virtual-alias.domain, and -# rejects mail for unknown-user@virtual-alias.domain as +# With a virtual alias domain, the Postfix SMTP server +# accepts mail for known-user@virtual-alias.domain, and +# rejects mail for unknown-user@virtual-alias.domain as # undeliverable. # -# Instead of specifying the virtual alias domain name via -# the virtual_alias_maps table, you may also specify it via +# Instead of specifying the virtual alias domain name via +# the virtual_alias_maps table, you may also specify it via # the main.cf virtual_alias_domains configuration parameter. -# This latter parameter uses the same syntax as the main.cf +# This latter parameter uses the same syntax as the main.cf # mydestination configuration parameter. # # REGULAR EXPRESSION TABLES -# This section describes how the table lookups change when +# This section describes how the table lookups change when # the table is given in the form of regular expressions. For -# a description of regular expression lookup table syntax, +# a description of regular expression lookup table syntax, # see regexp_table(5) or pcre_table(5). # -# Each pattern is a regular expression that is applied to +# Each pattern is a regular expression that is applied to # the entire address being looked up. Thus, user@domain mail -# addresses are not broken up into their user and @domain +# addresses are not broken up into their user and @domain # constituent parts, nor is user+foo broken up into user and # foo. # -# Patterns are applied in the order as specified in the ta- -# ble, 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 -# the additional feature that parenthesized substrings from +# Results are the same as with indexed file lookups, with +# the additional feature that parenthesized substrings from # the pattern can be interpolated as $1, $2 and so on. # # TCP-BASED TABLES -# This section describes how the table lookups change when +# 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_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 +# user@domain mail addresses are not broken up into their # user and @domain constituent parts, nor is user+foo broken # up into user and foo. # # Results are the same as with indexed file lookups. # # BUGS -# The table format does not understand quoting conventions. +# The table format does not understand quoting conventions. # # CONFIGURATION PARAMETERS -# The following main.cf parameters are especially relevant -# to this topic. See the Postfix main.cf file for syntax -# details and for default values. Use the "postfix reload" +# The following main.cf parameters are especially relevant +# to this topic. See the Postfix main.cf file for syntax +# details and for default values. Use the "postfix reload" # command after a configuration change. # # virtual_alias_maps # List of virtual aliasing tables. # # virtual_alias_domains -# List of virtual alias domains. This uses the same +# List of virtual alias domains. This uses the same # syntax as the mydestination parameter. # # propagate_unmatched_extensions -# A list of address rewriting or forwarding mecha- -# nisms that propagate an address extension from the -# original address to the result. Specify zero or -# more of canonical, virtual, alias, forward, +# A list of address rewriting or forwarding mecha- +# nisms that propagate an address extension from the +# original address to the result. Specify zero or +# more of canonical, virtual, alias, forward, # include, or generic. # # Other parameters of interest: # # inet_interfaces -# The network interface addresses that this system +# The network interface addresses that this system # receives mail on. You need to stop and start Post- # fix when this parameter changes. # # mydestination -# List of domains that this mail system considers +# List of domains that this mail system considers # local. # # myorigin -# The domain that is appended to any address that +# The domain that is appended to any address that # does not have a domain. # # owner_request_special @@ -260,14 +266,14 @@ # canonical(5), canonical address mapping # # 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 # VIRTUAL_README, domain hosting 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/access.5.html b/postfix/html/access.5.html index bb7a9bcfc..586508aae 100644 --- a/postfix/html/access.5.html +++ b/postfix/html/access.5.html @@ -43,6 +43,12 @@ ACCESS(5) ACCESS(5) way as described below under "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +CASE FOLDING + The search string is folded to lowercase before database + lookup. As of Postfix 2.3, the search string is not case + folded with database types such as regexp: or pcre: whose + lookup fields can match both upper and lower case. + TABLE FORMAT The input format for the postmap(1) command is as follows: @@ -51,53 +57,53 @@ ACCESS(5) ACCESS(5) address, perform the corresponding action. blank lines and comments - Empty lines and whitespace-only lines are ignored, - as are lines whose first non-whitespace character + Empty lines and whitespace-only lines are ignored, + as are lines whose first non-whitespace character is a `#'. multi-line text - A logical line starts with non-whitespace text. A - line that starts with whitespace continues a logi- + A logical line starts with non-whitespace text. A + line that starts with whitespace continues a logi- cal line. EMAIL ADDRESS PATTERNS With lookups from indexed files such as DB or DBM, or from - networked tables such as NIS, LDAP or SQL, patterns are + networked tables such as NIS, LDAP or SQL, patterns are tried in the order as listed below: user@domain Matches the specified mail address. domain.tld - Matches domain.tld as the domain part of an email + Matches domain.tld as the domain part of an email address. The pattern domain.tld also matches subdomains, but only when the string smtpd_access_maps is listed in - the Postfix parent_domain_matches_subdomains con- - figuration setting (note that this is the default - for some versions of Postfix). Otherwise, specify - .domain.tld (note the initial dot) in order to + the Postfix parent_domain_matches_subdomains con- + figuration setting (note that this is the default + for some versions of Postfix). Otherwise, specify + .domain.tld (note the initial dot) in order to match subdomains. - user@ Matches all mail addresses with the specified user + user@ Matches all mail addresses with the specified user part. - Note: lookup of the null sender address is not possible - with some types of lookup table. By default, Postfix uses - <> as the lookup key for such addresses. The value is - specified with the smtpd_null_access_lookup_key parameter - in the Postfix main.cf file. + Note: lookup of the null sender address is not possible + with some types of lookup table. By default, Postfix uses + <> as the lookup key for such addresses. The value is + specified with the smtpd_null_access_lookup_key parameter + in the Postfix main.cf file. EMAIL ADDRESS EXTENSION When a mail address localpart contains the optional recip- - ient delimiter (e.g., user+foo@domain), the lookup order - becomes: user+foo@domain, user@domain, domain, user+foo@, + ient delimiter (e.g., user+foo@domain), the lookup order + becomes: user+foo@domain, user@domain, domain, user+foo@, and user@. HOST NAME/ADDRESS PATTERNS With lookups from indexed files such as DB or DBM, or from - networked tables such as NIS, LDAP or SQL, the following + networked tables such as NIS, LDAP or SQL, the following lookup patterns are examined in the order as listed: domain.tld @@ -105,9 +111,9 @@ ACCESS(5) ACCESS(5) The pattern domain.tld also matches subdomains, but only when the string smtpd_access_maps is listed in - the Postfix parent_domain_matches_subdomains con- + the Postfix parent_domain_matches_subdomains con- figuration setting. Otherwise, specify .domain.tld - (note the initial dot) in order to match subdo- + (note the initial dot) in order to match subdo- mains. net.work.addr.ess @@ -116,21 +122,21 @@ ACCESS(5) ACCESS(5) net.work - net Matches the specified IPv4 host address or subnet- - work. An IPv4 host address is a sequence of four + net Matches the specified IPv4 host address or subnet- + work. An IPv4 host address is a sequence of four decimal octets separated by ".". - Subnetworks are matched by repeatedly truncating + Subnetworks are matched by repeatedly truncating the last ".octet" from the remote IPv4 host address - string until a match is found in the access table, + string until a match is found in the access table, or until further truncation is not possible. NOTE 1: The information in the access map should be in canonical form, with unnecessary null characters - eliminated. Address information must not be + eliminated. Address information must not be enclosed with "[]" characters. - NOTE 2: use the cidr lookup table type to specify + NOTE 2: use the cidr lookup table type to specify network/netmask patterns. See cidr_table(5) for details. @@ -140,12 +146,12 @@ ACCESS(5) ACCESS(5) net:work - net Matches the specified IPv6 host address or subnet- - work. An IPv6 host address is a sequence of three - to eight hexadecimal octet pairs separated by ":". + net Matches the specified IPv6 host address or subnet- + work. An IPv6 host address is a sequence of three + to eight hexadecimal octet pairs separated by ":". - Subnetworks are matched by repeatedly truncating - the last ":octetpair" from the remote IPv6 host + Subnetworks are matched by repeatedly truncating + the last ":octetpair" from the remote IPv6 host address string until a match is found in the access table, or until further truncation is not possible. @@ -155,10 +161,10 @@ ACCESS(5) ACCESS(5) NOTE 2: The information in the access map should be in canonical form, with unnecessary null characters - eliminated. Address information must not be + eliminated. Address information must not be enclosed with "[]" characters. - NOTE 3: use the cidr lookup table type to specify + NOTE 3: use the cidr lookup table type to specify network/netmask patterns. See cidr_table(5) for details. @@ -169,33 +175,33 @@ ACCESS(5) ACCESS(5) all-numerical An all-numerical result is treated as OK. This for- - mat is generated by address-based relay authoriza- + mat is generated by address-based relay authoriza- tion schemes such as pop-before-smtp. REJECT ACTIONS - Postfix version 2.3 and later support enhanced status - codes. When no code is specified at the beginning of the + Postfix version 2.3 and later support enhanced status + codes. When no code is specified at the beginning of the text below, Postfix inserts a default enhanced status code - of "5.7.1" in the case of reject actions, and "4.7.1" in - the case of defer actions. See "ENHANCED STATUS CODES" + of "5.7.1" in the case of reject actions, and "4.7.1" in + the case of defer actions. See "ENHANCED STATUS CODES" below. 4NN text 5NN text - Reject the address etc. that matches the pattern, + Reject the address etc. that matches the pattern, and respond with the numerical three-digit code and - text. 4NN means "try again later", while 5NN means + text. 4NN means "try again later", while 5NN means "do not try again". REJECT optional text... - Reject the address etc. that matches the pattern. - Reply with $reject_code optional text... when the - optional text is specified, otherwise reply with a + Reject the address etc. that matches the pattern. + Reply with $reject_code optional text... when the + optional text is specified, otherwise reply with a generic error response message. DEFER_IF_REJECT optional text... - Defer the request if some later restriction would + Defer the request if some later restriction would result in a REJECT action. Reply with "450 optional text... when the optional text is specified, other- wise reply with a generic error response message. @@ -203,10 +209,10 @@ ACCESS(5) ACCESS(5) This feature is available in Postfix 2.1 and later. DEFER_IF_PERMIT optional text... - Defer the request if some later restriction would - result in a an explicit or implicit PERMIT action. - Reply with "450 optional text... when the optional - text is specified, otherwise reply with a generic + Defer the request if some later restriction would + result in a an explicit or implicit PERMIT action. + Reply with "450 optional text... when the optional + text is specified, otherwise reply with a generic error response message. This feature is available in Postfix 2.1 and later. @@ -217,161 +223,161 @@ ACCESS(5) ACCESS(5) reject_unauth_destination, and so on). DISCARD optional text... - Claim successful delivery and silently discard the - message. Log the optional text if specified, oth- + Claim successful delivery and silently discard the + message. Log the optional text if specified, oth- erwise log a generic message. - Note: this action currently affects all recipients - of the message. To discard only one recipient - without discarding the entire message, use the + Note: this action currently affects all recipients + of the message. To discard only one recipient + without discarding the entire message, use the transport(5) table to direct mail to the discard(8) service. This feature is available in Postfix 2.0 and later. - DUNNO Pretend that the lookup key was not found. This - prevents Postfix from trying substrings of the - lookup key (such as a subdomain name, or a network + DUNNO Pretend that the lookup key was not found. This + prevents Postfix from trying substrings of the + lookup key (such as a subdomain name, or a network address subnetwork). This feature is available in Postfix 2.0 and later. FILTER transport:destination - After the message is queued, send the entire mes- + After the message is queued, send the entire mes- sage through the specified external content filter. - The transport:destination syntax is described in - the transport(5) manual page. More information - about external content filters is in the Postfix + The transport:destination syntax is described in + the transport(5) manual page. More information + about external content filters is in the Postfix FILTER_README file. - Note: this action overrides the main.cf con- + Note: this action overrides the main.cf con- tent_filter setting, and currently affects all recipients of the message. This feature is available in Postfix 2.0 and later. HOLD optional text... - Place the message on the hold queue, where it will - sit until someone either deletes it or releases it - for delivery. Log the optional text if specified, + Place the message on the hold queue, where it will + sit until someone either deletes it or releases it + for delivery. Log the optional text if specified, otherwise log a generic message. - Mail that is placed on hold can be examined with - the postcat(1) command, and can be destroyed or + Mail that is placed on hold can be examined with + the postcat(1) command, and can be destroyed or released with the postsuper(1) command. - Note: use "postsuper -r" to release mail that was - kept on hold for a significant fraction of $maxi- + Note: use "postsuper -r" to release mail that was + kept on hold for a significant fraction of $maxi- mal_queue_lifetime or $bounce_queue_lifetime, or longer. - Note: this action currently affects all recipients + Note: this action currently affects all recipients of the message. This feature is available in Postfix 2.0 and later. PREPEND headername: headervalue - Prepend the specified message header to the mes- + Prepend the specified message header to the mes- sage. When this action is used multiple times, the - first prepended header appears before the second + first prepended header appears before the second etc. prepended header. - Note: this action does not support multi-line mes- + Note: this action does not support multi-line mes- sage headers. - Note: this action must be used before the message - content is received; it cannot be used in + Note: this action must be used before the message + content is received; it cannot be used in smtpd_end_of_data_restrictions. This feature is available in Postfix 2.1 and later. REDIRECT user@domain - After the message is queued, send the message to + After the message is queued, send the message to the specified address instead of the intended recipient(s). - Note: this action overrides the FILTER action, and + Note: this action overrides the FILTER action, and currently affects all recipients of the message. This feature is available in Postfix 2.1 and later. WARN optional text... Log a warning with the optional text, together with - client information and if available, with helo, + client information and if available, with helo, sender, recipient and protocol information. This feature is available in Postfix 2.1 and later. ENHANCED STATUS CODES When an enhanced status code is specified in an access ta- - ble, it is subject to modification. The following trans- - formations are needed when the same access table is used - for client, helo, sender, or recipient access restric- - tions; they happen regardless of whether Postfix replies + ble, it is subject to modification. The following trans- + formations are needed when the same access table is used + for client, helo, sender, or recipient access restric- + tions; they happen regardless of whether Postfix replies to a MAIL FROM, RCPT TO or other SMTP command. - o When a sender address matches a REJECT action, the - Postfix SMTP server will transform a recipient DSN - status (e.g., 4.1.1-4.1.6) into the corresponding + o When a sender address matches a REJECT action, the + Postfix SMTP server will transform a recipient DSN + status (e.g., 4.1.1-4.1.6) into the corresponding sender DSN status, and vice versa. - o When non-address information matches a REJECT - action (such as the HELO command argument or the - client hostname/address), the Postfix SMTP server - will transform a sender or recipient DSN status - into a generic non-address DSN status (e.g., + o When non-address information matches a REJECT + action (such as the HELO command argument or the + client hostname/address), the Postfix SMTP server + will transform a sender or recipient DSN status + into a generic non-address DSN status (e.g., 4.0.0). REGULAR EXPRESSION TABLES - This section describes how the table lookups change when + This section describes how the table lookups change when the table is given in the form of regular expressions. For - a description of regular expression lookup table syntax, + a description of regular expression lookup table syntax, see regexp_table(5) or pcre_table(5). - Each pattern is a regular expression that is applied to + Each pattern is a regular expression that is applied to the entire string being looked up. Depending on the appli- - cation, that string is an entire client hostname, an + cation, that string is an entire client hostname, an entire client IP address, or an entire mail address. Thus, no parent domain or parent network search is done, - user@domain mail addresses are not broken up into their + user@domain mail addresses are not broken up into their user@ and domain constituent parts, nor is user+foo broken up into user and foo. - Patterns are applied in the order as specified in the ta- - ble, 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. - Actions are the same as with indexed file lookups, with - the additional feature that parenthesized substrings from + Actions are the same as with indexed file lookups, with + the additional feature that parenthesized substrings from the pattern can be interpolated as $1, $2 and so on. TCP-BASED TABLES - This section describes how the table lookups change when + 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_ta- ble(5). This feature is not available up to and including Postfix version 2.2. - Each lookup operation uses the entire query string once. - Depending on the application, that string is an entire + Each lookup operation uses the entire query string once. + Depending on the application, that string is an entire client hostname, an entire client IP address, or an entire - mail address. Thus, no parent domain or parent network - search is done, user@domain mail addresses are not broken - up into their user@ and domain constituent parts, nor is + mail address. Thus, no parent domain or parent network + search is done, user@domain mail addresses are not broken + up into their user@ and domain constituent parts, nor is user+foo broken up into user and foo. Actions are the same as with indexed file lookups. EXAMPLE - The following example uses an indexed file, so that the - order of table entries does not matter. The example per- - mits access by the client at address 1.2.3.4 but rejects - all other clients in 1.2.3.0/24. Instead of hash lookup - tables, some systems use dbm. Use the command "postconf - -m" to find out what lookup tables Postfix supports on + The following example uses an indexed file, so that the + order of table entries does not matter. The example per- + mits access by the client at address 1.2.3.4 but rejects + all other clients in 1.2.3.0/24. Instead of hash lookup + tables, some systems use dbm. Use the command "postconf + -m" to find out what lookup tables Postfix supports on your system. - /etc/postfix/main.cf: + /etc/postfix/main.cf: smtpd_client_restrictions = check_client_access hash:/etc/postfix/access @@ -383,7 +389,7 @@ ACCESS(5) ACCESS(5) editing the file. BUGS - The table format does not understand quoting conventions. + The table format does not understand quoting conventions. SEE ALSO postmap(1), Postfix lookup table manager @@ -396,7 +402,7 @@ ACCESS(5) ACCESS(5) DATABASE_README, Postfix lookup table overview 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/aliases.5.html b/postfix/html/aliases.5.html index 708f24edc..ab5cae5bd 100644 --- a/postfix/html/aliases.5.html +++ b/postfix/html/aliases.5.html @@ -107,66 +107,70 @@ ALIASES(5) ALIASES(5) whether an unmatched address extension (+foo) is propa- gated to the result of table lookup. +CASE FOLDING + The local(8) delivery agent always folds the search string + to lowercase before database lookup. + SECURITY - The local(8) delivery agent disallows regular expression - substitution of $1 etc. in alias_maps, because that would + The local(8) delivery agent disallows regular expression + substitution of $1 etc. in alias_maps, because that would open a security hole. - The local(8) delivery agent will silently ignore requests - to use the proxymap(8) server within alias_maps. Instead - it will open the table directly. Before Postfix version - 2.2, the local(8) delivery agent will terminate with a + The local(8) delivery agent will silently ignore requests + to use the proxymap(8) server within alias_maps. Instead + it will open the table directly. Before Postfix version + 2.2, the local(8) delivery agent will terminate with a fatal error. CONFIGURATION PARAMETERS - The following main.cf parameters are especially relevant. - The text below provides only a parameter summary. See + The following main.cf parameters are especially relevant. + The text below provides only a parameter summary. See postconf(5) for more details including examples. alias_database - List of alias databases that are updated by the + List of alias databases that are updated by the newaliases(1) command. alias_maps - List of alias databases queried by the local(8) + List of alias databases queried by the local(8) delivery agent. allow_mail_to_commands - Restrict the usage of mail delivery to external + Restrict the usage of mail delivery to external command. allow_mail_to_files - Restrict the usage of mail delivery to external + Restrict the usage of mail delivery to external file. expand_owner_alias When delivering to an alias that has an owner- com- - panion alias, set the envelope sender address to - the right-hand side of the owner alias, instead + panion alias, set the envelope sender address to + the right-hand side of the owner alias, instead using of the left-hand side address. propagate_unmatched_extensions - A list of address rewriting or forwarding mecha- - nisms that propagate an address extension from the - original address to the result. Specify zero or - more of canonical, virtual, alias, forward, + A list of address rewriting or forwarding mecha- + nisms that propagate an address extension from the + original address to the result. Specify zero or + more of canonical, virtual, alias, forward, include, or generic. owner_request_special - Give special treatment to owner-listname and list- + Give special treatment to owner-listname and list- name-request addresses. recipient_delimiter - Delimiter that separates recipients from address + Delimiter that separates recipients from address extensions. Available in Postfix version 2.3 and later: frozen_delivered_to - Update the local(8) delivery agent's Delivered-To: - address (see prepend_delivered_header) only once, - at the start of a delivery; do not update the - Delivered-To: address while expanding aliases or + Update the local(8) delivery agent's Delivered-To: + address (see prepend_delivered_header) only once, + at the start of a delivery; do not update the + Delivered-To: address while expanding aliases or .forward files. STANDARDS @@ -182,7 +186,7 @@ ALIASES(5) ALIASES(5) DATABASE_README, Postfix lookup table overview 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/canonical.5.html b/postfix/html/canonical.5.html index e7cf78a7a..fbcfc5e66 100644 --- a/postfix/html/canonical.5.html +++ b/postfix/html/canonical.5.html @@ -65,44 +65,50 @@ CANONICAL(5) CANONICAL(5) The canonical(5) mapping is not to be confused with local aliasing. Use the aliases(5) map for that purpose. +CASE FOLDING + The search string is folded to lowercase before database + lookup. As of Postfix 2.3, the search string is not case + folded with database types such as regexp: or pcre: whose + lookup fields can match both upper and lower case. + TABLE FORMAT The input format for the postmap(1) command is as follows: pattern result - When pattern matches a mail address, replace it by + When pattern matches a mail address, replace it by the corresponding result. blank lines and comments - Empty lines and whitespace-only lines are ignored, - as are lines whose first non-whitespace character + Empty lines and whitespace-only lines are ignored, + as are lines whose first non-whitespace character is a `#'. multi-line text - A logical line starts with non-whitespace text. A - line that starts with whitespace continues a logi- + A logical line starts with non-whitespace text. A + line that starts with whitespace continues a logi- cal line. TABLE SEARCH ORDER With lookups from indexed files such as DB or DBM, or from - networked tables such as NIS, LDAP or SQL, patterns are + networked tables such as NIS, LDAP or SQL, patterns are tried in the order as listed below: user@domain address - Replace user@domain by address. This form has the + Replace user@domain by address. This form has the highest precedence. - This is useful to clean up addresses produced by - legacy mail systems. It can also be used to pro- - duce Firstname.Lastname style addresses, but see + This is useful to clean up addresses produced by + legacy mail systems. It can also be used to pro- + duce Firstname.Lastname style addresses, but see below for a simpler solution. user address - Replace user@site by address when site is equal to - $myorigin, when site is listed in $mydestination, - or when it is listed in $inet_interfaces or + Replace user@site by address when site is equal to + $myorigin, when site is listed in $mydestination, + or when it is listed in $inet_interfaces or $proxy_interfaces. - This form is useful for replacing login names by + This form is useful for replacing login names by Firstname.Lastname. @domain address @@ -112,10 +118,10 @@ CANONICAL(5) CANONICAL(5) RESULT ADDRESS REWRITING The lookup result is subject to address rewriting: - o When the result has the form @otherdomain, the + o When the result has the form @otherdomain, the result becomes the same user in otherdomain. - o When "append_at_myorigin=yes", append "@$myorigin" + o When "append_at_myorigin=yes", append "@$myorigin" to addresses without "@domain". o When "append_dot_mydomain=yes", append ".$mydomain" @@ -123,58 +129,58 @@ CANONICAL(5) CANONICAL(5) ADDRESS EXTENSION When a mail address localpart contains the optional recip- - ient delimiter (e.g., user+foo@domain), the lookup order + ient delimiter (e.g., user+foo@domain), the lookup order becomes: user+foo@domain, user@domain, user+foo, user, and @domain. - The propagate_unmatched_extensions parameter controls - whether an unmatched address extension (+foo) is propa- + The propagate_unmatched_extensions parameter controls + whether an unmatched address extension (+foo) is propa- gated to the result of table lookup. REGULAR EXPRESSION TABLES - This section describes how the table lookups change when + This section describes how the table lookups change when the table is given in the form of regular expressions. For - a description of regular expression lookup table syntax, + a description of regular expression lookup table syntax, see regexp_table(5) or pcre_table(5). - Each pattern is a regular expression that is applied to + Each pattern is a regular expression that is applied to the entire address being looked up. Thus, user@domain mail - addresses are not broken up into their user and @domain + addresses are not broken up into their user and @domain constituent parts, nor is user+foo broken up into user and foo. - Patterns are applied in the order as specified in the ta- - ble, 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 - the additional feature that parenthesized substrings from + Results are the same as with indexed file lookups, with + the additional feature that parenthesized substrings from the pattern can be interpolated as $1, $2 and so on. TCP-BASED TABLES - This section describes how the table lookups change when + 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_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 + user@domain mail addresses are not broken up into their user and @domain constituent parts, nor is user+foo broken up into user and foo. Results are the same as with indexed file lookups. BUGS - The table format does not understand quoting conventions. + The table format does not understand quoting conventions. CONFIGURATION PARAMETERS - The following main.cf parameters are especially relevant. - The text below provides only a parameter summary. See + The following main.cf parameters are especially relevant. + The text below provides only a parameter summary. See postconf(5) for more details including examples. canonical_classes - What addresses are subject to canonical address + What addresses are subject to canonical address mapping. canonical_maps @@ -189,26 +195,26 @@ CANONICAL(5) CANONICAL(5) header sender addresses. propagate_unmatched_extensions - A list of address rewriting or forwarding mecha- - nisms that propagate an address extension from the - original address to the result. Specify zero or - more of canonical, virtual, alias, forward, + A list of address rewriting or forwarding mecha- + nisms that propagate an address extension from the + original address to the result. Specify zero or + more of canonical, virtual, alias, forward, include, or generic. Other parameters of interest: inet_interfaces - The network interface addresses that this system + The network interface addresses that this system 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 + 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 + 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 @@ -217,20 +223,20 @@ CANONICAL(5) CANONICAL(5) tor. masquerade_classes - List of address classes subject to masquerading: - zero or more of envelope_sender, envelope_recipi- + List of address classes subject to masquerading: + zero or more of envelope_sender, envelope_recipi- ent, header_sender, header_recipient. masquerade_domains - List of domains that hide their subdomain struc- + List of domains that hide their subdomain struc- ture. masquerade_exceptions - List of user names that are not subject to address + List of user names that are not subject to address masquerading. mydestination - List of domains that this mail system considers + List of domains that this mail system considers local. myorigin @@ -241,9 +247,9 @@ CANONICAL(5) CANONICAL(5) addresses. remote_header_rewrite_domain - Don't rewrite message headers from remote clients + Don't rewrite message headers from remote clients at all when this parameter is empty; otherwise, re- - write message headers and append the specified + write message headers and append the specified domain name to incomplete addresses. SEE ALSO @@ -257,7 +263,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/generic.5.html b/postfix/html/generic.5.html index f5aaa43cb..8ff79b1bb 100644 --- a/postfix/html/generic.5.html +++ b/postfix/html/generic.5.html @@ -53,36 +53,42 @@ GENERIC(5) GENERIC(5) way as described below under "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +CASE FOLDING + The search string is folded to lowercase before database + lookup. As of Postfix 2.3, the search string is not case + folded with database types such as regexp: or pcre: whose + lookup fields can match both upper and lower case. + TABLE FORMAT The input format for the postmap(1) command is as follows: pattern result - When pattern matches a mail address, replace it by + When pattern matches a mail address, replace it by the corresponding result. blank lines and comments - Empty lines and whitespace-only lines are ignored, - as are lines whose first non-whitespace character + Empty lines and whitespace-only lines are ignored, + as are lines whose first non-whitespace character is a `#'. multi-line text - A logical line starts with non-whitespace text. A - line that starts with whitespace continues a logi- + A logical line starts with non-whitespace text. A + line that starts with whitespace continues a logi- cal line. TABLE SEARCH ORDER With lookups from indexed files such as DB or DBM, or from - networked tables such as NIS, LDAP or SQL, patterns are + networked tables such as NIS, LDAP or SQL, patterns are tried in the order as listed below: user@domain address - Replace user@domain by address. This form has the + Replace user@domain by address. This form has the highest precedence. user address - Replace user@site by address when site is equal to - $myorigin, when site is listed in $mydestination, - or when it is listed in $inet_interfaces or + Replace user@site by address when site is equal to + $myorigin, when site is listed in $mydestination, + or when it is listed in $inet_interfaces or $proxy_interfaces. @domain address @@ -92,10 +98,10 @@ GENERIC(5) GENERIC(5) RESULT ADDRESS REWRITING The lookup result is subject to address rewriting: - o When the result has the form @otherdomain, the + o When the result has the form @otherdomain, the result becomes the same user in otherdomain. - o When "append_at_myorigin=yes", append "@$myorigin" + o When "append_at_myorigin=yes", append "@$myorigin" to addresses without "@domain". o When "append_dot_mydomain=yes", append ".$mydomain" @@ -103,58 +109,58 @@ GENERIC(5) GENERIC(5) ADDRESS EXTENSION When a mail address localpart contains the optional recip- - ient delimiter (e.g., user+foo@domain), the lookup order + ient delimiter (e.g., user+foo@domain), the lookup order becomes: user+foo@domain, user@domain, user+foo, user, and @domain. - The propagate_unmatched_extensions parameter controls - whether an unmatched address extension (+foo) is propa- + The propagate_unmatched_extensions parameter controls + whether an unmatched address extension (+foo) is propa- gated to the result of table lookup. REGULAR EXPRESSION TABLES - This section describes how the table lookups change when + This section describes how the table lookups change when the table is given in the form of regular expressions. For - a description of regular expression lookup table syntax, + a description of regular expression lookup table syntax, see regexp_table(5) or pcre_table(5). - Each pattern is a regular expression that is applied to + Each pattern is a regular expression that is applied to the entire address being looked up. Thus, user@domain mail - addresses are not broken up into their user and @domain + addresses are not broken up into their user and @domain constituent parts, nor is user+foo broken up into user and foo. - Patterns are applied in the order as specified in the ta- - ble, 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 - the additional feature that parenthesized substrings from + Results are the same as with indexed file lookups, with + the additional feature that parenthesized substrings from the pattern can be interpolated as $1, $2 and so on. TCP-BASED TABLES - This section describes how the table lookups change when + 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_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 + user@domain mail addresses are not broken up into their user and @domain constituent parts, nor is user+foo broken up into user and foo. Results are the same as with indexed file lookups. EXAMPLE - The following shows a generic mapping with an indexed - file. When mail is sent to a remote host via SMTP, this - replaces his@localdomain.local by his ISP mail address, - replaces her@localdomain.local by her ISP mail address, - and replaces other local addresses by his ISP account, - with an address extension of +local (this example assumes + The following shows a generic mapping with an indexed + file. When mail is sent to a remote host via SMTP, this + replaces his@localdomain.local by his ISP mail address, + replaces her@localdomain.local by her ISP mail address, + and replaces other local addresses by his ISP account, + with an address extension of +local (this example assumes that the ISP supports "+" style address extensions). - /etc/postfix/main.cf: + /etc/postfix/main.cf: smtp_generic_maps = hash:/etc/postfix/generic /etc/postfix/generic: @@ -162,35 +168,35 @@ GENERIC(5) GENERIC(5) her@localdomain.local heraccount@herisp.example @localdomain.local hisaccount+local@hisisp.example - Execute the command "postmap /etc/postfix/generic" when- - ever the table is changed. Instead of hash, some systems - use dbm database files. To find out what tables your sys- + Execute the command "postmap /etc/postfix/generic" when- + ever the table is changed. Instead of hash, some systems + use dbm database files. To find out what tables your sys- tem supports use the command "postconf -m". BUGS - The table format does not understand quoting conventions. + The table format does not understand quoting conventions. CONFIGURATION PARAMETERS - The following main.cf parameters are especially relevant. - The text below provides only a parameter summary. See + The following main.cf parameters are especially relevant. + The text below provides only a parameter summary. See postconf(5) for more details including examples. smtp_generic_maps Address mapping lookup table for envelope and - header sender and recipient addresses while deliv- + header sender and recipient addresses while deliv- ering mail via SMTP. propagate_unmatched_extensions - A list of address rewriting or forwarding mecha- - nisms that propagate an address extension from the - original address to the result. Specify zero or - more of canonical, virtual, alias, forward, + A list of address rewriting or forwarding mecha- + nisms that propagate an address extension from the + original address to the result. Specify zero or + more of canonical, virtual, alias, forward, include, or generic. Other parameters of interest: inet_interfaces - The network interface addresses that this system + The network interface addresses that this system receives mail on. You need to stop and start Post- fix when this parameter changes. @@ -200,7 +206,7 @@ GENERIC(5) GENERIC(5) tor. mydestination - List of domains that this mail system considers + List of domains that this mail system considers local. myorigin @@ -221,7 +227,7 @@ GENERIC(5) GENERIC(5) STANDARD_CONFIGURATION_README, configuration examples LICENSE - The Secure Mailer license must be distributed with this + The Secure Mailer license must be distributed with this software. HISTORY diff --git a/postfix/html/local.8.html b/postfix/html/local.8.html index 3fca90874..7b7526787 100644 --- a/postfix/html/local.8.html +++ b/postfix/html/local.8.html @@ -26,165 +26,171 @@ LOCAL(8) LOCAL(8) status reports are sent to the bounce(8), defer(8) or trace(8) daemon as appropriate. +CASE FOLDING + All delivery decisions are made using the bare recipient + name (i.e. the address localpart), folded to lower case. + See also under ADDRESS EXTENSION below for a few excep- + tions. + SYSTEM-WIDE AND USER-LEVEL ALIASING - The system administrator can set up one or more system- + The system administrator can set up one or more system- wide sendmail-style alias databases. Users can have send- - mail-style ~/.forward files. Mail for name is delivered - to the alias name, to destinations in ~name/.forward, to - the mailbox owned by the user name, or it is sent back as + mail-style ~/.forward files. Mail for name is delivered + to the alias name, to destinations in ~name/.forward, to + the mailbox owned by the user name, or it is sent back as undeliverable. - The system administrator can specify a comma/space sepa- - rated list of ~/.forward like files through the for- + The system administrator can specify a comma/space sepa- + rated list of ~/.forward like files through the for- ward_path configuration parameter. Upon delivery, the local delivery agent tries each pathname in the list until a file is found. Delivery via ~/..forward files is done with the privileges - of the recipient. Thus, ~/.forward like files must be - readable by the recipient, and their parent directory + of the recipient. Thus, ~/.forward like files must be + readable by the recipient, and their parent directory needs to have "execute" permission for the recipient. - The forward_path parameter is subject to interpolation of - $user (recipient username), $home (recipient home direc- + The forward_path parameter is subject to interpolation of + $user (recipient username), $home (recipient home direc- tory), $shell (recipient shell), $recipient (complete - recipient address), $extension (recipient address exten- - sion), $domain (recipient domain), $local (entire recipi- + recipient address), $extension (recipient address exten- + sion), $domain (recipient domain), $local (entire recipi- ent address localpart) and $recipient_delimiter. The forms - ${name?value} and ${name:value} expand conditionally to + ${name?value} and ${name:value} expand conditionally to value when $name is (is not) defined. Characters that may - have special meaning to the shell or file system are - replaced by underscores. The list of acceptable charac- - ters is specified with the forward_expansion_filter con- + have special meaning to the shell or file system are + replaced by underscores. The list of acceptable charac- + ters is specified with the forward_expansion_filter con- figuration parameter. - An alias or ~/.forward file may list any combination of - external commands, destination file names, :include: - directives, or mail addresses. See aliases(5) for a pre- - cise description. Each line in a user's .forward file has + An alias or ~/.forward file may list any combination of + external commands, destination file names, :include: + directives, or mail addresses. See aliases(5) for a pre- + cise description. Each line in a user's .forward file has the same syntax as the right-hand part of an alias. - When an address is found in its own alias expansion, - delivery is made to the user instead. When a user is + When an address is found in its own alias expansion, + delivery is made to the user instead. When a user is listed in the user's own ~/.forward file, delivery is made - to the user's mailbox instead. An empty ~/.forward file + to the user's mailbox instead. An empty ~/.forward file means do not forward mail. - In order to prevent the mail system from using up unrea- - sonable amounts of memory, input records read from - :include: or from ~/.forward files are broken up into + In order to prevent the mail system from using up unrea- + sonable amounts of memory, input records read from + :include: or from ~/.forward files are broken up into chunks of length line_length_limit. - While expanding aliases, ~/.forward files, and so on, the + While expanding aliases, ~/.forward files, and so on, the program attempts to avoid duplicate deliveries. The dupli- - cate_filter_limit configuration parameter limits the num- + cate_filter_limit configuration parameter limits the num- ber of remembered recipients. MAIL FORWARDING - For the sake of reliability, forwarded mail is re-submit- - ted as a new message, so that each recipient has a sepa- + For the sake of reliability, forwarded mail is re-submit- + ted as a new message, so that each recipient has a sepa- rate on-file delivery status record. In order to stop mail forwarding loops early, the software adds an optional Delivered-To: header with the final enve- - lope recipient address. If mail arrives for a recipient + lope recipient address. If mail arrives for a recipient that is already listed in a Delivered-To: header, the mes- sage is bounced. MAILBOX DELIVERY - The default per-user mailbox is a file in the UNIX mail - spool directory (/var/mail/user or /var/spool/mail/user); - the location can be specified with the mail_spool_direc- - tory configuration parameter. Specify a name ending in / + The default per-user mailbox is a file in the UNIX mail + spool directory (/var/mail/user or /var/spool/mail/user); + the location can be specified with the mail_spool_direc- + tory configuration parameter. Specify a name ending in / for qmail-compatible maildir delivery. - Alternatively, the per-user mailbox can be a file in the - user's home directory with a name specified via the - home_mailbox configuration parameter. Specify a relative + Alternatively, the per-user mailbox can be a file in the + user's home directory with a name specified via the + home_mailbox configuration parameter. Specify a relative path name. Specify a name ending in / for qmail-compatible maildir delivery. - Mailbox delivery can be delegated to an external command - specified with the mailbox_command_maps and mailbox_com- - mand configuration parameters. The command executes with - the privileges of the recipient user (exceptions: sec- - ondary groups are not enabled; in case of delivery as - root, the command executes with the privileges of + Mailbox delivery can be delegated to an external command + specified with the mailbox_command_maps and mailbox_com- + mand configuration parameters. The command executes with + the privileges of the recipient user (exceptions: sec- + ondary groups are not enabled; in case of delivery as + root, the command executes with the privileges of default_privs). - Mailbox delivery can be delegated to alternative message - transports specified in the master.cf file. The mail- - box_transport_maps and mailbox_transport configuration - parameters specify an optional message transport that is + Mailbox delivery can be delegated to alternative message + transports specified in the master.cf file. The mail- + box_transport_maps and mailbox_transport configuration + parameters specify an optional message transport that is to be used for all local recipients, regardless of whether - they are found in the UNIX passwd database. The fall- - back_transport_maps and fallback_transport parameters - specify an optional message transport for recipients that + they are found in the UNIX passwd database. The fall- + back_transport_maps and fallback_transport parameters + specify an optional message transport for recipients that are not found in the aliases(5) or UNIX passwd database. - In the case of UNIX-style mailbox delivery, the local(8) + In the case of UNIX-style mailbox delivery, the local(8) daemon prepends a "From sender time_stamp" envelope header - to each message, prepends an X-Original-To: header with - the recipient address as given to Postfix, prepends an - optional Delivered-To: header with the final envelope + to each message, prepends an X-Original-To: header with + the recipient address as given to Postfix, prepends an + optional Delivered-To: header with the final envelope recipient address, prepends a Return-Path: header with the - envelope sender address, prepends a > character to lines - beginning with "From ", and appends an empty line. The - mailbox is locked for exclusive access while delivery is - in progress. In case of problems, an attempt is made to + envelope sender address, prepends a > character to lines + beginning with "From ", and appends an empty line. The + mailbox is locked for exclusive access while delivery is + in progress. In case of problems, an attempt is made to truncate the mailbox to its original length. In the case of maildir delivery, the local daemon prepends - an optional Delivered-To: header with the final envelope - recipient address, prepends an X-Original-To: header with - the recipient address as given to Postfix, and prepends a + an optional Delivered-To: header with the final envelope + recipient address, prepends an X-Original-To: header with + the recipient address as given to Postfix, and prepends a Return-Path: header with the envelope sender address. EXTERNAL COMMAND DELIVERY - The allow_mail_to_commands configuration parameter - restricts delivery to external commands. The default set- - ting (alias, forward) forbids command destinations in + The allow_mail_to_commands configuration parameter + restricts delivery to external commands. The default set- + ting (alias, forward) forbids command destinations in :include: files. - Optionally, the process working directory is changed to + Optionally, the process working directory is changed to the path specified with command_execution_directory (Post- - fix 2.2 and later). Failure to change directory causes + fix 2.2 and later). Failure to change directory causes mail to be deferred. The command_execution_directory parameter value is subject - to interpolation of $user (recipient username), $home + to interpolation of $user (recipient username), $home (recipient home directory), $shell (recipient shell), - $recipient (complete recipient address), $extension + $recipient (complete recipient address), $extension (recipient address extension), $domain (recipient domain), - $local (entire recipient address localpart) and $recipi- - ent_delimiter. The forms ${name?value} and ${name:value} - expand conditionally to value when $name is (is not) - defined. Characters that may have special meaning to the - shell or file system are replaced by underscores. The + $local (entire recipient address localpart) and $recipi- + ent_delimiter. The forms ${name?value} and ${name:value} + expand conditionally to value when $name is (is not) + defined. Characters that may have special meaning to the + shell or file system are replaced by underscores. The list of acceptable characters is specified with the execu- tion_directory_expansion_filter configuration parameter. - The command is executed directly where possible. Assis- - tance by the shell (/bin/sh on UNIX systems) is used only - when the command contains shell magic characters, or when + The command is executed directly where possible. Assis- + tance by the shell (/bin/sh on UNIX systems) is used only + when the command contains shell magic characters, or when the command invokes a shell built-in command. - A limited amount of command output (standard output and - standard error) is captured for inclusion with non-deliv- - ery status reports. A command is forcibly terminated if - it does not complete within command_time_limit seconds. - Command exit status codes are expected to follow the con- - ventions defined in <sysexits.h>. Exit status 0 means + A limited amount of command output (standard output and + standard error) is captured for inclusion with non-deliv- + ery status reports. A command is forcibly terminated if + it does not complete within command_time_limit seconds. + Command exit status codes are expected to follow the con- + ventions defined in <sysexits.h>. Exit status 0 means normal successful completion. - Postfix version 2.3 and later support RFC 3463-style - enhanced status codes. If a command terminates with a - non-zero exit status, and the command output begins with + Postfix version 2.3 and later support RFC 3463-style + enhanced status codes. If a command terminates with a + non-zero exit status, and the command output begins with an enhanced status code, this status code takes precedence over the non-zero exit status. - A limited amount of message context is exported via envi- - ronment variables. Characters that may have special mean- + A limited amount of message context is exported via envi- + ronment variables. Characters that may have special mean- ing to the shell are replaced by underscores. The list of acceptable characters is specified with the command_expan- sion_filter configuration parameter. @@ -215,97 +221,97 @@ LOCAL(8) LOCAL(8) the following environment variables: CLIENT_ADDRESS - Remote client network address. Available as of + Remote client network address. Available as of Postfix 2.2. CLIENT_HELO - Remote client EHLO command parameter. Available as + Remote client EHLO command parameter. Available as of Postfix 2.2. CLIENT_HOSTNAME - Remote client hostname. Available as of Postfix + Remote client hostname. Available as of Postfix 2.2. CLIENT_PROTOCOL - Remote client protocol. Available as of Postfix + Remote client protocol. Available as of Postfix 2.2. SASL_METHOD - SASL authentication method specified in the remote + SASL authentication method specified in the remote client AUTH command. Available as of Postfix 2.2. SASL_SENDER - SASL sender address specified in the remote client + SASL sender address specified in the remote client MAIL FROM command. Available as of Postfix 2.2. SASL_USERNAME - SASL username specified in the remote client AUTH + SASL username specified in the remote client AUTH command. Available as of Postfix 2.2. The PATH environment variable is always reset to a system- - dependent default path, and environment variables whose - names are blessed by the export_environment configuration + dependent default path, and environment variables whose + names are blessed by the export_environment configuration parameter are exported unchanged. The current working directory is the mail queue directory. - The local(8) daemon prepends a "From sender time_stamp" - envelope header to each message, prepends an X-Original- + The local(8) daemon prepends a "From sender time_stamp" + envelope header to each message, prepends an X-Original- To: header with the recipient address as given to Postfix, - prepends an optional Delivered-To: header with the final + prepends an optional Delivered-To: header with the final recipient envelope address, prepends a Return-Path: header - with the sender envelope address, and appends no empty + with the sender envelope address, and appends no empty line. EXTERNAL FILE DELIVERY - The delivery format depends on the destination filename - syntax. The default is to use UNIX-style mailbox format. - Specify a name ending in / for qmail-compatible maildir + The delivery format depends on the destination filename + syntax. The default is to use UNIX-style mailbox format. + Specify a name ending in / for qmail-compatible maildir delivery. - The allow_mail_to_files configuration parameter restricts - delivery to external files. The default setting (alias, + The allow_mail_to_files configuration parameter restricts + delivery to external files. The default setting (alias, forward) forbids file destinations in :include: files. - In the case of UNIX-style mailbox delivery, the local(8) + In the case of UNIX-style mailbox delivery, the local(8) daemon prepends a "From sender time_stamp" envelope header - to each message, prepends an X-Original-To: header with - the recipient address as given to Postfix, prepends an - optional Delivered-To: header with the final recipient - envelope address, prepends a > character to lines begin- - ning with "From ", and appends an empty line. The enve- - lope sender address is available in the Return-Path: - header. When the destination is a regular file, it is + to each message, prepends an X-Original-To: header with + the recipient address as given to Postfix, prepends an + optional Delivered-To: header with the final recipient + envelope address, prepends a > character to lines begin- + ning with "From ", and appends an empty line. The enve- + lope sender address is available in the Return-Path: + header. When the destination is a regular file, it is locked for exclusive access while delivery is in progress. In case of problems, an attempt is made to truncate a reg- ular file to its original length. In the case of maildir delivery, the local daemon prepends - an optional Delivered-To: header with the final envelope - recipient address, and prepends an X-Original-To: header + an optional Delivered-To: header with the final envelope + recipient address, and prepends an X-Original-To: header with the recipient address as given to Postfix. The enve- - lope sender address is available in the Return-Path: + lope sender address is available in the Return-Path: header. ADDRESS EXTENSION - The optional recipient_delimiter configuration parameter - specifies how to separate address extensions from local + The optional recipient_delimiter configuration parameter + specifies how to separate address extensions from local recipient names. - For example, with "recipient_delimiter = +", mail for - name+foo is delivered to the alias name+foo or to the - alias name, to the destinations listed in ~name/.for- + For example, with "recipient_delimiter = +", mail for + name+foo is delivered to the alias name+foo or to the + alias name, to the destinations listed in ~name/.for- ward+foo or in ~name/.forward, to the mailbox owned by the user name, or it is sent back as undeliverable. - In all cases the local(8) daemon prepends an optional - `Delivered-To: header line with the final recipient + In all cases the local(8) daemon prepends an optional + `Delivered-To: header line with the final recipient address. DELIVERY RIGHTS - Deliveries to external files and external commands are + Deliveries to external files and external commands are made with the rights of the receiving user on whose behalf - the delivery is made. In the absence of a user context, + the delivery is made. In the absence of a user context, the local(8) daemon uses the owner rights of the :include: file or alias database. When those files are owned by the superuser, delivery is made with the rights specified with @@ -316,48 +322,48 @@ LOCAL(8) LOCAL(8) RFC 3463 (Enhanced status codes) DIAGNOSTICS - Problems and transactions are logged to syslogd(8). Cor- - rupted message files are marked so that the queue manager + Problems and transactions are logged to syslogd(8). Cor- + rupted message files are marked so that the queue manager can move them to the corrupt queue afterwards. - Depending on the setting of the notify_classes parameter, - the postmaster is notified of bounces and of other trou- + Depending on the setting of the notify_classes parameter, + the postmaster is notified of bounces and of other trou- ble. SECURITY The local(8) delivery agent needs a dual personality 1) to access the private Postfix queue and IPC mechanisms, 2) to - impersonate the recipient and deliver to recipient-speci- - fied files or commands. It is therefore security sensi- + impersonate the recipient and deliver to recipient-speci- + fied files or commands. It is therefore security sensi- tive. - The local(8) delivery agent disallows regular expression - substitution of $1 etc. in alias_maps, because that would + The local(8) delivery agent disallows regular expression + substitution of $1 etc. in alias_maps, because that would open a security hole. - The local(8) delivery agent will silently ignore requests - to use the proxymap(8) server within alias_maps. Instead - it will open the table directly. Before Postfix version - 2.2, the local(8) delivery agent will terminate with a + The local(8) delivery agent will silently ignore requests + to use the proxymap(8) server within alias_maps. Instead + it will open the table directly. Before Postfix version + 2.2, the local(8) delivery agent will terminate with a fatal error. BUGS - For security reasons, the message delivery status of - external commands or of external files is never check- + For security reasons, the message delivery status of + external commands or of external files is never check- pointed to file. As a result, the program may occasionally deliver more than once to a command or external file. Bet- ter safe than sorry. - Mutually-recursive aliases or ~/.forward files are not - detected early. The resulting mail forwarding loop is + Mutually-recursive aliases or ~/.forward files are not + detected early. The resulting mail forwarding loop is broken by the use of the Delivered-To: message header. CONFIGURATION PARAMETERS - Changes to main.cf are picked up automatically, as - local(8) processes run for only a limited amount of time. + Changes to main.cf are picked up automatically, as + local(8) processes run for only a limited amount of time. Use the command "postfix reload" to speed up a change. - The text below provides only a parameter summary. See + The text below provides only a parameter summary. See postconf(5) for more details including examples. COMPATIBILITY CONTROLS @@ -367,13 +373,13 @@ LOCAL(8) LOCAL(8) expand_owner_alias (no) When delivering to an alias "aliasname" that has an "owner-aliasname" companion alias, set the envelope - sender address to the expansion of the "owner- + sender address to the expansion of the "owner- aliasname" alias. owner_request_special (yes) - Give special treatment to owner-listname and list- - name-request address localparts: don't split such - addresses when the recipient_delimiter is set to + Give special treatment to owner-listname and list- + name-request address localparts: don't split such + addresses when the recipient_delimiter is set to "-". sun_mailtool_compatibility (no) @@ -382,66 +388,66 @@ LOCAL(8) LOCAL(8) Available in Postfix version 2.3 and later: frozen_delivered_to (yes) - Update the local(8) delivery agent's idea of the - Delivered-To: address (see prepend_deliv- - ered_header) only once, at the start of a delivery - attempt; do not update the Delivered-To: address + Update the local(8) delivery agent's idea of the + Delivered-To: address (see prepend_deliv- + ered_header) only once, at the start of a delivery + attempt; do not update the Delivered-To: address while expanding aliases or .forward files. DELIVERY METHOD CONTROLS - The precedence of local(8) delivery methods from high to - low is: aliases, .forward files, mailbox_transport_maps, - mailbox_transport, mailbox_command_maps, mailbox_command, - home_mailbox, mail_spool_directory, fallback_trans- + The precedence of local(8) delivery methods from high to + low is: aliases, .forward files, mailbox_transport_maps, + mailbox_transport, mailbox_command_maps, mailbox_command, + home_mailbox, mail_spool_directory, fallback_trans- port_maps, fallback_transport, and luser_relay. alias_maps (see 'postconf -d' output) - The alias databases that are used for local(8) + The alias databases that are used for local(8) delivery. forward_path (see 'postconf -d' output) The local(8) delivery agent search list for finding - a .forward file with user-specified delivery meth- + a .forward file with user-specified delivery meth- ods. mailbox_transport_maps (empty) - Optional lookup tables with per-recipient message - delivery transports to use for local(8) mailbox - delivery, whether or not the recipients are found + Optional lookup tables with per-recipient message + delivery transports to use for local(8) mailbox + delivery, whether or not the recipients are found in the UNIX passwd database. mailbox_transport (empty) - Optional message delivery transport that the - local(8) delivery agent should use for mailbox - delivery to all local recipients, whether or not + Optional message delivery transport that the + local(8) delivery agent should use for mailbox + delivery to all local recipients, whether or not they are found in the UNIX passwd database. mailbox_command_maps (empty) - Optional lookup tables with per-recipient external + Optional lookup tables with per-recipient external commands to use for local(8) mailbox delivery. mailbox_command (empty) - Optional external command that the local(8) deliv- + Optional external command that the local(8) deliv- ery agent should use for mailbox delivery. home_mailbox (empty) - Optional pathname of a mailbox file relative to a + Optional pathname of a mailbox file relative to a local(8) user's home directory. mail_spool_directory (see 'postconf -d' output) - The directory where local(8) UNIX-style mailboxes + The directory where local(8) UNIX-style mailboxes are kept. fallback_transport_maps (empty) - Optional lookup tables with per-recipient message - delivery transports for recipients that the - local(8) delivery agent could not find in the + Optional lookup tables with per-recipient message + delivery transports for recipients that the + local(8) delivery agent could not find in the aliases(5) or UNIX password database. fallback_transport (empty) - Optional message delivery transport that the - local(8) delivery agent should use for names that - are not found in the aliases(5) or UNIX password + Optional message delivery transport that the + local(8) delivery agent should use for names that + are not found in the aliases(5) or UNIX password database. luser_relay (empty) @@ -451,7 +457,7 @@ LOCAL(8) LOCAL(8) Available in Postfix version 2.2 and later: command_execution_directory (empty) - The local(8) delivery agent working directory for + The local(8) delivery agent working directory for delivery to external command. MAILBOX LOCKING CONTROLS @@ -460,15 +466,15 @@ LOCAL(8) LOCAL(8) sive lock on a mailbox file or bounce(8) logfile. deliver_lock_delay (1s) - The time between attempts to acquire an exclusive + The time between attempts to acquire an exclusive lock on a mailbox file or bounce(8) logfile. stale_lock_time (500s) - The time after which a stale exclusive mailbox + The time after which a stale exclusive mailbox lockfile is removed. mailbox_delivery_lock (see 'postconf -d' output) - How to lock a UNIX-style local(8) mailbox before + How to lock a UNIX-style local(8) mailbox before attempting delivery. RESOURCE AND RATE CONTROLS @@ -476,17 +482,17 @@ LOCAL(8) LOCAL(8) Time limit for delivery to external commands. duplicate_filter_limit (1000) - The maximal number of addresses remembered by the - address duplicate filter for aliases(5) or vir- + The maximal number of addresses remembered by the + address duplicate filter for aliases(5) or vir- tual(5) alias expansion, or for showq(8) queue dis- plays. local_destination_concurrency_limit (2) - The maximal number of parallel deliveries via the + The maximal number of parallel deliveries via the local mail delivery transport to the same recipient - (when "local_destination_recipient_limit = 1") or - the maximal number of parallel deliveries to the - same local domain (when "local_destination_recipi- + (when "local_destination_recipient_limit = 1") or + the maximal number of parallel deliveries to the + same local domain (when "local_destination_recipi- ent_limit > 1"). local_destination_recipient_limit (1) @@ -499,49 +505,49 @@ LOCAL(8) LOCAL(8) SECURITY CONTROLS allow_mail_to_commands (alias, forward) - Restrict local(8) mail delivery to external com- + Restrict local(8) mail delivery to external com- mands. allow_mail_to_files (alias, forward) - Restrict local(8) mail delivery to external files. + Restrict local(8) mail delivery to external files. command_expansion_filter (see 'postconf -d' output) - Restrict the characters that the local(8) delivery - agent allows in $name expansions of $mailbox_com- + Restrict the characters that the local(8) delivery + agent allows in $name expansions of $mailbox_com- mand. default_privs (nobody) - The default rights used by the local(8) delivery + The default rights used by the local(8) delivery agent for delivery to external file or command. forward_expansion_filter (see 'postconf -d' output) - Restrict the characters that the local(8) delivery - agent allows in $name expansions of $forward_path. + Restrict the characters that the local(8) delivery + agent allows in $name expansions of $forward_path. Available in Postfix version 2.2 and later: execution_directory_expansion_filter (see 'postconf -d' output) - Restrict the characters that the local(8) delivery + Restrict the characters that the local(8) delivery agent allows in $name expansions of $command_execu- tion_directory. 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. delay_logging_resolution_limit (2) - The maximal number of digits after the decimal + The maximal number of digits after the decimal point when logging sub-second delay values. export_environment (see 'postconf -d' output) - The list of environment variables that a Postfix + The list of environment variables that a Postfix process will export to non-Postfix processes. ipc_timeout (3600s) @@ -549,38 +555,38 @@ LOCAL(8) LOCAL(8) over an internal communication channel. local_command_shell (empty) - Optional shell program for local(8) delivery to + Optional shell program for local(8) delivery to non-Postfix command. 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. prepend_delivered_header (command, file, forward) - The message delivery contexts where the Postfix - local(8) delivery agent prepends a Delivered-To: - message header with the address that the mail was + The message delivery contexts where the Postfix + local(8) delivery agent prepends a Delivered-To: + message header with the address that the mail was delivered to. 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. propagate_unmatched_extensions (canonical, virtual) - What address lookup tables copy an address exten- + What address lookup tables copy an address exten- sion from the lookup key to the lookup result. 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. recipient_delimiter (empty) @@ -588,15 +594,15 @@ LOCAL(8) LOCAL(8) sions (user+foo). require_home_directory (no) - Whether or not a local(8) recipient's home direc- - tory must exist before mail delivery is attempted. + Whether or not a local(8) recipient's home direc- + tory must exist before mail delivery is attempted. 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". FILES @@ -616,14 +622,14 @@ LOCAL(8) LOCAL(8) syslogd(8), system logging LICENSE - The Secure Mailer license must be distributed with this + The Secure Mailer license must be distributed with this software. HISTORY The Delivered-To: message header appears in the qmail sys- tem by Daniel Bernstein. - The maildir structure appears in the qmail system by + The maildir structure appears in the qmail system by Daniel Bernstein. AUTHOR(S) diff --git a/postfix/html/relocated.5.html b/postfix/html/relocated.5.html index f8428dab9..bc82e5b50 100644 --- a/postfix/html/relocated.5.html +++ b/postfix/html/relocated.5.html @@ -37,30 +37,36 @@ RELOCATED(5) RELOCATED(5) Table lookups are case insensitive. +CASE FOLDING + The search string is folded to lowercase before database + lookup. As of Postfix 2.3, the search string is not case + folded with database types such as regexp: or pcre: whose + lookup fields can match both upper and lower case. + TABLE FORMAT The input format for the postmap(1) command is as follows: o An entry has one of the following form: pattern new_location - Where new_location specifies contact information - such as an email address, or perhaps a street + Where new_location specifies contact information + such as an email address, or perhaps a street address or telephone number. - o Empty lines and whitespace-only lines are ignored, - as are lines whose first non-whitespace character + o Empty lines and whitespace-only lines are ignored, + as are lines whose first non-whitespace character is a `#'. - o A logical line starts with non-whitespace text. A - line that starts with whitespace continues a logi- + o A logical line starts with non-whitespace text. A + line that starts with whitespace continues a logi- cal line. TABLE SEARCH ORDER With lookups from indexed files such as DB or DBM, or from - networked tables such as NIS, LDAP or SQL, patterns are + networked tables such as NIS, LDAP or SQL, patterns are tried in the order as listed below: user@domain - Matches user@domain. This form has precedence over + Matches user@domain. This form has precedence over all other forms. user Matches user@site when site is $myorigin, when site @@ -68,59 +74,59 @@ RELOCATED(5) RELOCATED(5) in $inet_interfaces or $proxy_interfaces. @domain - Matches other addresses in domain. This form has + Matches other addresses in domain. This form has the lowest precedence. ADDRESS EXTENSION When a mail address localpart contains the optional recip- - ient delimiter (e.g., user+foo@domain), the lookup order + ient delimiter (e.g., user+foo@domain), the lookup order becomes: user+foo@domain, user@domain, user+foo, user, and @domain. REGULAR EXPRESSION TABLES - This section describes how the table lookups change when - the table is given in the form of regular expressions or - when lookups are directed to a TCP-based server. For a + This section describes how the table lookups change when + the table is given in the form of regular expressions or + when lookups are directed to a TCP-based server. For a description of regular expression lookup table syntax, see regexp_table(5) or pcre_table(5). For a description of the TCP client/server table lookup protocol, see tcp_table(5). - This feature is not available up to and including Postfix + This feature is not available up to and including Postfix version 2.2. - Each pattern is a regular expression that is applied to + Each pattern is a regular expression that is applied to the entire address being looked up. Thus, user@domain mail - addresses are not broken up into their user and @domain + addresses are not broken up into their user and @domain constituent parts, nor is user+foo broken up into user and foo. - Patterns are applied in the order as specified in the ta- - ble, 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 - the additional feature that parenthesized substrings from + Results are the same as with indexed file lookups, with + the additional feature that parenthesized substrings from the pattern can be interpolated as $1, $2 and so on. TCP-BASED TABLES - This section describes how the table lookups change when + 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_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 + user@domain mail addresses are not broken up into their user and @domain constituent parts, nor is user+foo broken up into user and foo. Results are the same as with indexed file lookups. BUGS - The table format does not understand quoting conventions. + The table format does not understand quoting conventions. CONFIGURATION PARAMETERS - The following main.cf parameters are especially relevant. - The text below provides only a parameter summary. See + The following main.cf parameters are especially relevant. + The text below provides only a parameter summary. See postconf(5) for more details including examples. relocated_maps @@ -129,12 +135,12 @@ RELOCATED(5) RELOCATED(5) Other parameters of interest: inet_interfaces - The network interface addresses that this system + The network interface addresses that this system receives mail on. You need to stop and start Post- fix when this parameter changes. mydestination - List of domains that this mail system considers + List of domains that this mail system considers local. myorigin @@ -155,7 +161,7 @@ RELOCATED(5) RELOCATED(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/transport.5.html b/postfix/html/transport.5.html index 5e9225f39..6d28a3c62 100644 --- a/postfix/html/transport.5.html +++ b/postfix/html/transport.5.html @@ -69,6 +69,12 @@ TRANSPORT(5) TRANSPORT(5) way as described below under "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +CASE FOLDING + The search string is folded to lowercase before database + lookup. As of Postfix 2.3, the search string is not case + folded with database types such as regexp: or pcre: whose + lookup fields can match both upper and lower case. + TABLE FORMAT The input format for the postmap(1) command is as follows: @@ -77,125 +83,125 @@ TRANSPORT(5) TRANSPORT(5) domain, use the corresponding result. blank lines and comments - Empty lines and whitespace-only lines are ignored, - as are lines whose first non-whitespace character + Empty lines and whitespace-only lines are ignored, + as are lines whose first non-whitespace character is a `#'. multi-line text - A logical line starts with non-whitespace text. A - line that starts with whitespace continues a logi- + A logical line starts with non-whitespace text. A + line that starts with whitespace continues a logi- cal line. - The pattern specifies an email address, a domain name, or - a domain name hierarchy, as described in section "TABLE + The pattern specifies an email address, a domain name, or + a domain name hierarchy, as described in section "TABLE LOOKUP". - The result is of the form transport:nexthop and specifies + The result is of the form transport:nexthop and specifies how or where to deliver mail. This is described in section "RESULT FORMAT". TABLE SEARCH ORDER With lookups from indexed files such as DB or DBM, or from - networked tables such as NIS, LDAP or SQL, patterns are + networked tables such as NIS, LDAP or SQL, patterns are tried in the order as listed below: user+extension@domain transport:nexthop - Deliver mail for user+extension@domain through + Deliver mail for user+extension@domain through transport to nexthop. user@domain transport:nexthop - Deliver mail for user@domain through transport to + Deliver mail for user@domain through transport to nexthop. domain transport:nexthop - Deliver mail for domain through transport to nex- + Deliver mail for domain through transport to nex- thop. .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- - ting. Otherwise, a domain name matches itself and + 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- + ting. Otherwise, a domain name matches itself and its subdomains. Note 1: the special pattern * represents any address (i.e. it functions as the wild-card pattern). - Note 2: the null recipient address is looked up as + Note 2: the null recipient address is looked up as $empty_address_recipient@$myhostname (default: mailer-dae- mon@hostname). - Note 3: user@domain or user+extension@domain lookup is + Note 3: user@domain or user+extension@domain lookup is available in Postfix 2.0 and later. RESULT FORMAT - The lookup result is of the form transport:nexthop. The - transport field specifies a mail delivery transport such - as smtp or local. The nexthop field specifies where and + The lookup result is of the form transport:nexthop. The + transport field specifies a mail delivery transport such + as smtp or local. The nexthop field specifies where and how to deliver mail. - The transport field specifies the name of a mail delivery + The transport field specifies the name of a mail delivery transport (the first name of a mail delivery service entry - in the Postfix master.cf file). + in the Postfix master.cf file). - The interpretation of the nexthop field is transport - dependent. In the case of SMTP, specify a service on a - non-default port as host:service, and disable MX (mail - exchanger) DNS lookups with [host] or [host]:port. The [] + The interpretation of the nexthop field is transport + dependent. In the case of SMTP, specify a service on a + non-default port as host:service, and disable MX (mail + exchanger) DNS lookups with [host] or [host]:port. The [] form is required when you specify an IP address instead of a hostname. - A null transport and null nexthop result means "do not - change": use the delivery transport and nexthop informa- - tion that would be used when the entire transport table + A null transport and null nexthop result means "do not + change": use the delivery transport and nexthop informa- + tion that would be used when the entire transport table did not exist. - A non-null transport field with a null nexthop field + A non-null transport field with a null nexthop field resets the nexthop information to the recipient domain. - A null transport field with non-null nexthop field does + A null transport field with non-null nexthop field does not modify the transport information. EXAMPLES - In order to deliver internal mail directly, while using a - mail relay for all other mail, specify a null entry for - internal destinations (do not change the delivery trans- - port or the nexthop information) and specify a wildcard + In order to deliver internal mail directly, while using a + mail relay for all other mail, specify a null entry for + internal destinations (do not change the delivery trans- + port or the nexthop information) and specify a wildcard for all other destinations. my.domain : .my.domain : * smtp:outbound-relay.my.domain - In order to send mail for example.com and its subdomains + In order to send mail for example.com and its subdomains via the uucp transport to the UUCP host named example: example.com uucp:example .example.com uucp:example - When no nexthop host name is specified, the destination - domain name is used instead. For example, the following - directs mail for user@example.com via the slow transport - to a mail exchanger for example.com. The slow transport + When no nexthop host name is specified, the destination + domain name is used instead. For example, the following + directs mail for user@example.com via the slow transport + to a mail exchanger for example.com. The slow transport could be configured to run at most one delivery process at a time: example.com slow: When no transport is specified, Postfix uses the transport - that matches the address domain class (see DESCRIPTION - above). The following sends all mail for example.com and + that matches the address domain class (see DESCRIPTION + above). The following sends all mail for example.com and its subdomains to host gateway.example.com: example.com :[gateway.example.com] .example.com :[gateway.example.com] - In the above example, the [] suppress MX lookups. This - prevents mail routing loops when your machine is primary + In the above example, the [] suppress MX lookups. This + prevents mail routing loops when your machine is primary MX host for example.com. - In the case of delivery via SMTP, one may specify host- + In the case of delivery via SMTP, one may specify host- name:service instead of just a host: example.com smtp:bar.example:2025 @@ -207,57 +213,57 @@ TRANSPORT(5) TRANSPORT(5) The error mailer can be used to bounce mail: - .example.com error:mail for *.example.com is not + .example.com error:mail for *.example.com is not deliverable - This causes all mail for user@anything.example.com to be + This causes all mail for user@anything.example.com to be bounced. REGULAR EXPRESSION TABLES - This section describes how the table lookups change when + This section describes how the table lookups change when the table is given in the form of regular expressions. For - a description of regular expression lookup table syntax, + a description of regular expression lookup table syntax, see regexp_table(5) or pcre_table(5). - Each pattern is a regular expression that is applied to - the entire address being looked up. Thus, - some.domain.hierarchy is not looked up via its parent - domains, nor is user+foo@domain looked up as user@domain. + Each pattern is a regular expression that is applied to + the entire address being looked up. Thus, + some.domain.hierarchy is not looked up via its parent + domains, nor is user+foo@domain looked up as user@domain. - Patterns are applied in the order as specified in the ta- - ble, 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 - the additional feature that parenthesized substrings from + Results are the same as with indexed file lookups, with + the additional feature that parenthesized substrings from the pattern can be interpolated as $1, $2 and so on. TCP-BASED TABLES - This section describes how the table lookups change when + 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_ta- ble(5). This feature is not available up to and including Postfix version 2.2. - Each lookup operation uses the entire recipient address - once. Thus, some.domain.hierarchy is not looked up via - its parent domains, nor is user+foo@domain looked up as + Each lookup operation uses the entire recipient address + once. Thus, some.domain.hierarchy is not looked up via + its parent domains, nor is user+foo@domain looked up as user@domain. Results are the same as with indexed file lookups. CONFIGURATION PARAMETERS - The following main.cf parameters are especially relevant. - The text below provides only a parameter summary. See + The following main.cf parameters are especially relevant. + The text below provides only a parameter summary. See postconf(5) for more details including examples. empty_address_recipient - The address that is looked up instead of the null + The address that is looked up instead of the null sender address. parent_domain_matches_subdomains - List of Postfix features that use domain.tld pat- - terns to match sub.domain.tld (as opposed to + List of Postfix features that use domain.tld pat- + terns to match sub.domain.tld (as opposed to requiring .domain.tld patterns). transport_maps @@ -273,7 +279,7 @@ TRANSPORT(5) TRANSPORT(5) FILTER_README, external content filter 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/virtual.5.html b/postfix/html/virtual.5.html index 528d96a96..d8dfe9898 100644 --- a/postfix/html/virtual.5.html +++ b/postfix/html/virtual.5.html @@ -62,40 +62,46 @@ VIRTUAL(5) VIRTUAL(5) way as described below under "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +CASE FOLDING + The search string is folded to lowercase before database + lookup. As of Postfix 2.3, the search string is not case + folded with database types such as regexp: or pcre: whose + lookup fields can match both upper and lower case. + TABLE FORMAT The input format for the postmap(1) command is as follows: pattern result - When pattern matches a mail address, replace it by + When pattern matches a mail address, replace it by the corresponding result. blank lines and comments - Empty lines and whitespace-only lines are ignored, - as are lines whose first non-whitespace character + Empty lines and whitespace-only lines are ignored, + as are lines whose first non-whitespace character is a `#'. multi-line text - A logical line starts with non-whitespace text. A - line that starts with whitespace continues a logi- + A logical line starts with non-whitespace text. A + line that starts with whitespace continues a logi- cal line. TABLE SEARCH ORDER With lookups from indexed files such as DB or DBM, or from - networked tables such as NIS, LDAP or SQL, patterns are + networked tables such as NIS, LDAP or SQL, patterns are tried in the order as listed below: user@domain address, address, ... - Redirect mail for user@domain to address. This + Redirect mail for user@domain to address. This form has the highest precedence. user address, address, ... Redirect mail for user@site to address when site is - equal to $myorigin, when site is listed in $mydes- - tination, or when it is listed in $inet_interfaces + equal to $myorigin, when site is listed in $mydes- + tination, or when it is listed in $inet_interfaces or $proxy_interfaces. - This functionality overlaps with functionality of - the local aliases(5) database. The difference is + This functionality overlaps with functionality of + the local aliases(5) database. The difference is that virtual(5) mapping can be applied to non-local addresses. @@ -106,12 +112,12 @@ VIRTUAL(5) VIRTUAL(5) RESULT ADDRESS REWRITING The lookup result is subject to address rewriting: - o When the result has the form @otherdomain, the - result becomes the same user in otherdomain. This + o When the result has the form @otherdomain, the + result becomes the same user in otherdomain. This works only for the first address in a multi-address lookup result. - o When "append_at_myorigin=yes", append "@$myorigin" + o When "append_at_myorigin=yes", append "@$myorigin" to addresses without "@domain". o When "append_dot_mydomain=yes", append ".$mydomain" @@ -119,135 +125,135 @@ VIRTUAL(5) VIRTUAL(5) ADDRESS EXTENSION When a mail address localpart contains the optional recip- - ient delimiter (e.g., user+foo@domain), the lookup order + ient delimiter (e.g., user+foo@domain), the lookup order becomes: user+foo@domain, user@domain, user+foo, user, and @domain. - The propagate_unmatched_extensions parameter controls - whether an unmatched address extension (+foo) is propa- + The propagate_unmatched_extensions parameter controls + whether an unmatched address extension (+foo) is propa- gated to the result of table lookup. VIRTUAL ALIAS DOMAINS - Besides virtual aliases, the virtual alias table can also + Besides virtual aliases, the virtual alias table can also be used to implement virtual alias domains. With a virtual - alias domain, all recipient addresses are aliased to + alias domain, all recipient addresses are aliased to addresses in other domains. Virtual alias domains are not to be confused with the vir- tual mailbox domains that are implemented with the Postfix virtual(8) mail delivery agent. With virtual mailbox - domains, each recipient address can have its own mailbox. + domains, each recipient address can have its own mailbox. - With a virtual alias domain, the virtual domain has its - own user name space. Local (i.e. non-virtual) usernames - are not visible in a virtual alias domain. In particular, - local aliases(5) and local mailing lists are not visible + With a virtual alias domain, the virtual domain has its + own user name space. Local (i.e. non-virtual) usernames + are not visible in a virtual alias domain. In particular, + local aliases(5) and local mailing lists are not visible as localname@virtual-alias.domain. Support for a virtual alias domain looks like: - /etc/postfix/main.cf: + /etc/postfix/main.cf: virtual_alias_maps = hash:/etc/postfix/virtual - Note: some systems use dbm databases instead of hash. - See the output from "postconf -m" for available data- + Note: some systems use dbm databases instead of hash. + See the output from "postconf -m" for available data- base types. - /etc/postfix/virtual: + /etc/postfix/virtual: virtual-alias.domain anything (right-hand content does not matter) postmaster@virtual-alias.domain postmaster user1@virtual-alias.domain address1 user2@virtual-alias.domain address2, address3 - The virtual-alias.domain anything entry is required for a + The virtual-alias.domain anything entry is required for a virtual alias domain. Without this entry, mail is rejected - with "relay access denied", or bounces with "mail loops + with "relay access denied", or bounces with "mail loops back to myself". - Do not specify virtual alias domain names in the main.cf + Do not specify virtual alias domain names in the main.cf mydestination or relay_domains configuration parameters. - With a virtual alias domain, the Postfix SMTP server - accepts mail for known-user@virtual-alias.domain, and - rejects mail for unknown-user@virtual-alias.domain as + With a virtual alias domain, the Postfix SMTP server + accepts mail for known-user@virtual-alias.domain, and + rejects mail for unknown-user@virtual-alias.domain as undeliverable. - Instead of specifying the virtual alias domain name via - the virtual_alias_maps table, you may also specify it via - the main.cf virtual_alias_domains configuration parameter. - This latter parameter uses the same syntax as the main.cf + Instead of specifying the virtual alias domain name via + the virtual_alias_maps table, you may also specify it via + the main.cf virtual_alias_domains configuration parameter. + This latter parameter uses the same syntax as the main.cf mydestination configuration parameter. REGULAR EXPRESSION TABLES - This section describes how the table lookups change when + This section describes how the table lookups change when the table is given in the form of regular expressions. For - a description of regular expression lookup table syntax, + a description of regular expression lookup table syntax, see regexp_table(5) or pcre_table(5). - Each pattern is a regular expression that is applied to + Each pattern is a regular expression that is applied to the entire address being looked up. Thus, user@domain mail - addresses are not broken up into their user and @domain + addresses are not broken up into their user and @domain constituent parts, nor is user+foo broken up into user and foo. - Patterns are applied in the order as specified in the ta- - ble, 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 - the additional feature that parenthesized substrings from + Results are the same as with indexed file lookups, with + the additional feature that parenthesized substrings from the pattern can be interpolated as $1, $2 and so on. TCP-BASED TABLES - This section describes how the table lookups change when + 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_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 + user@domain mail addresses are not broken up into their user and @domain constituent parts, nor is user+foo broken up into user and foo. Results are the same as with indexed file lookups. BUGS - The table format does not understand quoting conventions. + The table format does not understand quoting conventions. CONFIGURATION PARAMETERS - The following main.cf parameters are especially relevant - to this topic. See the Postfix main.cf file for syntax - details and for default values. Use the "postfix reload" + The following main.cf parameters are especially relevant + to this topic. See the Postfix main.cf file for syntax + details and for default values. Use the "postfix reload" command after a configuration change. virtual_alias_maps List of virtual aliasing tables. virtual_alias_domains - List of virtual alias domains. This uses the same + List of virtual alias domains. This uses the same syntax as the mydestination parameter. propagate_unmatched_extensions - A list of address rewriting or forwarding mecha- - nisms that propagate an address extension from the - original address to the result. Specify zero or - more of canonical, virtual, alias, forward, + A list of address rewriting or forwarding mecha- + nisms that propagate an address extension from the + original address to the result. Specify zero or + more of canonical, virtual, alias, forward, include, or generic. Other parameters of interest: inet_interfaces - The network interface addresses that this system + The network interface addresses that this system receives mail on. You need to stop and start Post- fix when this parameter changes. mydestination - List of domains that this mail system considers + List of domains that this mail system considers local. myorigin - The domain that is appended to any address that + The domain that is appended to any address that does not have a domain. owner_request_special @@ -271,7 +277,7 @@ VIRTUAL(5) VIRTUAL(5) VIRTUAL_README, domain hosting 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/virtual.8.html b/postfix/html/virtual.8.html index a78b7914c..eda09fc99 100644 --- a/postfix/html/virtual.8.html +++ b/postfix/html/virtual.8.html @@ -80,6 +80,11 @@ VIRTUAL(8) VIRTUAL(8) numerical user ID values that may be specified in any vir- tual_uid_maps. +CASE FOLDING + All delivery decisions are made using the full recipient + address, folded to lower case. See also the next section + for a few exceptions with optional address extensions. + TABLE SEARCH ORDER Normally, a lookup table is specified as a text file that serves as input to the postmap(1) command. The result, an diff --git a/postfix/man/man5/access.5 b/postfix/man/man5/access.5 index 761e5d99e..f48f3f884 100644 --- a/postfix/man/man5/access.5 +++ b/postfix/man/man5/access.5 @@ -39,6 +39,15 @@ map where patterns are given as regular expressions, or lookups can be directed to TCP-based server. In that case, the lookups are done in a slightly different way as described below under "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +.SH "CASE FOLDING" +.na +.nf +.ad +.fi +The search string is folded to lowercase before database +lookup. As of Postfix 2.3, the search string is not case +folded with database types such as regexp: or pcre: whose +lookup fields can match both upper and lower case. .SH "TABLE FORMAT" .na .nf diff --git a/postfix/man/man5/aliases.5 b/postfix/man/man5/aliases.5 index 305543bef..7f067da6c 100644 --- a/postfix/man/man5/aliases.5 +++ b/postfix/man/man5/aliases.5 @@ -99,6 +99,13 @@ the search is repeated for the unextended address (e.g., \fIuser\fR). The \fBpropagate_unmatched_extensions\fR parameter controls whether an unmatched address extension (\fI+foo\fR) is propagated to the result of table lookup. +.SH "CASE FOLDING" +.na +.nf +.ad +.fi +The local(8) delivery agent always folds the search string +to lowercase before database lookup. .SH "SECURITY" .na .nf diff --git a/postfix/man/man5/canonical.5 b/postfix/man/man5/canonical.5 index 13709663d..5ee395108 100644 --- a/postfix/man/man5/canonical.5 +++ b/postfix/man/man5/canonical.5 @@ -59,6 +59,15 @@ domain\fR support. Use the \fBvirtual\fR(5) map for that purpose. The \fBcanonical\fR(5) mapping is not to be confused with local aliasing. Use the \fBaliases\fR(5) map for that purpose. +.SH "CASE FOLDING" +.na +.nf +.ad +.fi +The search string is folded to lowercase before database +lookup. As of Postfix 2.3, the search string is not case +folded with database types such as regexp: or pcre: whose +lookup fields can match both upper and lower case. .SH "TABLE FORMAT" .na .nf diff --git a/postfix/man/man5/generic.5 b/postfix/man/man5/generic.5 index 8966548bf..5aa6172d4 100644 --- a/postfix/man/man5/generic.5 +++ b/postfix/man/man5/generic.5 @@ -50,6 +50,15 @@ map where patterns are given as regular expressions, or lookups can be directed to TCP-based server. In that case, the lookups are done in a slightly different way as described below under "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +.SH "CASE FOLDING" +.na +.nf +.ad +.fi +The search string is folded to lowercase before database +lookup. As of Postfix 2.3, the search string is not case +folded with database types such as regexp: or pcre: whose +lookup fields can match both upper and lower case. .SH "TABLE FORMAT" .na .nf diff --git a/postfix/man/man5/relocated.5 b/postfix/man/man5/relocated.5 index 6b168d77c..67f42ad1c 100644 --- a/postfix/man/man5/relocated.5 +++ b/postfix/man/man5/relocated.5 @@ -32,6 +32,15 @@ done in a slightly different way as described below under "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". Table lookups are case insensitive. +.SH "CASE FOLDING" +.na +.nf +.ad +.fi +The search string is folded to lowercase before database +lookup. As of Postfix 2.3, the search string is not case +folded with database types such as regexp: or pcre: whose +lookup fields can match both upper and lower case. .SH "TABLE FORMAT" .na .nf diff --git a/postfix/man/man5/transport.5 b/postfix/man/man5/transport.5 index ff1096f7d..e9a286495 100644 --- a/postfix/man/man5/transport.5 +++ b/postfix/man/man5/transport.5 @@ -60,6 +60,15 @@ map where patterns are given as regular expressions, or lookups can be directed to TCP-based server. In that case, the lookups are done in a slightly different way as described below under "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +.SH "CASE FOLDING" +.na +.nf +.ad +.fi +The search string is folded to lowercase before database +lookup. As of Postfix 2.3, the search string is not case +folded with database types such as regexp: or pcre: whose +lookup fields can match both upper and lower case. .SH "TABLE FORMAT" .na .nf diff --git a/postfix/man/man5/virtual.5 b/postfix/man/man5/virtual.5 index 1ffeb7e1f..804ae9d62 100644 --- a/postfix/man/man5/virtual.5 +++ b/postfix/man/man5/virtual.5 @@ -56,6 +56,15 @@ map where patterns are given as regular expressions, or lookups can be directed to TCP-based server. In that case, the lookups are done in a slightly different way as described below under "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +.SH "CASE FOLDING" +.na +.nf +.ad +.fi +The search string is folded to lowercase before database +lookup. As of Postfix 2.3, the search string is not case +folded with database types such as regexp: or pcre: whose +lookup fields can match both upper and lower case. .SH "TABLE FORMAT" .na .nf diff --git a/postfix/man/man8/local.8 b/postfix/man/man8/local.8 index 586d1d2dc..7a3cd2e4c 100644 --- a/postfix/man/man8/local.8 +++ b/postfix/man/man8/local.8 @@ -24,6 +24,14 @@ as finished, or it informs the queue manager that delivery should be tried again at a later time. Delivery status reports are sent to the \fBbounce\fR(8), \fBdefer\fR(8) or \fBtrace\fR(8) daemon as appropriate. +.SH "CASE FOLDING" +.na +.nf +.ad +.fi +All delivery decisions are made using the bare recipient +name (i.e. the address localpart), folded to lower case. +See also under ADDRESS EXTENSION below for a few exceptions. .SH "SYSTEM-WIDE AND USER-LEVEL ALIASING" .na .nf diff --git a/postfix/man/man8/virtual.8 b/postfix/man/man8/virtual.8 index 389e578a4..72fdf2acd 100644 --- a/postfix/man/man8/virtual.8 +++ b/postfix/man/man8/virtual.8 @@ -89,6 +89,14 @@ a string with the numerical user and group ID, respectively. The \fBvirtual_minimum_uid\fR parameter imposes a lower bound on numerical user ID values that may be specified in any \fBvirtual_uid_maps\fR. +.SH "CASE FOLDING" +.na +.nf +.ad +.fi +All delivery decisions are made using the full recipient +address, folded to lower case. See also the next section +for a few exceptions with optional address extensions. .SH "TABLE SEARCH ORDER" .na .nf diff --git a/postfix/proto/access b/postfix/proto/access index d4530eb08..51b3f80e2 100644 --- a/postfix/proto/access +++ b/postfix/proto/access @@ -33,6 +33,13 @@ # can be directed to TCP-based server. In that case, the lookups are # done in a slightly different way as described below under # "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +# CASE FOLDING +# .ad +# .fi +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. # TABLE FORMAT # .ad # .fi diff --git a/postfix/proto/aliases b/postfix/proto/aliases index 84062f509..4aab46b31 100644 --- a/postfix/proto/aliases +++ b/postfix/proto/aliases @@ -91,6 +91,11 @@ # The \fBpropagate_unmatched_extensions\fR parameter controls # whether an unmatched address extension (\fI+foo\fR) is # propagated to the result of table lookup. +# CASE FOLDING +# .ad +# .fi +# The local(8) delivery agent always folds the search string +# to lowercase before database lookup. # SECURITY # .ad # .fi diff --git a/postfix/proto/canonical b/postfix/proto/canonical index 805b82e19..30d99fec3 100644 --- a/postfix/proto/canonical +++ b/postfix/proto/canonical @@ -53,6 +53,13 @@ # # The \fBcanonical\fR(5) mapping is not to be confused with local aliasing. # Use the \fBaliases\fR(5) map for that purpose. +# CASE FOLDING +# .ad +# .fi +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. # TABLE FORMAT # .ad # .fi diff --git a/postfix/proto/generic b/postfix/proto/generic index ce27e5db8..8a0e8e972 100644 --- a/postfix/proto/generic +++ b/postfix/proto/generic @@ -44,6 +44,13 @@ # can be directed to TCP-based server. In that case, the lookups are # done in a slightly different way as described below under # "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +# CASE FOLDING +# .ad +# .fi +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. # TABLE FORMAT # .ad # .fi diff --git a/postfix/proto/relocated b/postfix/proto/relocated index 23af4a921..49a3a2eac 100644 --- a/postfix/proto/relocated +++ b/postfix/proto/relocated @@ -26,6 +26,13 @@ # "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". # # Table lookups are case insensitive. +# CASE FOLDING +# .ad +# .fi +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. # TABLE FORMAT # .ad # .fi diff --git a/postfix/proto/transport b/postfix/proto/transport index 8ad53e2cc..4546a0095 100644 --- a/postfix/proto/transport +++ b/postfix/proto/transport @@ -54,6 +54,13 @@ # can be directed to TCP-based server. In that case, the lookups are # done in a slightly different way as described below under # "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +# CASE FOLDING +# .ad +# .fi +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. # TABLE FORMAT # .ad # .fi diff --git a/postfix/proto/virtual b/postfix/proto/virtual index c4a004c5b..e732a1a68 100644 --- a/postfix/proto/virtual +++ b/postfix/proto/virtual @@ -50,6 +50,13 @@ # can be directed to TCP-based server. In that case, the lookups are # done in a slightly different way as described below under # "REGULAR EXPRESSION TABLES" and "TCP-BASED TABLES". +# CASE FOLDING +# .ad +# .fi +# The search string is folded to lowercase before database +# lookup. As of Postfix 2.3, the search string is not case +# folded with database types such as regexp: or pcre: whose +# lookup fields can match both upper and lower case. # TABLE FORMAT # .ad # .fi diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 210dcab13..5b145f059 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 "20060201" +#define MAIL_RELEASE_DATE "20060202" #define MAIL_VERSION_NUMBER "2.3" #ifdef SNAPSHOT diff --git a/postfix/src/local/local.c b/postfix/src/local/local.c index ce793369a..f0848c34a 100644 --- a/postfix/src/local/local.c +++ b/postfix/src/local/local.c @@ -18,6 +18,12 @@ /* be tried again at a later time. Delivery status reports are sent /* to the \fBbounce\fR(8), \fBdefer\fR(8) or \fBtrace\fR(8) daemon as /* appropriate. +/* CASE FOLDING +/* .ad +/* .fi +/* All delivery decisions are made using the bare recipient +/* name (i.e. the address localpart), folded to lower case. +/* See also under ADDRESS EXTENSION below for a few exceptions. /* SYSTEM-WIDE AND USER-LEVEL ALIASING /* .ad /* .fi diff --git a/postfix/src/smtp/smtp_addr.c b/postfix/src/smtp/smtp_addr.c index 406b2aa1f..d5efe0c75 100644 --- a/postfix/src/smtp/smtp_addr.c +++ b/postfix/src/smtp/smtp_addr.c @@ -150,6 +150,9 @@ static DNS_RR *smtp_addr_one(DNS_RR *addr_list, char *host, unsigned pref, /* * Use DNS lookup, but keep the option open to use native name service. + * + * XXX A soft error dominates past and future hard errors. Therefore we + * should not clobber a soft error text and status code. */ if (smtp_host_lookup_mask & SMTP_HOST_FLAG_DNS) { switch (dns_lookup_v(host, RES_DEFNAMES, &addr, (VSTRING *) 0, @@ -167,6 +170,8 @@ static DNS_RR *smtp_addr_one(DNS_RR *addr_list, char *host, unsigned pref, dsb_status(why, SMTP_HAS_SOFT_DSN(why) ? "4.4.3" : "5.4.3"); return (addr_list); case DNS_INVAL: + dsb_status(why, SMTP_HAS_SOFT_DSN(why) ? "4.4.4" : "5.4.4"); + return (addr_list); case DNS_NOTFOUND: dsb_status(why, SMTP_HAS_SOFT_DSN(why) ? "4.4.4" : "5.4.4"); /* maybe native naming service will succeed */ @@ -176,6 +181,9 @@ static DNS_RR *smtp_addr_one(DNS_RR *addr_list, char *host, unsigned pref, /* * Use the native name service which also looks in /etc/hosts. + * + * XXX A soft error dominates past and future hard errors. Therefore we + * should not clobber a soft error text and status code. */ #define RETRY_AI_ERROR(e) \ ((e) == EAI_AGAIN || (e) == EAI_MEMORY || (e) == EAI_SYSTEM) @@ -388,6 +396,11 @@ DNS_RR *smtp_domain_addr(char *name, int misc_flags, DSN_BUF *why, if (var_ign_mx_lookup_err) addr_list = smtp_host_addr(name, misc_flags, why); break; + case DNS_INVAL: + dsb_status(why, "5.4.4"); + if (var_ign_mx_lookup_err) + addr_list = smtp_host_addr(name, misc_flags, why); + break; case DNS_FAIL: dsb_status(why, "5.4.3"); if (var_ign_mx_lookup_err) @@ -432,9 +445,6 @@ DNS_RR *smtp_domain_addr(char *name, int misc_flags, DSN_BUF *why, addr_list = dns_rr_sort(addr_list, dns_rr_compare_pref); } break; - case DNS_INVAL: - dsb_status(why, "5.4.4"); - break; case DNS_NOTFOUND: addr_list = smtp_host_addr(name, misc_flags, why); break; diff --git a/postfix/src/virtual/virtual.c b/postfix/src/virtual/virtual.c index ce09c8954..0323312a6 100644 --- a/postfix/src/virtual/virtual.c +++ b/postfix/src/virtual/virtual.c @@ -75,6 +75,12 @@ /* The \fBvirtual_minimum_uid\fR parameter imposes a lower bound on /* numerical user ID values that may be specified in any /* \fBvirtual_uid_maps\fR. +/* CASE FOLDING +/* .ad +/* .fi +/* All delivery decisions are made using the full recipient +/* address, folded to lower case. See also the next section +/* for a few exceptions with optional address extensions. /* TABLE SEARCH ORDER /* .ad /* .fi