Markus Sch?nhaber: > Hi, > > given a postfix config like this: > > # postconf -n > compatibility_level = 2 > mydestination = example.com > myhostname = f34-test.example.com > > If I try to send mail to notlo...@example.com with "notlocal" neither > being a system user nor being contained in the alias_maps, it is > rejected with "550 5.1.1 <notlo...@example.com>: Recipient address > rejected: User unknown in local recipient table" - as is to be expected. > > But if I add something like > > virtual_alias_maps = inline:{notlo...@example.com=notlo...@example.com} > > to the config, the address will be accepted (of course, in the end, a > bounce will be generated if no suitable setting - e.g. an entry in the > transport_maps - exists which somehow makes delivery possible). > I was bit surprised that creating a virtual mapping of the address onto > itself prevents it from being rejected[1]. And although I guess that it > probably is obvious why postfix behaves this way, I have failed to find > an explanation for this behavior in the docs. > Could someone please point me to the right place?
This is a multi-part story. First, the address 'exists' because it has a virtual alias, even if the expansion of that alias does not exist. Second, alias expansion is recursive, and terminates when a name appears in its alias expansion. Thus, a 1:1 virtual alias is a supported way to prevent recursion in situations like this: f...@example.com f...@example.com @example.com ot...@example.com Here, any...@example.com will be aliased to ot...@example.com, except for f...@example.com which is aliased to f...@example.com. Wietse