Re: [Exim] pass_on_timeout option

Top Page
Delete this message
Reply to this message
Author: Dean Brooks
Date:  
To: Leonardo Boselli
CC: exim-users
Subject: Re: [Exim] pass_on_timeout option
On Sat, Mar 27, 2004 at 11:02:31AM +0100, Leonardo Boselli wrote:

> lookuphost:
> driver = lookuphost
> transport = remote_smtp
> self = fail
> pass_on_timeout = true
>
> The problem is number 3: althopught reading in the exim documentation
> looks as if pass_on_timeout works either on any connection problem i
> keep having these lines in my log:
>
> 2004-03-27 10:11:38 1B75Cb-00085x-00 == aqhcqstmc@???
> T=remote_smtp defer (101): Network is unreachable


pass_on_timeout handles timeouts in *routing*, not in the transport
final delivery. Examples would be DNS timeouts (i.e. remote DNS
server is not responding, DNS connectivity is down, etc.).

To help you save some time, here is a well-tested example of dealing
with many (if not all) of your issues at once:

  remote_domains:
    driver = dnslookup
    ignore_target_hosts = 127.0.0.0/8
    self = fail
    pass_on_timeout
    transport = remote_smtp
    fallback_hosts = fallbackhost.yourdomain.com
    no_more


  send_to_fallback:
    driver = manualroute
    route_data = fallbackhost.yourdomain.com
    transport = remote_smtp


Benefits of this configuration:

  1. The first router will handle any remote deliveries.  If routing
     succeeds, it hands it off to remote_smtp for direct remote delivery.
     If the transport cannot connect to the remote server for any reason,
     the "fallback_hosts" options tells the transport to send it on
     to your fallback host of "fallbackhost.yourdomain.com".


  2. If the routing determines that the MX records point to you, the "self"
     option will catch it and fail the message (since it was supposed to
     be a remote delivery)


  3. If the DNS lookups timeout (i.e. DNS nameservers unreachable for
     the remote site), the "pass_on_timeout" option will cause it to
     go on to the next router, which manualroutes the message specifically
     to the fallback host.  This is the only way to get DNS timeouts to
     immediately send to your fallback rather than sit on the queue.  The
     fallback_hosts option on the router will NOT catch DNS timeouts, which
     is why two routers are required here.


  4. The "no_more" option on the first router is required to keep
     routing failures from falling through to the send_to_fallback router.


Hope this helps.

--
Dean Brooks
dean@???