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