ietf-smtp
[Top] [All Lists]

Re: Pipelining the DATA Command

2008-08-09 20:58:23

At 10:26 pm -0400 9/8/2008, Robert A. Rosenberg wrote:
In discussions here there is a scenario given where a MAIL-FROM, one or more RCPT-TOs, and a DATA commands are sent as a single PIPELINE burst thus going into DATA more before the server has responded to the MAIL-FROM and RCPT-TO commands. This is IMO a BUG (or at least a Design Flaw) on the part of the MUA which should NEVER send that DATA under the assumption that the MAIL-FROM and RCPT-TOs will be accepted.

Indeed, if the sender wants to send the DATA command as part of the burst it should instead do so under the assumption that the DATA command SHOULD be refused if the MAIL FROM or all the RCPT TO commands are refused, and that if for some reason the DATA command is still accepted the sender can just send a single dot.

From section 3.1 of RFC 2920:
   Client SMTP implementations that employ pipelining MUST check ALL
   statuses associated with each command in a group. For example, if
   none of the RCPT TO recipient addresses were accepted the client must
   then check the response to the DATA command -- the client cannot
   assume that the DATA command will be rejected just because none of
   the RCPT TO commands worked.  If the DATA command was properly
   rejected the client SMTP can just issue RSET, but if the DATA command
   was accepted the client SMTP should send a single dot.

From section 3.2 of RFC 2920:
   A server SMTP implementation that offers the pipelining extension:

    (3)   SHOULD issue a positive response to the DATA command if and
          only if one or more valid RCPT TO addresses have been
          previously received.

Glenn.

<Prev in Thread] Current Thread [Next in Thread>