On Wed, 5 Apr 2006, Bill Moseley wrote:
> Let me try again and be less verbose:
>
> Is there a way to have hosts = with a lookup file ignore
> failed lookups until the entire list is processed?
>
> From my tests it seems like if a domain fails to lookup then the test
> fails even if a later name in the host list does lookup and then
> matches the ip of the connecting machine.
Correct. The problem is that lists are not simply unions of sets. The
existence of the negation operator makes it imperative that Exim
processes them from left to right. If it cannot find the answer to one
item, it cannot proceed to the next. Consider:
hosts = item1 : ! item2 : item3
Suppose the lookup for item2 fails. If it goes on to item 3 and it
matches, it will give a "yes" answer to the list. But maybe the host
would have matched item 2, which would give a "no" answer.
> Second question is off topic, but from your reading of the RFCs is
> a valid envelope sender is required?
>
> The mail in question was:
>
> mail from: <invalid local>@<valid domain>
Yes. I think so. RFC 2821 says:
The first step in the procedure is the MAIL command.
MAIL FROM:<reverse-path> [SP <mail-parameters> ] <CRLF>
This command tells the SMTP-receiver that a new mail transaction is
starting and to reset all its state tables and buffers, including any
recipients or mail data. The <reverse-path> portion of the first or
only argument contains the source mailbox (between "<" and ">"
brackets), which can be used to report errors (see section 4.2 for a
discussion of error reporting).
Something "which can be used to report errors" is surely presumed to be
valid.
--
Philip Hazel University of Cambridge Computing Service
Get the Exim 4 book: http://www.uit.co.uk/exim-book