Great work John!
Just a few comments.
1) Removal of 1yz in 4.2.1
With the the removal of 1yz, it is probably a good idea to use a
different example for reply codes in 4.2.1:
For example:
123-First line
123-Second line
123-234 text beginning with numbers
123 The last line
2) Recording the new FTP text in 4.2.1
It is worth noting that the file transfer protocol (FTP [35]) uses a
very similar code architecture and that the SMTP codes are based on
the FTP model. However, SMTP uses a one-command, one-response model,
while FTP is asynchronous and the 1yz codes are not part of the SMTP
model.
IMO, I am not sure this is necessary John. Might be best to not confuse
future developers with this history note, especially since 1yz is not
longer part of the spec and even more since one can argue the that DATA
command is a one command, two response model. In a sequence of:
C: DATA
S: 354
C: [upload data] <--- this is technically not a command
S: 250
The client is [arguably] not sending a new command to 354, but rather
the mail block.
3) In 2.1, you added a MUST to this line:
protocol requires that a server MUST accept responsibility for either
delivering a message or properly reporting the failure to do so.
BRAVO, BRAVO!!
However, I am sending you an off-list comment about this.
Any who, I think with the MUST above, you probably should upper case
some "shoulds" in section 6.2 and I think if you want to appease the
mail process/AVS service market, I think it may be appropriate to remove
the clause regarding of "syntax" and "mail content":
I think it can be just:
Utility and predictability of the Internet mail system requires that
messages that can be delivered SHOULD be delivered. If
a message cannot be delivered, and cannot be rejected by the SMTP
server during the SMTP transaction, the message SHOULD be "bounced"
(returned with non-delivery notification messages) as described
above. .........
and in my opinion, the addition of the sentence would be helpful:
If applicable, the SMTP server SHOULD attempt to determine
delivery status during the SMTP transaction to help minimize
undesirable BOUNCE traffic.
--
Hector Santos, CTO
Santronics Software, Inc.
http://www.santronics.com