I believe the right solution to this, consistent with the intent of how email header fields work, is to add a sentence (via errata) to RFC 5322 section 2.2 or section 3.6 -- or both -- somewhat like this:
OLD Header fields are lines beginning with a field name, followed by a colon (":"), followed by a field body, and terminated by CRLF. A field name MUST be composed of printable US-ASCII characters (i.e., characters that have values between 33 and 126, inclusive), except colon. NEW Header fields are lines beginning with a field name, followed by a colon (":"), followed by a field body, and terminated by CRLF. A field name MUST be composed of printable US-ASCII characters (i.e., characters that have values between 33 and 126, inclusive), except colon. In all cases, field names are interpreted as case-insensitive strings, so that, for example, "Subject", "SUBJECT", and "SuBjEcT" are considered to be the same field name. END Barry On Thu, Feb 8, 2018 at 1:23 PM, Dave Crocker <dcroc...@bbiw.net> wrote: > On 2/8/2018 10:05 AM, Pete Resnick wrote: >> >> >> RFC 7405 is also useful along these lines. > > > If those modifications are used, sure. If not, not so much. > > >> So, no error in 5322. As for the erratum below, not having ABNF for the >> header field does seem like a miss, though I'm not sure it should be marked >> as more than "Hold for document update". > > > Consider: > > 1. RFC 5322 specifies ABNF for field names that is in terms of 'allowed' > characters, but has no text constraining the method of defining the specific > characters for specific header-field names. > > 2. Section 1.2.2 notes that "..." is case insensitive, but that the %... is > inflexible (ie, sensitive.) > > 3. Nothing in the definition of optional-field requires using the "..." > construct to define the header field name. It merely defines what range of > characteris allowed in a field-name. > > fields = *(trace > ... > optional-field) > > optional-field = field-name ":" unstructured CRLF > > field-name = 1*ftext > > ftext = %d33-57 / ; Printable US-ASCII > %d59-126 ; characters not including > ; ":". > > 4. If a spec defines a field-name using the %... construct, it has > effectively required case sensitivity in processing the field-name. > > 5. That was most certainly /not/ what was 'intended' for field-name parsing, > going at least back to RFC 733. Violation of 'intent' is the criterion for > an RFC erratum. > > d/ > > > -- > Dave Crocker > Brandenburg InternetWorking > bbiw.net _______________________________________________ NOTE WELL: This list operates according to http://mipassoc.org/dkim/ietf-list-rules.html