ietf-smtp
[Top] [All Lists]

Re: DATA 554 responses - To Retry or Not.

2008-08-11 02:25:17

Hector Santos wrote:

Nah, I am not confusing anything.

I proved very clearly that the erroneous DATA 5yz RETRY for RCPT 450 only interpretation causes mail delivery problems.

The more valid USER1 than USER2 will not get mail with this retry strategy. While USER2 might get the mail by retrying and server status changes to 250, the valid USER1 lost out.
Eh????

USER1 has already rejected the message, and given a 5xx error, meaning that USER1 never wants to see that message again.

USER2 has a chance of getting the message, as they did not reject the message yet.

With your system, neither USER1 nor USER2 would get the message, so I'm struggling to see how you think your way is right (apart from a dubious interpretation of RFC2821bis) and less likely to lead to 'lost messages' and everyone else's way is wrong. Everyone else's way is more likely to get the message delivered. A DSN will still be generated for the attempt to deliver to USER1, as USER1 has already rejected the message.


Well follow the specs is an idea. Wait for a DATA 250, then you know you USER1 got the mail and you can still retry USER2 later if you wish, all within the proper state machine guidelines.

Yes, if USER1 wanted the message, then they'd have given a 250 response, and you'd know they'd get the mail, and you could retry USER2. Agreed.

BUT, USER1 HAS REJECTED THE MESSAGE (shouting intended). Why should USER1 want you to retry the message, when it has already been summarily rejected? Yes, we know USER1 exists and can currently have mail delivered to them, but they DON'T WANT the message!

USER2 might exist, but might not be able to accept the message at the moment - they may be able and willing to accept it later. The receiving MTA is not even trying to deliver this instance of the message to USER2 , so the 5xx response can't possibly apply to USER2 and not USER1, that just doesn't make sense - hence logic states that the 5xx response MUST apply to USER1, therefore USER1 has rejected the message. The same can't be said of USER2.

I agree with Glenn, that you are confusing 'message' with 'message content'. After the 4xx response to a RCPT TO, that recipient is no longer part of the 'current message', so further responses do not apply to that recipient.

Maybe if there was any clarification needed with RFC 2821bis, it would be that clarification should be added 4.2.5 to say that the behaviour after the DATA & crlf . crlf should only apply to the 'currently active' recipients of the message, or in 4.1.1.3 to say that any rejected RCPT TO commands should not be stored in the "forward path buffer". I can see how this could be misinterpreted from the wording in 4.1.1.3 which makes no reference to behaviour following a failed RCPT TO command. The behaviour doesn't seem to be defined in 821, 2821 or 2821bis, but it seems that you have deduced one way of things working which is different from most other people.

--
Paul Smith

VPOP3 - POP3/SMTP/IMAP4/Webmail Email server for Windows