ietf-smtp
[Top] [All Lists]

Re: DATA 554 responses - To Retry or Not.

2008-08-10 11:07:49

ned+ietf-smtp(_at_)mrochek(_dot_)com wrote:

>> > D, continue to try USER2, as that transaction was delayed.
>
> That what our MTA does as well - DSN for USER1 and USER3, continue to retry
> USER2.

But 2821 says SHOULD NOT retry for DATA 5yz.

And that's correct for active recipients. This doesn't apply to recipients that
have already been eliminated. If it did by your logic a sequence of a 5yz
response to RCPT TO followed by a 2yz response to DATA would result in a
successful delivery, which is clearly incorrect.

Why not just stop there and DSN all of them?

Because it's demonstrably the wrong thing to do in many cases.

> Nope, and several examples have already been given showing why it isn't
> correct.

Which one?

The obvious one is the following:

 C: MAIL FROM:<a>
 S: 250 Ok
 C: RCPT TO:<b>
 S: 452 Over quota
 C: DATA
 S: 354 Haven't checked my recipient list so go ahead
 C: .
 S: 554 No valid reicpients

By your logic recipient B should receive a DSN. That's clearly bogus.

And before you get going about how the client should not have  proceeded to the
DATA phase, this has already been discussed in earlier messages.

I believe I provided examples which shows this different
interpretation is wrong.

I have yet to see a single case that would justify the behavior you're asking
for, and many that clearly show it to be incorrect.

>> It matches the specifications:
>
>>    [2821/2821bis - 4.2.5]
>
>>    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 the message.
>
> But this doesn't apply to USER2 or USER3 since neither were accepted as
> message recipients. It only applies to one recipient that was accepted:
 > USER1, and AFAIK nobody has gone with A on your list.

It applies to all users in the sense of what it says here:

>>    As with temporary error status codes, the SMTP client retains
>>    responsibility for the message, but SHOULD not again attempt
>>    delivery to the same server without user review of the message
>>    and response and appropriate intervention.

which clearly says do not retry and that includes USER2.

I find no reference whatsoever to recipients rejected at the RCPT TO stage in
any of this text.

Why isn't this followed?  It says SHOULD NOT retry.

For about the tenth time, the state model you're so fond of means this  only
applies to active recipients. The notion that it should apply to recipients
thaat have already been dealt with doesn't stand up to scruntiny.
> I disagree that this is a change.

Sure it is.  It clearly says SHOULD NOT attempt to deliver.

And again, this is true but irrelevant because the SHOULD NOT is inapplicable
to this case.

                                Ned

P.S. It's now quite clear I'm not getting through with any of this and I'm only
able to repeat myself, so absent some new information this will be my final
message on this topic.