01.06.21, 17:38 +0200, Wietse Venema: > 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.
I was aware of the second part, but not of the first. Thanks for explaining that, Wietse! -- Regards mks