Go to main content

man pages section 5: File Formats

Exit Print View

Updated: Wednesday, February 9, 2022

postfix-aliases (5)


postfix-aliases - Postfix local alias database format




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:

       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, delivery  diagnostics
       are  directed to that address, instead of to the originator of the mes-
       sage.  This is typically used to direct delivery errors  to  the  main-
       tainer  of  a  mailing  list,  who is in a better position to deal with
       mailing list delivery problems than the originator of  the  undelivered

       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  main.cf  parameters  are especially relevant.  The text
       below provides only a  parameter  summary.  See  postconf(5)  for  more
       details including examples.

              List  of  alias  databases that are updated by the newaliases(1)

              List of alias databases queried by the local(8) delivery agent.

              Restrict the usage of mail delivery to external command.

              Restrict the usage of mail delivery to external file.

              When delivering to an alias that has an owner- companion  alias,
              set  the  envelope  sender address to the right-hand side of the
              owner alias, instead using of the left-hand side address.

              A list of address rewriting or forwarding mechanisms that propa-
              gate  an  address  extension  from  the  original address to the
              result. Specify zero or more of canonical, virtual, alias,  for-
              ward, include, or generic.

              Give  special  treatment  to owner-listname and listname-request

              Delimiter that separates recipients from address extensions.

       Available in Postfix version 2.3 and later:

              Update the local(8) delivery agent's Delivered-To: address  (see
              prepend_delivered_header) only once, at the start of a delivery;
              do not update the Delivered-To: address while expanding  aliases
              or .forward files.

       RFC 822 (ARPA Internet Text Messages)

       See attributes(7) for descriptions of the following attributes:

       |ATTRIBUTE TYPE |       ATTRIBUTE VALUE        |
       |Availability   | service/network/smtp/postfix |
       |Stability      | Volatile                     |

       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

       Source code for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-

       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from  https://archive.mgm51.com/mirrors/postfix-

       Further information about this software can be found on the open source
       community website at http://www.postfix.org.