I noticed that the MIME specs are not particularly clear about which MIME
headers are parsed according to RFC 822's specials or MIME's tspecials.
Content-Type, Content-Disposition and any other header with MIME
parameters is obviously parsed using MIME's tspecials.
Content-ID is parsed using RFC 822's specials by virtue of the fact it is
supposed to have identical syntax to Message-ID. In particular, this
means that "/", "?" and "=" are legal unquoted on the left-hand-side of
the "@".
"ietf-token" and "x-token" rules have unspecified syntax. This means the
set of characters allowed in a Content-Transfer-Encoding mechanism name is
unspecified since without knowledge of whether specials or tspecials are
being used, the definition of a token is unclear.
A further conclusion is that a header can't contain both an addr-spec or
phrase syntax element and a MIME parameter syntax element without serious
parser ugliness.
Future header definitions should be very clear whether specials or
tspecials are used.
I note that 822bis is clear in this regard as it doesn't use implicit
free-insertion of linear whitespace between tokens.
I noticed this in the process of writing a strict RFC 822/MIME/DSN/MDN
validation utility (I expect to make it public in a week or two on this
list).
- Chris