Re: BDAT, RFC 3030 protocol clarification?
I suggest that if a BDAT-capable server receives BDAT, it SHOULD either
receive and discard the data, or else send its response and drop the
connection. Shouldn't need saying, but I guess it does not hurt.
I concur, but for a different reason: I don't like the implication that
a successful MAIL FROM and at least one successful RCPT TO means BDAT
will also be successful. It is entirely reasonable for a transaction to
success all the way up to the BDAT but fail at that point. In such a case
the implementation must be prepared to deal with the data attached to the
BDAT whether it likes it or not.
I agree that there are circumstances in which this is the right thing
for the server to do.
The rule should therefore be that a server which supports BDAT MUST honor
state change implied by the command and deal with the attached data in some
way. Small amounts of attached data SHOULD be dealt with by accepting it and
discarding it. Large amounts MAY be dealt with by returning an error and
shutting down the connection.
I don't have a problem with that, but we should be clear that "accepting"
BDAT data that is going to be discarded means returning a 4xx or 5xx response
(which, hopefully, will eventually be seen by the client).