302 lines
18 KiB
HTML
302 lines
18 KiB
HTML
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
"https://www.w3.org/TR/html4/loose.dtd">
|
|
<html> <head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<link rel='stylesheet' type='text/css' href='postfix-doc.css'>
|
|
<title> Postfix manual - virtual(5) </title>
|
|
</head> <body> <pre>
|
|
VIRTUAL(5) VIRTUAL(5)
|
|
|
|
<b><a name="name">NAME</a></b>
|
|
virtual - Postfix virtual alias table format
|
|
|
|
<b><a name="synopsis">SYNOPSIS</a></b>
|
|
<b>postmap /etc/postfix/virtual</b>
|
|
|
|
<b>postmap -q "</b><i>string</i><b>" /etc/postfix/virtual</b>
|
|
|
|
<b>postmap -q - /etc/postfix/virtual</b> <<i>inputfile</i>
|
|
|
|
<b><a name="description">DESCRIPTION</a></b>
|
|
The optional <a href="virtual.5.html"><b>virtual</b>(5)</a> alias table (<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>) applies to all
|
|
recipients: <a href="local.8.html">local(8)</a>, virtual, and remote. This feature is implemented
|
|
in the Postfix <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon before mail is queued. These tables
|
|
are often queried with a full email address (including domain).
|
|
|
|
This is unlike the <a href="aliases.5.html"><b>aliases</b>(5)</a> table (<a href="postconf.5.html#alias_maps">alias_maps</a>) which applies only to
|
|
<a href="local.8.html"><b>local</b>(8)</a> recipients. That table is only queried with the email address
|
|
localpart (no domain).
|
|
|
|
Virtual aliasing is recursive; to terminate recursion for a specific
|
|
address, alias that address to itself.
|
|
|
|
The main applications of <a href="ADDRESS_REWRITING_README.html#virtual">virtual aliasing</a> are:
|
|
|
|
<b>o</b> To redirect mail for one address to one or more addresses.
|
|
|
|
<b>o</b> To implement virtual alias domains where all addresses are
|
|
aliased to addresses in other domains.
|
|
|
|
Virtual alias domains are not to be confused with the virtual
|
|
mailbox domains that are implemented with the Postfix <a href="virtual.8.html"><b>virtual</b>(8)</a>
|
|
mail delivery agent. With <a href="ADDRESS_CLASS_README.html#virtual_mailbox_class">virtual mailbox domains</a>, each recipi-
|
|
ent address can have its own mailbox.
|
|
|
|
Virtual aliasing is applied only to recipient envelope addresses, and
|
|
does not affect message headers. Use <a href="canonical.5.html"><b>canonical</b>(5)</a> mapping to rewrite
|
|
header and envelope addresses in general.
|
|
|
|
Normally, the <a href="virtual.5.html"><b>virtual</b>(5)</a> alias table is specified as a text file that
|
|
serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> command. The result, an indexed file
|
|
in <b>dbm</b> or <b>db</b> format, is used for fast searching by the mail system.
|
|
Execute the command "<b>postmap /etc/postfix/virtual</b>" to rebuild an
|
|
indexed file after changing the corresponding text file.
|
|
|
|
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, or lookups can be
|
|
directed to a TCP-based server. In those case, the lookups are done in
|
|
a slightly different way as described below under "REGULAR EXPRESSION
|
|
TABLES" or "TCP-BASED TABLES".
|
|
|
|
<b><a name="case_folding">CASE FOLDING</a></b>
|
|
The search string is folded to lowercase before database lookup. As of
|
|
Postfix 2.3, the search string is not case folded with database types
|
|
such as <a href="regexp_table.5.html">regexp</a>: or <a href="pcre_table.5.html">pcre</a>: whose lookup fields can match both upper and
|
|
lower case.
|
|
|
|
<b><a name="table_format">TABLE FORMAT</a></b>
|
|
The input format for the <a href="postmap.1.html"><b>postmap</b>(1)</a> command is as follows:
|
|
|
|
<i>pattern address, address, ...</i>
|
|
When <i>pattern</i> matches a mail address, replace it by the corre-
|
|
sponding <i>address</i>.
|
|
|
|
blank lines and comments
|
|
Empty lines and whitespace-only lines are ignored, as are lines
|
|
whose first non-whitespace character is a `#'.
|
|
|
|
multi-line text
|
|
A logical line starts with non-whitespace text. A line that
|
|
starts with whitespace continues a logical line.
|
|
|
|
<b><a name="table_search_order">TABLE SEARCH ORDER</a></b>
|
|
With lookups from indexed files such as DB or DBM, or from networked
|
|
tables such as NIS, LDAP or SQL, each <i>user</i>@<i>domain</i> query produces a
|
|
sequence of query patterns as described below.
|
|
|
|
Each query pattern is sent to each specified lookup table before trying
|
|
the next query pattern, until a match is found.
|
|
|
|
<i>user</i>@<i>domain address, address, ...</i>
|
|
Redirect mail for <i>user</i>@<i>domain</i> to <i>address</i>. This form has the
|
|
highest precedence.
|
|
|
|
<i>user address, address, ...</i>
|
|
Redirect mail for <i>user</i>@<i>site</i> to <i>address</i> when <i>site</i> is equal to
|
|
$<b><a href="postconf.5.html#myorigin">myorigin</a></b>, when <i>site</i> is listed in $<b><a href="postconf.5.html#mydestination">mydestination</a></b>, or when it is
|
|
listed in $<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a></b> or $<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a></b>.
|
|
|
|
This functionality overlaps with the functionality of the local
|
|
<i>aliases</i>(5) database. The difference is that <a href="virtual.5.html"><b>virtual</b>(5)</a> mapping
|
|
can be applied to non-local addresses.
|
|
|
|
@<i>domain address, address, ...</i>
|
|
Redirect mail for other users in <i>domain</i> to <i>address</i>. This form
|
|
has the lowest precedence.
|
|
|
|
Note: @<i>domain</i> is a wild-card. With this form, the Postfix SMTP
|
|
server accepts mail for any recipient in <i>domain</i>, regardless of
|
|
whether that recipient exists. This may turn your mail system
|
|
into a backscatter source: Postfix first accepts mail for
|
|
non-existent recipients and then tries to return that mail as
|
|
"undeliverable" to the often forged sender address.
|
|
|
|
To avoid backscatter with mail for a wild-card domain, replace
|
|
the wild-card mapping with explicit 1:1 mappings, or add a
|
|
<a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a> restriction for that domain:
|
|
|
|
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
|
...
|
|
<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
|
<a href="postconf.5.html#check_recipient_access">check_recipient_access</a>
|
|
<a href="DATABASE_README.html#types">inline</a>:{example.com=<a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a>}
|
|
<a href="postconf.5.html#unverified_recipient_reject_code">unverified_recipient_reject_code</a> = 550
|
|
|
|
In the above example, Postfix may contact a remote server if the
|
|
recipient is aliased to a remote address.
|
|
|
|
<b><a name="result_address_rewriting">RESULT ADDRESS REWRITING</a></b>
|
|
The lookup result is subject to address rewriting:
|
|
|
|
<b>o</b> When the result has the form @<i>otherdomain</i>, the result becomes
|
|
the same <i>user</i> in <i>otherdomain</i>. This works only for the first
|
|
address in a multi-address lookup result.
|
|
|
|
<b>o</b> When "<b><a href="postconf.5.html#append_at_myorigin">append_at_myorigin</a>=yes</b>", append "<b>@$<a href="postconf.5.html#myorigin">myorigin</a></b>" to addresses
|
|
without "@domain".
|
|
|
|
<b>o</b> When "<b><a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a>=yes</b>", append "<b>.$<a href="postconf.5.html#mydomain">mydomain</a></b>" to addresses
|
|
without ".domain".
|
|
|
|
<b><a name="address_extension">ADDRESS EXTENSION</a></b>
|
|
When a mail address localpart contains the optional recipient delimiter
|
|
(e.g., <i>user+foo</i>@<i>domain</i>), the lookup order becomes: <i>user+foo</i>@<i>domain</i>,
|
|
<i>user</i>@<i>domain</i>, <i>user+foo</i>, <i>user</i>, and @<i>domain</i>.
|
|
|
|
The <b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a></b> parameter controls whether an
|
|
unmatched address extension (<i>+foo</i>) is propagated to the result of a ta-
|
|
ble lookup.
|
|
|
|
<b><a name="virtual_alias_domains">VIRTUAL ALIAS DOMAINS</a></b>
|
|
Besides virtual aliases, the virtual alias table can also be used to
|
|
implement <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domains</a>. With a virtual alias domain, all
|
|
recipient addresses are aliased to addresses in other domains.
|
|
|
|
Virtual alias domains are not to be confused with the virtual mailbox
|
|
domains that are implemented with the Postfix <a href="virtual.8.html"><b>virtual</b>(8)</a> mail delivery
|
|
agent. With virtual mailbox domains, each recipient address can have
|
|
its own mailbox.
|
|
|
|
With a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a>, the virtual domain has its own user name
|
|
space. Local (i.e. non-virtual) usernames are not visible in a virtual
|
|
alias domain. In particular, local <a href="aliases.5.html"><b>aliases</b>(5)</a> and local mailing lists
|
|
are not visible as <i>localname@virtual-alias.domain</i>.
|
|
|
|
Support for a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a> looks like:
|
|
|
|
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
|
<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/virtual
|
|
|
|
Note: some systems use <b>dbm</b> databases instead of <b>hash</b>. See the output
|
|
from "<b>postconf -m</b>" for available database types.
|
|
|
|
/etc/postfix/virtual:
|
|
<i>virtual-alias.domain anything</i> (right-hand content does not matter)
|
|
<i>postmaster@virtual-alias.domain postmaster</i>
|
|
<i>user1@virtual-alias.domain address1</i>
|
|
<i>user2@virtual-alias.domain address2, address3</i>
|
|
|
|
The <i>virtual-alias.domain anything</i> entry is required for a virtual alias
|
|
domain. <b>Without this entry, mail is rejected with "relay access</b>
|
|
<b>denied", or bounces with "mail loops back to myself".</b>
|
|
|
|
Do not specify <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a> names in the <a href="postconf.5.html"><b>main.cf</a> <a href="postconf.5.html#mydestination">mydestination</a></b>
|
|
or <b><a href="postconf.5.html#relay_domains">relay_domains</a></b> configuration parameters.
|
|
|
|
With a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a>, the Postfix SMTP server accepts mail for
|
|
<i>known-user@virtual-alias.domain</i>, and rejects mail for <i>unknown-user</i>@<i>vir-</i>
|
|
<i>tual-alias.domain</i> as undeliverable.
|
|
|
|
Instead of specifying the virtual alias domain name via the <b><a href="postconf.5.html#virtual_alias_maps">vir</a>-</b>
|
|
<b><a href="postconf.5.html#virtual_alias_maps">tual_alias_maps</a></b> table, you may also specify it via the <a href="postconf.5.html"><b>main.cf</a> <a href="postconf.5.html#virtual_alias_domains">vir-</b>
|
|
<b>tual_alias_domains</a></b> configuration parameter. This latter parameter uses
|
|
the same syntax as the <a href="postconf.5.html"><b>main.cf</a> <a href="postconf.5.html#mydestination">mydestination</a></b> configuration parameter.
|
|
|
|
<b><a name="regular_expression_tables">REGULAR EXPRESSION TABLES</a></b>
|
|
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 <a href="regexp_table.5.html"><b>regexp_table</b>(5)</a> or <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>.
|
|
|
|
Each pattern is a regular expression that is applied to the entire
|
|
address being looked up. Thus, <i>user@domain</i> mail addresses are not bro-
|
|
ken up into their <i>user</i> and <i>@domain</i> constituent parts, nor is <i>user+foo</i>
|
|
broken up into <i>user</i> and <i>foo</i>.
|
|
|
|
Patterns are applied in the order as specified in the table, until a
|
|
pattern is found that matches the search string.
|
|
|
|
Results are the same as with indexed file lookups, with the additional
|
|
feature that parenthesized substrings from the pattern can be interpo-
|
|
lated as <b>$1</b>, <b>$2</b> and so on.
|
|
|
|
<b><a name="tcp-based_tables">TCP-BASED TABLES</a></b>
|
|
This section describes how the table lookups change when lookups are
|
|
directed to a TCP-based server. For a description of the TCP
|
|
client/server lookup protocol, see <a href="tcp_table.5.html"><b>tcp_table</b>(5)</a>. This feature is
|
|
available in Postfix 2.5 and later.
|
|
|
|
Each lookup operation uses the entire address once. Thus, <i>user@domain</i>
|
|
mail addresses are not broken up into their <i>user</i> and <i>@domain</i> con-
|
|
stituent parts, nor is <i>user+foo</i> broken up into <i>user</i> and <i>foo</i>.
|
|
|
|
Results are the same as with indexed file lookups.
|
|
|
|
<b><a name="bugs">BUGS</a></b>
|
|
The table format does not understand quoting conventions.
|
|
|
|
<b><a name="configuration_parameters">CONFIGURATION PARAMETERS</a></b>
|
|
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this topic.
|
|
See the Postfix <a href="postconf.5.html"><b>main.cf</b></a> file for syntax details and for default values.
|
|
Use the "<b>postfix reload</b>" command after a configuration change.
|
|
|
|
<b><a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> ($<a href="postconf.5.html#virtual_maps">virtual_maps</a>)</b>
|
|
Optional lookup tables that are often searched with a full email
|
|
address (including domain) and that apply to all recipients:
|
|
<a href="local.8.html"><b>local</b>(8)</a>, virtual, and remote; this is unlike <a href="postconf.5.html#alias_maps">alias_maps</a> that
|
|
are only searched with an email address localpart (no domain)
|
|
and that apply only to <a href="local.8.html"><b>local</b>(8)</a> recipients.
|
|
|
|
<b><a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a> ($<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>)</b>
|
|
Postfix is the final destination for the specified list of vir-
|
|
tual alias domains, that is, domains for which all addresses are
|
|
aliased to addresses in other local or remote domains.
|
|
|
|
<b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a> (canonical, virtual)</b>
|
|
What address lookup tables copy an address extension from the
|
|
lookup key to the lookup result.
|
|
|
|
Other parameters of interest:
|
|
|
|
<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> (all)</b>
|
|
The local network interface addresses that this mail system
|
|
receives mail on.
|
|
|
|
<b><a href="postconf.5.html#mydestination">mydestination</a> ($<a href="postconf.5.html#myhostname">myhostname</a>, localhost.$<a href="postconf.5.html#mydomain">mydomain</a>, localhost)</b>
|
|
The list of domains that are delivered via the $<a href="postconf.5.html#local_transport">local_transport</a>
|
|
mail delivery transport.
|
|
|
|
<b><a href="postconf.5.html#myorigin">myorigin</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
|
The domain name that locally-posted mail appears to come from,
|
|
and that locally posted mail is delivered to.
|
|
|
|
<b><a href="postconf.5.html#owner_request_special">owner_request_special</a> (yes)</b>
|
|
Enable special treatment for owner-<i>listname</i> entries in the
|
|
<a href="aliases.5.html"><b>aliases</b>(5)</a> file, and don't split owner-<i>listname</i> and <i>list-</i>
|
|
<i>name</i>-request address localparts when the <a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> is
|
|
set to "-".
|
|
|
|
<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> (empty)</b>
|
|
The remote network interface addresses that this mail system
|
|
receives mail on by way of a proxy or network address transla-
|
|
tion unit.
|
|
|
|
<b><a name="see_also">SEE ALSO</a></b>
|
|
<a href="cleanup.8.html">cleanup(8)</a>, canonicalize and enqueue mail
|
|
<a href="postmap.1.html">postmap(1)</a>, Postfix lookup table manager
|
|
<a href="postconf.5.html">postconf(5)</a>, configuration parameters
|
|
<a href="canonical.5.html">canonical(5)</a>, canonical address mapping
|
|
|
|
<b><a name="readme_files">README FILES</a></b>
|
|
<a href="ADDRESS_REWRITING_README.html">ADDRESS_REWRITING_README</a>, address rewriting guide
|
|
<a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
|
|
<a href="VIRTUAL_README.html">VIRTUAL_README</a>, domain hosting guide
|
|
|
|
<b><a name="license">LICENSE</a></b>
|
|
The Secure Mailer license must be distributed with this software.
|
|
|
|
<b>AUTHOR(S)</b>
|
|
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
|
|
|
|
VIRTUAL(5)
|
|
</pre> </body> </html>
|