Re: [exim] DNS problems with sending via multiple smarthosts

Top Page
Delete this message
Reply to this message
Author: David Purton
Date:  
To: exim-users
Subject: Re: [exim] DNS problems with sending via multiple smarthosts
On Tue, Jul 16, 2019 at 02:43:12PM +0100, Jeremy Harris via Exim-users wrote:
> On 16/07/2019 06:33, David Purton via Exim-users wrote:
> > I then sign into the network and try and run exim -qf to clear the
> > queue.
> >
> > But the logs then show:
> >
> >     2019-07-16 14:23:14 Start queue run: pid=12322 -qf
> >     2019-07-16 14:23:14 1hnFQ2-000379-9I no IP address found for host smtp.gmail.com
> >     2019-07-16 14:23:14 1hnFQ2-000379-9I == example@??? R=smarthost defer (-1): lookup failed for all hosts in smarthost router: host_find_failed=ignore host_all_ignored=defer
> >     2019-07-16 14:23:14 End queue run: pid=12322 -qf

>
> > So, what is wrong? How can I diagnose things
>
> exim -d+all -qf
>
> ( and grab stderr to a file; it'll be long.
> "exim -d+all -qf 2>&1 | tee log" )


Thanks. The relevant part of the resulting log is for a similar message
and the same network is:


    13:34:13  2071 --------> smarthost router <--------
    13:34:13  2071 local_part=xxxxxx domain=adam.com.au
    13:34:13  2071 checking domains
    13:34:13  2071 cached no match for +local_domains
    13:34:13  2071 cached lookup data = NULL
    13:34:13  2071 adam.com.au in "! +local_domains"? yes (end of list)
    13:34:13  2071  ┌considering: R: smarthost for $local_part@$domain
    13:34:13  2071  ├──expanding: R: smarthost for $local_part@$domain
    13:34:13  2071  └─────result: R: smarthost for xxxxxx@???
    13:34:13  2071 R: smarthost for xxxxxx@???
    13:34:13  2071 calling smarthost router
    13:34:13  2071 smarthost router called for xxxxxx@???
    13:34:13  2071   domain = adam.com.au
    13:34:13  2071 route_item = * smtp.gmail.com::587 byname
    13:34:13  2071 adam.com.au in "*"? yes (matched "*")
    13:34:13  2071 original list of hosts = 'smtp.gmail.com::587' options = 'byname'
    13:34:13  2071 expanded list of hosts = 'smtp.gmail.com::587' options = 'byname'
    13:34:13  2071 set transport remote_smtp_smarthost
    13:34:13  2071 finding IP address for smtp.gmail.com:587
    13:34:13  2071 host=smtp.gmail.com port=587
    13:34:13  2071 calling host_find_byname
    13:34:13  2071 Coerced resolver DNSSEC support on.
    13:34:24  2071 gethostbyname2(af=inet6) returned 1 (HOST_NOT_FOUND)
    13:34:35  2071 gethostbyname2(af=inet) returned 1 (HOST_NOT_FOUND)
    13:34:35  2071 no IP address found for host smtp.gmail.com
    13:34:35  2071 LOG: host_lookup_failed MAIN
    13:34:35  2071   no IP address found for host smtp.gmail.com
    13:34:35  2071 host_find_failed ignored every host
    13:34:35  2071 smarthost router: defer for xxxxxx@???
    13:34:35  2071   message: lookup failed for all hosts in smarthost router: host_find_failed=ignore host_all_ignored=defer
    13:34:35  2071 added retry item for R:adam.com.au: errno=-1 more_errno=0 flags=0
    13:34:35  2071 post-process xxxxxx@??? (1)
    13:34:35  2071 LOG: MAIN
    13:34:35  2071   == xxxxxx@??? R=smarthost defer (-1): lookup failed for all hosts in smarthost router: host_find_failed=ignore host_all_ignored=defer



So gethostbyname2 fails. But if I write a simple C application that
calls gethostbyname2 using the AF_INET flag (this is not an IPv6
network anyway) I get a valid and correct IP address. The host command
gives similar results (and also returns an IPv6 address).

I can keep on running exim -qf and the look up never seems to succeed
until I switch to a different network.

So, I still don't understand why everything else seems to be able to
resolve the IP address, but not Exim.


David

--
David Purton
e: dcpurton@???
m: 0413 626 862