diff options
Diffstat (limited to 'html/canonical.5.html')
-rw-r--r-- | html/canonical.5.html | 284 |
1 files changed, 284 insertions, 0 deletions
diff --git a/html/canonical.5.html b/html/canonical.5.html new file mode 100644 index 0000000..c54dc09 --- /dev/null +++ b/html/canonical.5.html @@ -0,0 +1,284 @@ +<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html> <head> +<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> +<title> Postfix manual - canonical(5) </title> +</head> <body> <pre> +CANONICAL(5) CANONICAL(5) + +<b>NAME</b> + canonical - Postfix canonical table format + +<b>SYNOPSIS</b> + <b>postmap /etc/postfix/canonical</b> + + <b>postmap -q "</b><i>string</i><b>" /etc/postfix/canonical</b> + + <b>postmap -q - /etc/postfix/canonical</b> <<i>inputfile</i> + +<b>DESCRIPTION</b> + The optional <a href="canonical.5.html"><b>canonical</b>(5)</a> table specifies an address mapping for local + and non-local addresses. The mapping is used by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon, + before mail is stored into the queue. The address mapping is recur- + sive. + + Normally, the <a href="canonical.5.html"><b>canonical</b>(5)</a> table is specified as a text file that + serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> command. The result, an indexed file + in <b>dbm</b> or <b>db</b> format, is used for fast searching by the mail system. + Execute the command "<b>postmap /etc/postfix/canonical</b>" to rebuild an + indexed file after changing the corresponding text file. + + When the table is provided via other means such as NIS, LDAP or SQL, + the same lookups are done as for ordinary indexed files. + + Alternatively, the table can be provided as a regular-expression map + where patterns are given as regular expressions, or lookups can be + directed to TCP-based server. In those cases, the lookups are done in a + slightly different way as described below under "REGULAR EXPRESSION + TABLES" or "TCP-BASED TABLES". + + By default the <a href="canonical.5.html"><b>canonical</b>(5)</a> mapping affects both message header + addresses (i.e. addresses that appear inside messages) and message + envelope addresses (for example, the addresses that are used in SMTP + protocol commands). This is controlled with the <b><a href="postconf.5.html#canonical_classes">canonical_classes</a></b> + parameter. + + NOTE: Postfix versions 2.2 and later rewrite message headers from + remote SMTP clients only if the client matches the <a href="postconf.5.html#local_header_rewrite_clients">local_header_re</a>- + <a href="postconf.5.html#local_header_rewrite_clients">write_clients</a> parameter, or if the <a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> config- + uration parameter specifies a non-empty value. To get the behavior + before Postfix 2.2, specify "<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> = + <a href="DATABASE_README.html#types">static</a>:all". + + Typically, one would use the <a href="canonical.5.html"><b>canonical</b>(5)</a> table to replace login names + by <i>Firstname.Lastname</i>, or to clean up addresses produced by legacy mail + systems. + + The <a href="canonical.5.html"><b>canonical</b>(5)</a> mapping is not to be confused with <i>virtual alias</i> sup- + port or with local aliasing. To change the destination but not the + headers, use the <a href="virtual.5.html"><b>virtual</b>(5)</a> or <a href="aliases.5.html"><b>aliases</b>(5)</a> map instead. + +<b>CASE FOLDING</b> + 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 <a href="regexp_table.5.html">regexp</a>: or <a href="pcre_table.5.html">pcre</a>: whose lookup fields can match both upper and + lower case. + +<b>TABLE FORMAT</b> + The input format for the <a href="postmap.1.html"><b>postmap</b>(1)</a> command is as follows: + + <i>pattern address</i> + When <i>pattern</i> matches a mail address, replace it by the corre- + sponding <i>address</i>. + + blank lines and comments + 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 logical line. + +<b>TABLE SEARCH ORDER</b> + With lookups from indexed files such as DB or DBM, or from networked + tables such as NIS, LDAP or SQL, each <i>user</i>@<i>domain</i> query produces a + sequence of query patterns as described below. + + Each query pattern is sent to each specified lookup table before trying + the next query pattern, until a match is found. + + <i>user</i>@<i>domain address</i> + Replace <i>user</i>@<i>domain</i> by <i>address</i>. This form has the highest prece- + dence. + + This is useful to clean up addresses produced by legacy mail + systems. It can also be used to produce <i>Firstname.Lastname</i> + style addresses, but see below for a simpler solution. + + <i>user address</i> + Replace <i>user</i>@<i>site</i> by <i>address</i> when <i>site</i> is equal to $<b><a href="postconf.5.html#myorigin">myorigin</a></b>, + when <i>site</i> is listed in $<b><a href="postconf.5.html#mydestination">mydestination</a></b>, or when it is listed in + $<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a></b> or $<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a></b>. + + This form is useful for replacing login names by <i>Firstname.Last-</i> + <i>name</i>. + + @<i>domain address</i> + Replace other addresses in <i>domain</i> by <i>address</i>. This form has the + lowest precedence. + + Note: @<i>domain</i> is a wild-card. When this form is applied to + recipient addresses, the Postfix SMTP server accepts mail for + any recipient in <i>domain</i>, regardless of whether that recipient + exists. This may turn your mail system into a backscatter + source: Postfix first accepts mail for non-existent recipients + and then tries to return that mail as "undeliverable" to the + often forged sender address. + + To avoid backscatter with mail for a wild-card domain, replace + the wild-card mapping with explicit 1:1 mappings, or add a + <a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a> restriction for that domain: + + <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> = + ... + <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> + <a href="postconf.5.html#check_recipient_access">check_recipient_access</a> + <a href="DATABASE_README.html#types">inline</a>:{example.com=<a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a>} + <a href="postconf.5.html#unverified_recipient_reject_code">unverified_recipient_reject_code</a> = 550 + + In the above example, Postfix may contact a remote server if the + recipient is rewritten to a remote address. + +<b>RESULT ADDRESS REWRITING</b> + The lookup result is subject to address rewriting: + + <b>o</b> When the result has the form @<i>otherdomain</i>, the result becomes + the same <i>user</i> in <i>otherdomain</i>. + + <b>o</b> When "<b><a href="postconf.5.html#append_at_myorigin">append_at_myorigin</a>=yes</b>", append "<b>@$<a href="postconf.5.html#myorigin">myorigin</a></b>" to addresses + without "@domain". + + <b>o</b> When "<b><a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a>=yes</b>", append "<b>.$<a href="postconf.5.html#mydomain">mydomain</a></b>" to addresses + without ".domain". + +<b>ADDRESS EXTENSION</b> + When a mail address localpart contains the optional recipient delimiter + (e.g., <i>user+foo</i>@<i>domain</i>), the lookup order becomes: <i>user+foo</i>@<i>domain</i>, + <i>user</i>@<i>domain</i>, <i>user+foo</i>, <i>user</i>, and @<i>domain</i>. + + The <b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a></b> parameter controls whether an + unmatched address extension (<i>+foo</i>) is propagated to the result of table + lookup. + +<b>REGULAR EXPRESSION TABLES</b> + 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, see <a href="regexp_table.5.html"><b>regexp_table</b>(5)</a> or <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>. + + Each pattern is a regular expression that is applied to the entire + address being looked up. Thus, <i>user@domain</i> mail addresses are not bro- + ken up into their <i>user</i> and <i>@domain</i> constituent parts, nor is <i>user+foo</i> + broken up into <i>user</i> and <i>foo</i>. + + Patterns are applied in the order as specified in the table, 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 the pattern can be interpo- + lated as <b>$1</b>, <b>$2</b> and so on. + +<b>TCP-BASED TABLES</b> + This section describes how the table lookups change when lookups are + directed to a TCP-based server. For a description of the TCP + client/server lookup protocol, see <a href="tcp_table.5.html"><b>tcp_table</b>(5)</a>. This feature is not + available up to and including Postfix version 2.4. + + Each lookup operation uses the entire address once. Thus, <i>user@domain</i> + mail addresses are not broken up into their <i>user</i> and <i>@domain</i> con- + stituent parts, nor is <i>user+foo</i> broken up into <i>user</i> and <i>foo</i>. + + Results are the same as with indexed file lookups. + +<b>BUGS</b> + The table format does not understand quoting conventions. + +<b>CONFIGURATION PARAMETERS</b> + The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant. The text + below provides only a parameter summary. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for more + details including examples. + + <b><a href="postconf.5.html#canonical_classes">canonical_classes</a> (envelope_sender, envelope_recipient, header_sender,</b> + <b>header_recipient)</b> + What addresses are subject to <a href="postconf.5.html#canonical_maps">canonical_maps</a> address mapping. + + <b><a href="postconf.5.html#canonical_maps">canonical_maps</a> (empty)</b> + Optional address mapping lookup tables for message headers and + envelopes. + + <b><a href="postconf.5.html#recipient_canonical_maps">recipient_canonical_maps</a> (empty)</b> + Optional address mapping lookup tables for envelope and header + recipient addresses. + + <b><a href="postconf.5.html#sender_canonical_maps">sender_canonical_maps</a> (empty)</b> + Optional address mapping lookup tables for envelope and header + sender addresses. + + <b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a> (canonical, virtual)</b> + What address lookup tables copy an address extension from the + lookup key to the lookup result. + + Other parameters of interest: + + <b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> (all)</b> + The network interface addresses that this mail system receives + mail on. + + <b><a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> (<a href="postconf.5.html#permit_inet_interfaces">permit_inet_interfaces</a>)</b> + Rewrite message header addresses in mail from these clients and + update incomplete addresses with the domain name in $<a href="postconf.5.html#myorigin">myorigin</a> or + $<a href="postconf.5.html#mydomain">mydomain</a>; 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 <a href="postconf.5.html#remote_header_rewrite_domain">remote_header_re</a>- + <a href="postconf.5.html#remote_header_rewrite_domain">write_domain</a> parameter. + + <b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> (empty)</b> + The network interface addresses that this mail system receives + mail on by way of a proxy or network address translation unit. + + <b><a href="postconf.5.html#masquerade_classes">masquerade_classes</a> (envelope_sender, header_sender, header_recipient)</b> + What addresses are subject to address masquerading. + + <b><a href="postconf.5.html#masquerade_domains">masquerade_domains</a> (empty)</b> + Optional list of domains whose subdomain structure will be + stripped off in email addresses. + + <b><a href="postconf.5.html#masquerade_exceptions">masquerade_exceptions</a> (empty)</b> + Optional list of user names that are not subjected to address + masquerading, even when their address matches $<a href="postconf.5.html#masquerade_domains">masquer</a>- + <a href="postconf.5.html#masquerade_domains">ade_domains</a>. + + <b><a href="postconf.5.html#mydestination">mydestination</a> ($<a href="postconf.5.html#myhostname">myhostname</a>, localhost.$<a href="postconf.5.html#mydomain">mydomain</a>, localhost)</b> + The list of domains that are delivered via the $<a href="postconf.5.html#local_transport">local_transport</a> + mail delivery transport. + + <b><a href="postconf.5.html#myorigin">myorigin</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b> + The domain name that locally-posted mail appears to come from, + and that locally posted mail is delivered to. + + <b><a href="postconf.5.html#owner_request_special">owner_request_special</a> (yes)</b> + Enable special treatment for owner-<i>listname</i> entries in the + <a href="aliases.5.html"><b>aliases</b>(5)</a> file, and don't split owner-<i>listname</i> and <i>list-</i> + <i>name</i>-request address localparts when the <a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> is + set to "-". + + <b><a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> (empty)</b> + Don't rewrite message headers from remote clients at all when + this parameter is empty; otherwise, rewrite message headers and + append the specified domain name to incomplete addresses. + +<b>SEE ALSO</b> + <a href="cleanup.8.html">cleanup(8)</a>, canonicalize and enqueue mail + <a href="postmap.1.html">postmap(1)</a>, Postfix lookup table manager + <a href="postconf.5.html">postconf(5)</a>, configuration parameters + <a href="virtual.5.html">virtual(5)</a>, virtual aliasing + +<b>README FILES</b> + <a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview + <a href="ADDRESS_REWRITING_README.html">ADDRESS_REWRITING_README</a>, address rewriting guide + +<b>LICENSE</b> + The Secure Mailer license must be distributed with this software. + +<b>AUTHOR(S)</b> + Wietse Venema + IBM T.J. Watson Research + P.O. Box 704 + Yorktown Heights, NY 10598, USA + + Wietse Venema + Google, Inc. + 111 8th Avenue + New York, NY 10011, USA + + CANONICAL(5) +</pre> </body> </html> |