On Tue, 16 Mar 2004, Frank Meyer wrote:
> I have the following hostlist in my configure file:
>
> hostlist relay_from_hosts = host1@??? : host2@??? : host3@???
Really? I presume you really mean host1.foo.bar1 etc...
> If the IP address of host2@??? cannot be resolved (e.g.
> due to DNS problems), no user at host3@???(!) can use
> my mail server as a relay.
>
> It appears the following message:
>
> no IP address found for host host2@??? (during SMTP
> connection from foo.bar (host3@???)
> H=foo.bar (host3@???) .... relay not permitted
>
> But any user on host1@??? can use my mail server as a
> smart host. It seems that exim-4.30 cancels the forward dns
> lookup loop to find the ip address of host3, if another
> host prior in the list cannot be resolved.
>
> This problem (bug?) does not appear with exim-4.11.
I'm afraid I do not believe your last statement. It has always been the
case that if Exim 4 cannot resolve something in a host list, it cannot
proceed to scan the list further. This is because the order of scanning
matters - think about the effects of negative items.
In TFM you will find this:
10.15 Mixing wildcarded host names and addresses in host lists
If you have name lookups or wildcarded host names and IP addresses in the same
host list, you should normally put the IP addresses first. For example, in an
ACL you could have:
accept hosts = 10.9.8.7 : *.friend.example
The reason for this lies in the left-to-right way that Exim processes lists.
It then goes on to talk about the reverse lookup case, but the same
thing applies if a forward lookup fails. I should (and will) make that
clearer in the documentation.
See also +include_unknown, which will, I think, apply to this case.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book: http://www.uit.co.uk/exim-book