ietf-smtp
[Top] [All Lists]

Re: RFC2821bis-02 Issue 27: Received clauses

2007-04-23 19:50:59

On 4/23/07 at 9:15 PM -0400, Bruce Lilly wrote:

OK -- I suggest using an ABNF rule name for the construct of "clause" (rather than -- or in addition to -- 2822 "name-val-pair") to make the association between RFC text and ABNF clearer.
[...]
Also, please be very careful: a literal
  clause = *(word / domain / addr-spec / angle-addr)
would allow currently illegal atrocities

So, as with other stuff, 2822upd is going to have a more general syntax that it will be up to 2821bis to limit. In this case, I'm simply going to have:

    received = "Received:" *received-tokens ";" date-time CRLF

    received-tokens = word / angle-addr / addr-spec / domain

and leave it to 2821bis to use syntax (including defining proper "clauses") that won't allow such "atrocities".

Please don't forget the existing (2821/2822) discrepancies:
1. 2821 permits "String" which in turn includes "Quoted-string", while
   2822 does not allow "quoted-string" in a value-item [*]

I've got "word" which is "atom / quoted-string".

2. 2821 specifies the "for" clause name as having a value of
   1 * ( Path / Mailbox ), whereas 2822 permits only a single
   addr-spec or one or more angle-addrs

Allowed above by any number of "angle-addr" or "addr-spec". 2821bis can limit as desired.

Although it may be tempting to specify a generic field in 2822bis and punt the specifics to 2821bis, [...] it may be (depending on how loose the 2822bis specification is) impossible in general to parse such fields. 2822 as written hasn't quite fallen over that cliff, but it's teetering on the edge:
  Received:;1 Jan 2007 02:34:56 -0700

I would claim that 2822 is already well over that cliff and the suggested change above really just finishes the task. I'd prefer to keep the lack of normative reference from 2822 to 2821, and making it generic does that.

pr
--
Pete Resnick <http://www.qualcomm.com/~presnick/>
QUALCOMM Incorporated - Direct phone: (858)651-4478, Fax: (858)651-1102