On Thu, 11 Nov 1999, Phillips, Alan wrote:
> Looking in Marshall Rose's SMTP book, the specified action for a 452 in
> response to a RCPT TO is "retry later"; only if you get a 452 in response to a
> MAIL FROM is it "try next server".
>
> Am I being dense in thinking Exim should back off after the first failure here?
> I don't have the raw RFCs to check against....
The raw RFCs are unspecific on this. The new version of RFC 821 (still
coming ... slowly ...) says: "It is difficult to assign a meaning to
'transient' when two different sites (receiver- and sender- SMTP agents)
must agree on the interpretation." That pretty well sums it up. In its
comments about multiple addresses for MX records it says:
When the lookup succeeds, the mapping can result in a list of alternative
delivery addresses rather than a single address, because of multiple MX
records, multihoming, or both. To provide reliable mail transmission, the
SMTP client MUST be able to try (and retry) each of the relevant addresses
in this list in order, until a delivery attempt succeeds. However, there
MAY also be a configurable limit on the number of alternate addresses that
can be tried. In any case, a host SHOULD try at least two addresses.
That can be read as saying the client should try all the addresses.
You have produced a case where trying the next server is sub-optimal. I
can produce a case where it isn't:
. There are two or more "equal" servers for a domain - that is, one is not a
"backup" for the other, but each can handle mail for the domain all by
itself without reference to any other(s). (The gateway servers to
cam.ac.uk are like this.)
. One of these servers gets its discs full, or some other similar
problem, and so starts issuing 452 responses.
In this case you *do* want to try the other server.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.