With the approach described in this section, every
hosted domain
can have its own info etc. email address. However, it still uses
UNIX system accounts for local mailbox deliveries.
With
virtual alias domains, each hosted address is aliased to
a local UNIX system account or to a remote address. The example
below shows how to use this mechanism for the example.com domain.
1 /etc/postfix/main.cf:
2
virtual_alias_domains = example.com ...other
hosted domains...
3
virtual_alias_maps = hash:/etc/postfix/virtual
4
5 /etc/postfix/virtual:
6 [email protected] postmaster
7 [email protected] joe
8 [email protected] jane
9 # Uncomment entry below to implement a catch-all address
10 # @example.com jim
11 ...virtual aliases for more domains...
Notes:
-
Line 2: the
virtual_alias_domains setting tells Postfix
that example.com is a so-called
virtual alias domain. If you omit
this setting then Postfix will reject mail (relay access denied)
or will not be able to deliver it (mail for example.com loops back
to myself).
NEVER list a
virtual alias domain name as a
mydestination
domain!
-
Lines 3-8: the /etc/postfix/virtual file contains the virtual
aliases. With the example above, mail for [email protected]
goes to the local postmaster, while mail for [email protected] goes
to the UNIX account joe, and mail for [email protected] goes to
the UNIX account jane. Mail for all other addresses in example.com
is rejected with the error message "User unknown".
-
Line 10: the commented out entry (text after #) shows how
one would implement a catch-all virtual alias that receives mail
for every example.com address not listed in the virtual alias file.
This is not without risk. Spammers nowadays try to send mail from
(or mail to) every possible name that they can think of. A catch-all
mailbox is likely to receive many spam messages, and many bounces
for spam messages that were sent in the name of [email protected].
Execute the command "postmap /etc/postfix/virtual" after
changing the virtual file, and execute the command "postfix
reload" after changing the main.cf file.
Note: virtual aliases can resolve to a local address or to a
remote address, or both. They don't have to resolve to UNIX system
accounts on your machine.
More details about the virtual alias file are given in the
virtual(5) manual page, including multiple addresses on the right-hand
side.
Virtual aliasing solves one problem: it allows each domain to
have its own info mail address. But there still is one drawback:
each virtual address is aliased to a UNIX system account. As you
add more virtual addresses you also add more UNIX system accounts.
The next section eliminates this problem.