    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. 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
           "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 with aliases that apply only to  local(8)
                  recipients;  this is unlike virtual_alias_maps 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)