# CANONICAL(5)                                                      CANONICAL(5)
# 
# NAME
#        canonical - format of Postfix canonical table
# 
# SYNOPSIS
#        postmap /etc/postfix/canonical
# 
#        postmap -q "string" /etc/postfix/canonical
# 
#        postmap -q - /etc/postfix/canonical <inputfile
# 
# DESCRIPTION
#        The optional canonical table specifies an address mapping for local and
#        non-local addresses. The mapping is used by the cleanup(8) daemon.  The
#        address mapping is recursive.
# 
#        Normally,  the  canonical table is specified as a text file that serves
#        as input to the postmap(1) command.  The result, an indexed file in dbm
#        or  db  format,  is used for fast searching by the mail system. Execute
#        the command postmap /etc/postfix/canonical  in  order  to  rebuild  the
#        indexed file after changing the 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. In that case, the
#        lookups are done in a slightly different way as described below.
# 
#        The canonical 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).
#        Think Sendmail rule set S3, if you like.
# 
#        Typically,  one would use the canonical table to replace login names by
#        Firstname.Lastname, or to clean up addresses produced  by  legacy  mail
#        systems.
# 
#        The  canonical  mapping  is not to be confused with virtual domain sup-
#        port. Use the virtual(5) map for that purpose.
# 
#        The canonical mapping is not to be confused with local  aliasing.   Use
#        the aliases(5) map for that purpose.
# 
# TABLE FORMAT
#        The input format for the postmap(1) command is as follows:
# 
#        pattern result
#               When  pattern  matches  a mail address, replace it by the corre-
#               sponding result.
# 
#        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.
# 
#        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:
# 
#        user@domain address
#               user@domain is replaced 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  produce  Firstname.Lastname
#               style addresses, but see below for a simpler solution.
# 
#        user address
#               user@site  is  replaced by address when site is equal to $myori-
#               gin, when site is listed in $mydestination, or when it is listed
#               in $inet_interfaces.
# 
#               This form is useful for replacing login names by Firstname.Last-
#               name.
# 
#        @domain address
#               Every address in domain is replaced by address.  This  form  has
#               the lowest precedence.
# 
#        In  all  the  above  forms, when address has the form @otherdomain, the
#        result is the same user in otherdomain.
# 
# ADDRESS EXTENSION
#        When a mail address localpart contains the optional recipient delimiter
#        (e.g.,  user+foo@domain),  the  lookup  order becomes: user+foo@domain,
#        user@domain, user+foo, user, and @domain.  An unmatched address  exten-
#        sion (+foo) is propagated to the result of table lookup.
# 
# REGULAR EXPRESSION TABLES
#        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 regexp_table(5) or pcre_table(5).
# 
#        Each  pattern  is  a  regular  expression that is applied to the entire
#        address being looked up. Thus, user@domain mail addresses are not  bro-
#        ken  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 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 $1, $2 and so on.
# 
# BUGS
#        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 command after a configuration change.
# 
#        canonical_maps
#               List of canonical mapping tables.
# 
#        recipient_canonical_maps
#               Address  mapping  lookup table for envelope and header recipient
#               addresses.
# 
#        sender_canonical_maps
#               Address mapping lookup table  for  envelope  and  header  sender
#               addresses.
# 
#        Other parameters of interest:
# 
#        inet_interfaces
#               The  network  interface addresses that this system receives mail
#               on.  You need to stop and  start  Postfix  when  this  parameter
#               changes.
# 
#        masquerade_classes
#               List of address classes subject to masquerading: zero or more of
#               envelope_sender,       envelope_recipient,        header_sender,
#               header_recipient.
# 
#        masquerade_domains
#               List of domains that hide their subdomain structure.
# 
#        masquerade_exceptions
#               List of user names that are not subject to address masquerading.
# 
#        mydestination
#               List of domains that this mail system considers local.
# 
#        myorigin
#               The domain that is appended to locally-posted mail.
# 
#        owner_request_special
#               Give special treatment to owner-xxx and xxx-request addresses.
# 
# SEE ALSO
#        cleanup(8) canonicalize and enqueue mail
#        postmap(1) create mapping table
#        virtual(5) virtual domain mapping
#        pcre_table(5) format of PCRE tables
#        regexp_table(5) format of POSIX regular expression tables
# 
# LICENSE
#        The Secure Mailer license must be distributed with this software.
# 
# AUTHOR(S)
#        Wietse Venema
#        IBM T.J. Watson Research
#        P.O. Box 704
#        Yorktown Heights, NY 10598, USA
# 
#                                                                   CANONICAL(5)
