I have a working Postfix config with some local mailboxes, some local aliases and a handful of purely virtual alias domains. Because I find it tedious to add all to virtual_alias_domains
I'm asking: How to define them by simply using them in virtual_alias_maps
?
Example:
### /etc/postfix/main.cf
myhostname = mx.example.com
virtual_alias_domains =
foo.example
bar.example
virtual_alias_maps = hash:/etc/postfix/virtual
### /etc/postfix/virtual
single-user@foo.example single-user@example.com
@bar.example whole-domain@example.com
# this one is missing in virtual_alias_domains and won't work
@baz.example me@example.com
When adding new entries like baz.example
I will probably forget to list them in virtual_alias_domains
. This also breaks the common rule of Don't repeat yourself.
How to get rid of virtual_alias_domains
or "compile it dynamically"?
http://www.postfix.org/postconf.5.html#virtual_alias_domains says the default of virtual_alias_domains
is $virtual_alias_maps
:
The default value is $virtual_alias_maps so that you can keep all information about virtual alias domains in one place.
But this seems not to work for me.
Jan 31 00:09:25 HOSTNAME postfix/smtpd[5064]: NOQUEUE: reject: RCPT from FROM_HOSTNAME[185.XXX.XXX.XXX]: 454 4.7.1 <FROM_ADDRESS>:
Relay access denied; from=<FROM_ADDRESS> to=<TO_ADDRESS> proto=ESMTP helo=<FROM_HOSTNAME>
(anonymized log, inserted newline for readability) My actual configuration:
# postconf -n | egrep ^virtual_
virtual_alias_maps = hash:/etc/postfix/virtual
# postconf | egrep ^virtual_alias
virtual_alias_address_length_limit = 1000
virtual_alias_domains = $virtual_alias_maps
virtual_alias_expansion_limit = 1000
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_alias_recursion_limit = 1000
Unfortunately I don't know to dump the configuration of virtual_alias_domains
after variable expansion.