ALIASES(5)                     File Formats Manual                    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:

       •      An alias definition has the form

                   name: value1, value2, ...

       •      Empty lines and whitespace-only lines are ignored, as are lines
              whose first non-whitespace character is a `#'.

       •      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

              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 /dev/null.

              Mail is piped into command. Commands that contain special
              characters, 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 implement
              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_commands
              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
              listname-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

       Use "postconf readme_directory" or "postconf html_directory" to locate
       this information.
       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