canonical.5.html   [plain text]


<!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> &lt;<i>inputfile</i>

<b>DESCRIPTION</b>
       The  optional <a href="canonical.5.html"><b>canonical</b>(5)</a> table specifies an address map-
       ping 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 recursive.

       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 expres-
       sions,  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 mes-
       sages) 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 head-
       ers  from  remote  SMTP clients only if the client matches
       the  <a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>  parameter,  or  if  the
       <a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> configuration parameter spec-
       ifies a non-empty value. To get the behavior before  Post-
       fix    2.2,    specify   "<a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a>   =
       static: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>vir-</i>
       <i>tual  alias</i>  support 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 result</i>
              When  <i>pattern</i> matches a mail address, replace it by
              the corresponding <i>result</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 logi-
              cal 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, patterns are
       tried in the order as listed below:

       <i>user</i>@<i>domain address</i>
              Replace <i>user</i>@<i>domain</i> by <i>address</i>. 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  <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.Lastname</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.

<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 recip-
       ient  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  propa-
       gated 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 broken 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  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
       the pattern can be interpolated 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 descrip-
       tion of the TCP client/server lookup protocol, see <a href="tcp_table.5.html"><b>tcp_ta-</b></a>
       <a href="tcp_table.5.html"><b>ble</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> constituent 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></b>
              What addresses are  subject  to  canonical  address
              mapping.

       <b><a href="postconf.5.html#canonical_maps">canonical_maps</a></b>
              List of canonical mapping tables.

       <b><a href="postconf.5.html#recipient_canonical_maps">recipient_canonical_maps</a></b>
              Address  mapping  lookup  table  for  envelope  and
              header recipient addresses.

       <b><a href="postconf.5.html#sender_canonical_maps">sender_canonical_maps</a></b>
              Address  mapping  lookup  table  for  envelope  and
              header sender addresses.

       <b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a></b>
              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  <b>canonical</b>,   <b>virtual</b>,   <b>alias</b>,   <b>forward</b>,
              <b>include</b>, or <b>generic</b>.

       Other parameters of interest:

       <b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a></b>
              The  network  interface  addresses that this system
              receives mail on.  You need to stop and start Post-
              fix when this parameter changes.

       <b><a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</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_rewrite_domain</a> parameter.

       <b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a></b>
              Other interfaces that this machine receives mail on
              by way of a proxy agent or network address transla-
              tor.

       <b><a href="postconf.5.html#masquerade_classes">masquerade_classes</a></b>
              List  of  address  classes subject to masquerading:
              zero or more of  <b>envelope_sender</b>,  <b>envelope_recipi-</b>
              <b>ent</b>, <b>header_sender</b>, <b>header_recipient</b>.

       <b><a href="postconf.5.html#masquerade_domains">masquerade_domains</a></b>
              List  of  domains  that hide their subdomain struc-
              ture.

       <b><a href="postconf.5.html#masquerade_exceptions">masquerade_exceptions</a></b>
              List of user names that are not subject to  address
              masquerading.

       <b><a href="postconf.5.html#mydestination">mydestination</a></b>
              List  of  domains  that  this mail system considers
              local.

       <b><a href="postconf.5.html#myorigin">myorigin</a></b>
              The domain that is appended to locally-posted mail.

       <b><a href="postconf.5.html#owner_request_special">owner_request_special</a></b>
              Give special treatment to <b>owner-</b><i>xxx</i> and <i>xxx</i><b>-request</b>
              addresses.

       <b><a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a></b>
              Don't rewrite message headers from  remote  clients
              at all when this parameter is empty; otherwise, re-
              write message  headers  and  append  the  specified
              domain name to incomplete addresses.

<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

                                                                  CANONICAL(5)
</pre> </body> </html>