I'm asking a little advice.
On most of my hosts mail is generated for root and then canonicaled to
root@fqdn and is relayed to the MSA on another host. This is by
design.
relayhost = msa-fqdn
There is an alias on the originating host for root but it doesn't seem
to expand there. If that could be fixed, then the rest doesn't matter.
Instead it is relayed to $relayhost (the MSA).
At the MSA it is relayed to the MDA covering mydomain.tld .
relay_domains = hash:/etc/postfix/transport
transport:
mydomain.tld mda1.some-subdomain.mydomain.tld
...
otherdomain.tld mdaN.some-subdomain.mydomain.tld
At the MDA I use cyrus imapd, therefore have:
local_transport = lmtp:unix:/var/imap/socket/lmtp
There are two problems here. One is that the alias isn't expanded on
local delivery otherwise it would go to
[email protected] . Since local_transport is set,
local(8) is never run.
The second problem is that I have to list every hostname in
the mydestination hash.
mydestination = hash:/etc/postfix/my-domains
parent_domain_matches_subdomains doesn't apply to mydestination
otherwise I could have a short file that very rarely changed:
my-domains:
mydomain.tld exists
subdomain1.mydomain.tld exists
subdomain2.mydomain.tld exists
.subdomain1.mydomain.tld exists
.subdomain2.mydomain.tld exists
Instead I need a long file that changes now and then:
my-domains:
mydomain.tld exists
subdomain1.mydomain.tld exists
subdomain2.mydomain.tld exists
host1.subdomain1.mydomain.tld exists
host2.subdomain1.mydomain.tld exists
...
host1.subdomain2.mydomain.tld exists
host2.subdomain2.mydomain.tld exists
...
This also means the this mail is delivered to root at the MDA and not
to the alias [email protected] .
It seems that a partial solution at the MDA for sending to
[email protected] is to use virtual_alias_maps . This
is a partial solution because it would still require an entry for
every hostname. Perhaps a complete solution at the MDA is to use
virtual_alias_maps with pcre: or regexp:
virtual_alias_maps = pcre:/etc/postfix/pcre-alias
pcre-alias:
/(root|postmaster|...)@(.*\.)?mydomain\.tld/
[email protected]
/(manager|info|marketing|sales|support)@(.*\.)?mydomain\.tld/
[email protected]
This is nice because there are less MDA than hosts. Domains with just
web content and email don't have mail to root@ per se but the outside
world might send to hostmaster or webmaster or the other things that
get aliased to root but there is only one such address per domain.
Perhaps better is to solve this on the sending end.
virtual_alias_maps = hash:virtual-alias
virtual-alias:
root [email protected]
postmaster root
...
For internally sourced mail solving this at the source might be
cleaner (if virtual_alias_maps is run before relayhost relaying) but
means changing more hosts. For externally sourced mail this has to be
solved at the MDA but need not use pcre.
It seems to me that there should be a way to enable
parent_domain_matches_subdomains on virtual_alias_maps .
That would save having to resort to using pcre in this case.
Any faults in my thinking on this?
Curtis