Header field-names are defined as tokens. This is an extremely permissive syntax, including characters that will cause confusion and likely break some senders/recipients.
Most of the special characters allowed are not in the registry or seen "in the wild." Some research would be good to substantiate their use, but a starting point might be:
"-" / "_" / "." / "+" / DIGIT / ALPHA
There are a number of strategies we could take to the transition:
-
Like OWS / BWS, mark some characters as "do not generate" but "should consume"
-
Disallow registration of header fields with those characters, and discourage their use in unregistered headers
-
If we have more confidence that they're not in use, just ignore headers containing those characters.
Header field-names are defined as tokens. This is an extremely permissive syntax, including characters that will cause confusion and likely break some senders/recipients.
Most of the special characters allowed are not in the registry or seen "in the wild." Some research would be good to substantiate their use, but a starting point might be:
There are a number of strategies we could take to the transition:
Like
OWS/BWS, mark some characters as "do not generate" but "should consume"Disallow registration of header fields with those characters, and discourage their use in unregistered headers
If we have more confidence that they're not in use, just ignore headers containing those characters.