NAME

aliases - Postfix local alias database format

SYNOPSIS

   newaliases

DESCRIPTION

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 “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:

· 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:

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

/file/name 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.

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

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

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

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

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