Hi Wietse

thanks a lot for your hint :-) Deployed and first tests show it works as
it should: changing 5xx to 4xx in case of NX domain for nexthop.

Cheers

tobi

Am 15.10.19 um 21:58 schrieb Wietse Venema:
> Wietse Venema:
>> Wietse Venema:
>>> Tobi:
>>>> I wonder if the following idea is somehow "do-able" in postfix. We have
>>>> a fallback postfix instance which gets all mails that our scanners could
>>>> not send to our customers target server. Now the fallback tries to
>>>> submit those msg to our customers. Sometimes our customers do not know
>>>> how to manage dns and delete an important record (like the a-rec for the
>>>> target server). We do not manage their zones, that's done by themselves.
>>>>
>>>> Now we thought that it would be very nice if we could "tell" our
>>>> fallback instance that in case of NXDomain in DNS lookup of a target
>>>> server to return a DEFER (4xx) instead of a REJECT (5xx).
>>>> I found soft_bounce parameter in the docs but that seems too wide, as we
>>>> would only soft bounce in case of NXDomain results of target servers and
>>>> not for any other reason. Is it possible to use smtp_dns_reply_filter to
>>>> filter for NXDomain results and return a DEFER action?
>>
>> Of course Postfix can, it just isn't called smtp_dns_reply_filter
>>
>> Instead, use smtp_delivery_status_filter.
>>
>> The filter is invoked with a string of the form :
>>
>>     enhanced-status-code SPACE explanatory-text
>>
>> For example:
>>
>>     5.4.4 Host or domain name not found. Name service error for...
>>
>> So the following could do the trick for your fallback relay host:
>>
>> /etc/postfix/main.cf:
>>      smtp_delivery_status_filter = pcre:/etc/postfix/fallback_status_filter
> 
> Corrected text: The '5' needs to be outside the ().
> 
> /etc/postfix/fallback_status_filter:
>     /^5(\S+\s+Host or domain name not found.+)/ 4$1
> 
> This changes the hard error into a soft one, and is more selective
> than setting soft_bounce=yes.
> 
>       Wietse
>>

Reply via email to