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

Reply via email to