We run a mail server with virtual domains (mainly there are mailbox
domains).
For a certain things same aliases needed in the each and every virtual
domain in the system. For example, all these domains maintained by same
people, so it is good thing to have each domain's postmaster mapped to
the same internal distribution list. There are also other common aliases.
To simplify things, I added a regexp table
(/etc/postfix/virtual_alias_maps-special):
/^postmaster@/ postmaster
This table is referenced in the main.cf this way:
virtual_alias_maps = regexp:/etc/postfix/virtual_alias_maps-special
mysql:/etc/postfix/virtual_alias_maps.cf
There is no address rewriting, masqerading and other things that change
destination or source address. We're using only local aliases and
virtual aliases. There is also no per-recipient transports and
relayhost, any mail is delivered directly to recipient's MX servers.
The local alias table redirects postmaster's mail further.
Of course, this catches all mail for each domain's postmaster. But, now
I'm not able to send any mail to any external postmaster
(postmas...@some.domain, some.domain isn't a virtual, relay or canonical
domain) with this server. If I try to send mail, for example, to
postmas...@postfix.org, it's getting catched and delivered to my
postmaster list.
Still, if I try to deliver mail to postmas...@postfix.org through this
server from external systems without SMTP authentication, it rejects
with "Relay access denied".
Why Postfix behaves like this? How to catch only 'incoming' mail, and to
send it away it if recipiend domain isn't listed in the virtual, local,
and relay domain tables?