On Wed, Mar 13, 2013 at 12:58:16PM -0400, Wietse Venema wrote:
> > Analogous to Noel's suggestion, one possibility is that you list
> > bare usernames (without @example.com etc.) in relay_recipient_maps.
> > It's not documented, but I could add that note since the behavior is
> > not going to change.
>
> This requires that the @domain matches mydestination, so that is
> unlikely to work.
One can list all the relay domains in mydestination, configure
local_recipient_maps (instead of relay_recipient_maps) as specified,
and then either:
main.cf:
remap = pcre:${config_directory}/
indexed = ${default_database_type}:${config_directory}/
local_transport = relay:[relay.example.com]
local_recipient_maps = ${indexed}usernames
transport_maps = ${indexed}transport
mydestination = ${remap}localdomains.re
localdomains.re:
/(^|\.)example\.com$/ LOCAL
usernames:
larry LOCAL
curly LOCAL
moe LOCAL
transport:
# Optional exceptions to inbound relaying of local mail.
# localhost local
# hostname.example.com local
# ...
Since the OP has a completely flat namespace, there is unlikely to
be any difference between the parent example.com domain and its
"relay" children.
This recipe is not "rigid", there is some room for additional tweaks
if the requirements are more complex.
For my $0.02, I abandoned inbound masquerading a long time ago,
who needs every email address of the form:
[email protected]
I masquerade sender addresses at the internal MSA so only the
primary addresses of users leak out to the outside world, and *only*
accept primary addresses. Inbound masquerading is a legacy of
times long gone by. The fact that Postfix supports for this is a
bit clunky is more of a signal about the feature than about Postfix.
[ Admittedly, it would probably be helpful to have some 1-to-1 rewriting
support in smtpd(8) that happens before address validation. That
would make the wildcard canonical maps folks happy, and inadvertantly
"fix" masquerading. ]
--
Viktor.