On Wed, 6 Aug 2008, Tony Finch wrote: > On Tue, 5 Aug 2008, Ned Freed wrote: > > > > It depends on whether or not any recipients were accepted. If any were > > accepted the message data needs to be sent and if accepted only the > > ones that gave a 4yz error should be retried. If all recipients got a > > 4yz you should abort and retry the whole thing later. > > Where is the text that explains this to an implementer without enough > common sense or experience with existing SMTPs?
It occurs to me that the bad implementation that triggered this thread must not have implemented pipelining, or implemented it in a strange manner. A properly pipelined transaction starts: > MAIL FROM:<s> > RCPT TO:<a> > RCPT TO:<b> > DATA < 250 ok < 250 ok < 450 try later < 354 go ahead So the pipelined client commits to sending the message data if any of the recipients are accepted, and cannot abort a transaction except by dropping the connection. The bad client aborts transactions with mixed RCPT replies so (assuming correct command/reply handling) it must be non-pipelined or partially pipelined in order to issue a RSET or QUIT command instead of DATA after seeing mixed replies to RCPT. Tony. -- f.anthony.n.finch <[EMAIL PROTECTED]> http://dotat.at/ SOLE LUNDY FASTNET: WEST OR SOUTHWEST 5 TO 7, PERHAPS GALE 8 LATER IN SOLE AND FASTNET. ROUGH OR VERY ROUGH. RAIN, FOG PATCHES AT FIRST. MODERATE OR POOR, OCCASIONALLY VERY POOR AT FIRST.
