[Exim] How to try more than one router?

Top Page
Delete this message
Reply to this message
Author: Daniel M. Drucker
Date:  
To: exim-users
Subject: [Exim] How to try more than one router?
I am currently delivering all of my mail through a smarthost. I would like
to make it so that, in the event that smarthost is not reachable, my machine
instead attempts to deliver the mail itself.

The first two entries in my routers section look like this:

smarthost:
driver = manualroute
domains = ! +local_domains
transport = remote_smtp
route_list = * smarthost.myothersite.org

# shouldn't ever use dnslookup unless smarthost fails
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more

This, of course, doesn't actually work -- one a message is accepted by the
smarthost router, it doesn't let go of it - it goes into the defer state,
and begins the retry schedule. No message that maches ! +local_domains will
ever make it to the dnslookup router.

Is there any way to do what I want? The only way I could think of offhand is
something of a kludge -- I was going to make a condition that checks a file
for some string, and that string is added/removed by an external program
that continually checks the availability of the smarthost. I'm hoping theres
a way that won't involve such ugliness.

Daniel Drucker
dmd@???