ietf-smtp
[Top] [All Lists]

Re: Improved straw man for retry scenarios

2008-08-09 19:05:24

John Levine wrote:

Which, if any, of a, d, and r get retried?  Why or why not?  What if
the 554 were a 421 or 451?

DATA 554 trumps them all. No Retries for this transaction. If this is not the case, then indeed, it goes on to explain why we have serious issues for clients mainly but also for servers who has to bear the burden of clients not following a long time solid state machine and fundamental principle.

In your answer, please consider RFC 2821 section 4.2.5, particularly
the suggestion to requeue the message in the antepenultimate paragraph
of that section.

You are referring to:

   4.2.5 Reply Codes After DATA and the Subsequent <CRLF>.<CRLF>

   ...
   When an SMTP server returns a permanent error status (5yz) code
   after the DATA command is completed with <CRLF>.<CRLF>, it MUST
   NOT make any subsequent attempt to deliver that message.  The
   SMTP client retains responsibility for delivery of that message
   and may either return it to the user or requeue it for a
   subsequent attempt (see section 4.5.4.1).

Ok, it all makes sense now. I will say that the last sentence is conflictive with the first sensitive. It can't say "MUST NOT subsequent attempt" yet give the client an option to do so in the last sentence. Thats a specification conflict and IMV, it SHOULD be fixed if people seriously believe this is problem. I don't think its a problem but I hope systems are behaving this way - I don't believe they are and probably isolated to systems who accept everything and discard and bounce mail with highly subjective trust concepts. So even if its a DATA 554, the data was captured and read and it really doesn't matter if its acknowledge or not.

Thats that to say clients will do what they want - like decide to requeue. But that one the definitions of insanity:

     Believing results will be different when you do the same thing
     over and over again.

The main point is that in all the documents, with the exception of the above, I don't believe there is a technical conflict. Maybe this is the only sentence that introduces that conflict.

There is a strong tie-in with the social engineering and legal aspect of computer-based messaging in the form of acceptance and rejection.

Starting with 821, the principle was followed and it was very clear there is only one form for signaling acceptance, a positive OK response code:

   SMTP 821 Section 4.1.1 - COMMAND SEMANTICS

   ...

   Special mention is needed of the response and further action
   required when the processing following the end of mail data
   indication is partially successful.  This could arise if
   after accepting several recipients and the mail data, the
   receiver-SMTP finds that the mail data can be successfully
   delivered to some of the recipients, but it cannot be to
   others (for example, due to mailbox space allocation
   problems).  In such a situation, the response to the DATA
   command must be an OK reply.  But, the receiver-SMTP must
   compose and send an "undeliverable mail" notification
   message to the originator of the message.  Either a single
   notification which lists all of the recipients that failed
   to get the message, or separate notification messages must
   be sent for each failed recipient (see Example 7).

This does not say that a DATA 554 means the RCPT 250 replies will get the messages and that you can retry the others non-250 RCPT replies.

It does not say that.

IMTO, clients who continue retrying with a DATA 55z response regardless of z, regardless of the RCPT list, is seriously broken software.

--
Sincerely

Hector Santos, CTO
http://www.santronics.com
http://santronics.blogspot.com