At 20:49 30/08/2006, Hector Santos wrote:
In our system, we only go to the next record when there is a connection
failure. Otherwise we follow the wishes of 45x or 550. 45x to try again
LATER, not within the same transaction attempt where you have a list of MX
to try.
FWIW, that's what we do with our software as well. A connection
failure means try the next MX server. A connection success followed
by an SMTP error code (transient or permanent) means don't try any
more MX servers, but requeue for (several minutes) later or fail
immediately depending on error code and send attempt history.
Having said that, I think that the second server should have just
failed with the 4xx error as well. Failing with a 5xx error seems a
bit harsh. There doesn't seem to be any requirement for the time
between retries in RFC 2821 (just a recommendation of at least 30
minutes) so a retry after 1 minute (or even, 10 seconds) is allowed
(but discouraged) by the standard AFAICS.