ALIASES(5)                                                          ALIASES(5)

       aliases - Postfix local alias database format


       The  aliases(5) table provides a system-wide mechanism to redirect mail
       for local recipients. The redirections are  processed  by  the  Postfix
       local(8) delivery agent.

       Normally,  the aliases(5) table is specified as a text file that serves
       as input to the postalias(1) command. The result, an  indexed  file  in
       dbm  or  db format, is used for fast lookup by the mail system. Execute
       the command newaliases in order  to  rebuild  the  indexed  file  after
       changing the Postfix alias database.

       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 this case, the
       lookups are done in a slightly different way as described  below  under

       Users  can  control  delivery  of their own mail by setting up .forward
       files in their home directory.  Lines in per-user .forward  files  have
       the same syntax as the right-hand side of aliases(5) entries.

       The format of the alias database input file is as follows:

       o      An alias definition has the form

                   name: value1, value2, ...

       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 logical line.

       The  name  is a local address (no domain part).  Use double quotes when
       the name contains any special characters such as whitespace, `#',  `:',
       or  `@'.  The  name  is  folded to lowercase, in order to make database
       lookups case insensitive.

       In addition, when an alias exists for owner-name,  this  will  override
       the  envelope sender address, so that delivery diagnostics are directed
       to owner-name, instead of the originator of the message  (for  details,
       see  owner_request_special,  expand_owner_alias and reset_owner_alias).
       This is typically used to direct delivery errors to the maintainer of a
       mailing  list,  who  is  in a better position to deal with mailing list
       delivery problems than the originator of the undelivered mail.

       The value contains one or more of the following:

              Mail is forwarded to address, which is compatible with  the  RFC
              822 standard.

              Mail  is  appended  to  /file/name.  See local(8) for details of
              delivery to file.  Delivery is not  limited  to  regular  files.
              For  example,  to  dispose  of  unwanted  mail,  deflect  it  to

              Mail is piped into command. Commands that contain special  char-
              acters,  such  as  whitespace, should be enclosed between double
              quotes. See local(8) for details of delivery to command.

              When the command fails, a limited amount of  command  output  is
              mailed  back  to  the  sender.  The file /usr/include/sysexits.h
              defines the expected exit status codes. For example, use  "|exit
              67"  to simulate a "user unknown" error, and "|exit 0" to imple-
              ment an expensive black hole.

              Mail is sent to the  destinations  listed  in  the  named  file.
              Lines  in :include: files have the same syntax as the right-hand
              side of alias entries.

              A destination can be any destination that is described  in  this
              manual  page.  However, delivery to "|command" and /file/name is
              disallowed by default. To enable,  edit  the  allow_mail_to_com-
              mands and allow_mail_to_files configuration parameters.

       When  alias database search fails, and the recipient localpart contains
       the optional  recipient  delimiter  (e.g.,  user+foo),  the  search  is
       repeated for the unextended address (e.g., user).

       The   propagate_unmatched_extensions   parameter  controls  whether  an
       unmatched address extension (+foo) is propagated to the result of table

       The local(8) delivery agent always folds the search string to lowercase
       before database lookup.

       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).
       NOTE: these formats do not use ":" at the end of a pattern.

       Each regular expression is applied to the entire search string. Thus, a
       search string user+foo is not broken up into user and foo.

       Regular expressions are applied in the order as specified in the table,
       until a regular expression is found that matches the search string.

       Lookup results are the same as with indexed file lookups.  For security
       reasons there is no support for $1, $2 etc. substring interpolation.

       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 fatal error.

       The following parameters are  especially  relevant.   The  text
       below  provides  only  a  parameter  summary.  See postconf(5) for more
       details including examples.

       alias_database (see 'postconf -d' output)
              The alias databases for local(8) delivery that are updated  with
              "newaliases" or with "sendmail -bi".

       alias_maps (see 'postconf -d' output)
              The alias databases that are used for local(8) delivery.

       allow_mail_to_commands (alias, forward)
              Restrict local(8) mail delivery to external commands.

       allow_mail_to_files (alias, forward)
              Restrict local(8) mail delivery to external files.

       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-aliasname" alias.

       propagate_unmatched_extensions (canonical, virtual)
              What  address  lookup  tables copy an address extension from the
              lookup key to the lookup result.

       owner_request_special (yes)
              Enable special  treatment  for  owner-listname  entries  in  the
              aliases(5)  file,  and  don't  split  owner-listname  and  list-
              name-request address localparts when the recipient_delimiter  is
              set to "-".

       recipient_delimiter (empty)
              The  set  of  characters  that can separate a user name from its
              extension (example: user+foo), or a .forward file name from  its
              extension (example: .forward+foo).

       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_delivered_header) only once, at  the  start
              of  a  delivery attempt; do not update the Delivered-To: address
              while expanding aliases or .forward files.

       RFC 822 (ARPA Internet Text Messages)

       local(8), local delivery agent
       newaliases(1), create/update alias database
       postalias(1), create/update alias database
       postconf(5), configuration parameters

       DATABASE_README, Postfix lookup table overview

       The Secure Mailer license must be distributed with this software.

       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