Glenn Anderson wrote:
At 11:10 am -0400 10/8/2008, Hector Santos 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
But 2821 says SHOULD NOT retry for DATA 5yz.
Section 4.2.5 says "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." The key
word there being "message".
You seem to be confusing the "mail data" (see section 2.3.9), which is
just the stuff after the DATA command, with a "message", which is
envelope information plus mail data. To retry the same "mail data" plus
an envelope specifying user2 as the recipient is not the same "message"
as was previously refused, which was the "mail data" plus an envelope
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.
You can only fix that in this erroneous retry method by including the
more valid USER1 in your retries.
The other way to fix this?
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.
Hector Santos, CTO