Re: [exim] manualroute defer

Top Page
Delete this message
Reply to this message
Author: Andrew C Aitchison
Date:  
To: Mrten
CC: exim-users
Subject: Re: [exim] manualroute defer
On Wed, 27 Mar 2019, Mrten via Exim-users wrote:

> Hi,
>
>
> I've got a set of hosts that only have internal IPs that I want to be able to
> deliver mail to the Internet.
>
> I thought I could do that with a manualroute at the end of the routers on the
> internal-ip-only machines, to the mailservers in the group that do have
> outgoing IPs, like this:
>
> dnslookup:
>  driver               = manualroute
>  transport            = internal_smtp
>  route_list           = * 192.168.84.30:192.168.84.31:192.168.84.32
>  no_more


The magic name for this is smarthost. Search for that in your docs.
But having multiple smarthosts is not typical.

> but today I discovered that if the .84.30 host has nothing listening on port
> 25 delivery gets deferred instead of trying .84.31 and all mail queues up.
>
>
>
> 2019-03-27 06:48:48 1h8yLV-0005Pe-PV H=192.168.84.30 [192.168.84.30]
> Connection refused
>
> 2019-03-27 06:48:48 1h8yLV-0005Pe-PV == acme@??? <acme@???>
> R=dnslookup T=internal_smtp defer (111): Connection refused


I would be tempted to have a DNS alias for your smarthost mailservers,
but I know that I don't know enough about DNS round-robin to suggest that
that was a good idea.

> I think I can work around this by using hosts_randomize, but that seems ugly
> and it seems I am missing something.


I think this is exactly what hosts_randomize is for.
But note that if the first host fails, I *think* that the message will be
deferred until the next queue run.

> Can someone shed some light on this? Should I be using multiple routers with
> an option I failed to find when reading the docs?


That might get exim to try more than one host each queue run.
However, if a smarthost is not responding, something is wrong.
You should be aiming for this not to happen.
If a smarthost does fail to respond, your aim is for something
sensible to happen eventually, not to try to maximise performance.
Thus I would be happy if the message is delivered by the next queue
run.

-- 
Andrew C. Aitchison                    Cambridge, UK
             andrew@???