[ On Monday, January 26, 2004 at 14:35:35 (-0500), Ian Garrison wrote: ]
> Subject: [Exim] exim handling of 5xx fatal errors
>
> Anyway, I am having a discussion with one anti-spam appliance vendor
> and pointed out the scenario above, their reply was "exim does not comply
> to the rfc's in this regard". They muttered something about rfc 822 and
> 2822, both of which don't spell out the answer I'm looking for. Can
> anybody comment on rfc-correctness of 'stop sending all mail destined to
> one mail server that returned a critical error for the duration of one
> queue run'?
I won't comment on Exim, but I will say what _should_ happen.
First remember that a given message may be directed at multiple
recipients at the same server and that there may also be multiple
messages in the queue for the same destination server.
Critical errors (5xx SMTP response codes) should always result in
immediate bounces.
- If the error occurs at the HELO command then all recipients of the
current message to the current server should be immediately bounced and
the same destination should not be retried for at least 30 minutes:
The sender MUST delay retrying a particular destination after one
attempt has failed. In general, the retry interval SHOULD be at
least 30 minutes; however, more sophisticated and variable strategies
will be beneficial when the SMTP client can determine the reason for
non-delivery.
(a failed HELO indicates the server just doesn't like the client and it
would be rude for the client to come back knocking on the server's door
right away -- the server doesn't care what sender or recipient addresses
the client might try using, it just doesn't like the client at all :-)
- If the error occurs at MAIL FROM: or end-of-DATA (".") then the
"current" message should be bounced for all recipients deliverable at
the server giving the response. In this case there's nothing wrong with
the destination server, nor with the client connecting to that server,
and so further attempts to the same destination server are permitted to
occur immediately.
- If the error occurs at the RCPT TO: then a bounce should be generated
indicating only that recipient has been rejected (though it's fine to
combine all rejected recipients into one bounce message). Again in this
case there's nothing wrong with the destination server or the client's
connection and further attempts to the same server are permitted to
occur immediately
(I do recall there were some serious problems with how Exim-3.x releases
handled 5xx errors in response to their HELO command, but I forget all
the details. You should probably think hard about upgrading to a
current Exim-4.x release sooner than later anyway. :-)
--
Greg A. Woods
+1 416 218-0098 VE3TCP RoboHack <woods@???>
Planix, Inc. <woods@???> Secrets of the Weird <woods@???>