On 2013-11-10 Christoph Kling wrote:
> virtual_alias_domains =
> 
> virtual_alias_maps  = hash file with contents:
> "@domain @anotherdomain"
> 
> virtual_mailbox_domains = hash file with contents:
> "@anotherdomain"
> 
> virtual_mailbox_maps = hash file with contents:
> "foo@anotherdomain"

$virtual_mailbox_domains lists *domains*, so its content should look
like this:

example.net

User mappings, including catch-alls, should go into the respective map.
In case of virtual mailboxes you must map the catch-all to an existing
mailbox in $virtual_mailbox_maps, e.g.:

f...@example.net  example.net/foo
b...@example.net  example.net/bar
@example.net     example.net/bar

The catch-all mapping must be the last mapping in the list, and you need
to make sure that you re-hash the file after it's changed.

See the VIRTUAL_README [1] for further details.

Make sure that you don't remove the catch-all as long as you have the
wildcard domain mapping in $virtual_alias_maps, because you'd produce
bounces otherwise.

A better approach (unless you really need a catch-all, which I somehow
doubt) would be to auto-generate a virtual alias map by reading the
virtual mailbox map and creating a mapping for each address found in it:

f...@example.com  f...@example.net
b...@example.com  b...@example.net
...

This can be done with a Makefile or some other script.

[1] http://www.postfix.org/VIRTUAL_README.html

Regards
Ansgar Wiechers
-- 
"Abstractions save us time working, but they don't save us time learning."
--Joel Spolsky

Reply via email to