ietf-smtp
[Top] [All Lists]

Re: 2821bis/ter and procedures

2008-08-08 20:56:39

SM wrote:

In other words, the DATA reply code controls and drives the client on the payload acceptability or rejection as a whole for all recipients, temporarily or permanently. The reply codes helps drive the retry logic.

You are mixing RCPT TO and DATA reply codes.

On the contrary, I'm not. Though that is what I believe this discussion as turned into. They are two separate things.

Maybe I misread the statement from you. A DATA response of 55x does not means the RCPT 45x <c> reply can be interpreted as a retry for this transaction.

I would love to know if an existing client that takes the DATA response and applies it accordingly and differently to each RCPT TO response - I can't see how that is correctly possible but also I can't see how this is expected to work right without issues.

There are some content filters that do that. It may not be correct but it addresses a particular need.

Well, maybe the server need, it certainly doesn't help the client.

AFAIK, there is no logic in SMTP that says,

       DATA 55x or 45x

is an acceptance" for any of the RCPT TO possible replies, and/or a partial acceptance for 250 RCPT and retries for 450 RCPT.

IOW, if a DATA 55x, 45x is issued, there is no expectation of delivery for anyone. But you can retry <c> if the DATA was 45x - thats a client retry decision. The server can only hope it doesn't try to repeat <b> (a DUPE) or bother with permanently rejected <d>.

I believe it was Klensin, a few years back, discussing the multiline responses where he was winging it with finding a purpose for it:

Something like:

  C: DATA
  S: 354 continue
     .... read data, analyze ...
  S: 250-OK FOR RCPT C
  S: 450-OK FOR RCPT B
  S: 550-OK FOR RCPT D
  S: 250 Messages accepted for 1 of 3 recipients.

If I recall, it won't work mainly because it was found that many clients only look for the last code or just the first code and we touched base with this in 2821bis by making sure the multi-line response line all have the same code. This is new semantics in 2821bis:

   "In a multiline reply the reply code on each of the lines MUST be
   the same. ......"

I personally felt that was a mistake but accepted it once research was done to show quite a few client software out there that depend on the first or the last code and not capable of just reading the last code as 821 had it written or try to imply.

All I am saying, the DATA response applies to the entire RCPT list.

   55x ---> payload not acceptable for anyone

   45x ---> payload not acceptable at this moment, may try again
            for 250 or 45x RCPT lines.

   250 ---> payload acceptable for 250 RCPT lines only, may
            try again later for 45x RCPT lines only.

The original problem statement dealt with the last DATA 250 response where some RCPT lines included 450.

The question was related to how to handle this or similar mix of RCPT reply codes - but for a DATA 250 accepted payload.

I don't think there is any ambiguity, no straw man with anything else but this one original Tony Finch question/note about the lack or unclear semantics for this.

If I misread, my apology.

--
Sincerely

Hector Santos, CTO
http://www.santronics.com
http://santronics.blogspot.com