Re: [exim] Routing failed deliveries through an ESP

Top Page
Delete this message
Reply to this message
Author: Lance Lovette
Date:  
To: exim-users
Subject: Re: [exim] Routing failed deliveries through an ESP
> There's a rational basis for an exception for 5xx before MAIL FROM,
> when the target only has the connection parameters and HELO
> name to use as a basis for rejection


Unfortunately, Google, in the case of an outright IP-based block, doesn't
reject the message until after DATA has been submitted.

After wrestling with this for a few days, my solution to mitigate some
fallout from host-based rejections is a router condition that allows me to
easily avoid routing to problematic domains while the issue is resolved.
(The router after this sends everything through the ESP.)

    FIRST_MX_HOST = ${extract{2}{ \n}{${lookup
dnsdb{mx=$domain}{$value}}}{$value}fail}
    r_direct:
      driver = dnslookup
      transport = t_smtp
      domains = ! +local_domains
      condition = first_delivery
      condition = ${if !eq{$return_path}{}}
      condition = ${lookup
{FIRST_MX_HOST}nwildlsearch{/etc/exim/force-esp-mxhosts}{false}{true}}
      ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8


Two questions for the experts:

- Is there a more efficient way to achieve this?
- Does Exim have a mechanism to invoke a script with rejected messages, so
I can either re-send the message or add the host to my force-esp-mxhosts?

Thanks!
Lance