Do I hear an emerging consensus to clarify in the harmony with the pipelining
standard? I see three points to clarify:
1) Servers must accept the state-change into receiving BDAT command and
associated message data even with no valid RCPT TO recipients or
problems with the MAIL FROM command.
Correct.
2) Servers must send a 4XX or 5XX in response to a BDAT if it can't
accept for any reason, incluing having no valid recipients.
Correct.
3) Servers MAY choose to terminate the TCP connection rather than drink
(then expell) a big gulp from a pipelining client.
Correct.
Clients must interpret the returned status codes and do the right
thing (not send that message again, or delay).
This presupposes the client got a status code to interpret. It is possible
that the client will get an transmit error and never see the status. In this
case the client has to assume a temporary failure; assuming a permanent failure
in the event of a disconnect without a status would be bad.
Ned