    ALIASES(5)                                                          ALIASES(5)

    NAME
           aliases - Postfix local alias database format

    SYNOPSIS
           newaliases

           postalias -q name [file-type]:[file-name]

    DESCRIPTION
           The  optional  aliases(5)  table  (alias_maps) redirects mail for local
           recipients. The redirections are  processed  by  the  Postfix  local(8)
           delivery  agent.  This  table  is always searched with an email address
           localpart (no domain portion).

           This is unlike virtual(5) aliasing (virtual_alias_maps)  which  applies
           to  all  recipients: local(8), virtual, and remote, and which is imple-
           mented by the cleanup(8) daemon. That table is often  searched  with  a
           full email address (including domain).

           Normally,  the aliases(5) table is specified as a text file that serves
           as input to the postalias(1) command to create an indexed file for fast
           lookup.  The  location of this file is system-dependent. This text will
           use /path/to/aliases.

           Execute the command "newaliases  to  rebuild  the  indexed  file  after
           changing the text file. Execute "postalias -q name /path/to/aliases" to
           query a default-type  indexed  file,  or  execute  "postalias  -q  name
           type:/path/to/aliases" to specify an explicit type.

           The  default  indexed  file  type  is configured with the default_data-
           base_type parameter. Depending on the  platform  this  may  be  one  of
           lmdb:, cdb:, hash:, or dbm: (without the trailing ':').

           When  the  table  is provided via other means such as NIS, LDAP or SQL,
           the same lookups are done as for ordinary indexed files.  Managing such
           databases is outside the scope of Postfix.

           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
           "REGULAR EXPRESSION TABLES".

           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:

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

           /file/name
                  Mail is appended to /file/name. For details on  how  a  file  is
                  written  see the sections "EXTERNAL FILE DELIVERY" and "DELIVERY
                  RIGHTS" in the local(8) documentation.  Delivery is not  limited
                  to  regular  files.   For  example, to dispose of unwanted mail,
                  deflect it to /dev/null.

           |command
                  Mail is piped into command. Commands that contain special  char-
                  acters,  such  as  whitespace, should be enclosed between double
                  quotes. For details on how a command is executed  see  "EXTERNAL
                  COMMAND DELIVERY" and "DELIVERY RIGHTS" in the local(8) documen-
                  tation.

                  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.

           :include:/file/name
                  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 aliases(5) 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.

    ADDRESS EXTENSION
           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
           lookup.

    CASE FOLDING
           The local(8) delivery agent always folds the search string to lowercase
           before database 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).
           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.

    SECURITY
           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.

    CONFIGURATION PARAMETERS
           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 (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)
                  Optional  lookup  tables  that  are  searched only with an email
                  address localpart (no domain) and that apply  only  to  local(8)
                  recipients;  this  is  unlike  virtual_alias_maps that are often
                  searched with a full email address (including domain)  and  that
                  apply to all recipients: local(8), virtual, and remote.

           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 an email address local-
                  part, user name, or a .forward file name from its extension.

           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.

    STANDARDS
           RFC 822 (ARPA Internet Text Messages)

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

    README FILES
           DATABASE_README, Postfix lookup table overview

    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

           Wietse Venema
           Google, Inc.
           111 8th Avenue
           New York, NY 10011, USA

                                                                        ALIASES(5)