ALIASES
Section: File Formats (5)
Index
Return to Main Contents
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 implemented 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_database_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:
- *
-
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. 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 characters, 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) documentation.
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.
- :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_commands 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
listname-request address localparts when the recipient_delimiter
is set to "-".
- recipient_delimiter (empty)
-
The set of characters that can separate an email address
localpart, 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
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
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- ADDRESS EXTENSION
-
- CASE FOLDING
-
- REGULAR EXPRESSION TABLES
-
- SECURITY
-
- CONFIGURATION PARAMETERS
-
- STANDARDS
-
- SEE ALSO
-
- README FILES
-
- LICENSE
-
- AUTHOR(S)
-