Dan Kohn wrote:
Could someone suggest the RFC 2822 syntax that would be compliant with
RFC 1036 and established practice (i.e., shorter than 250 characters and
doesn't include backslash-escaped space or control characters)?
I believe that was <= 250, and '>' was also excluded from the msg-id
interior.
msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS] ; maximum
length 250 octets excluding CFWS
id-left = dot-atom-text / no-fold-quote / obs-id-left
id-right = dot-atom-text / no-fold-literal / obs-id-right
no-fold-quote = DQUOTE *(qtext / printable-quoted-pair) DQUOTE
no-fold-literal = "[" *(dtext / printable-quoted-pair) "]"
printable-quoted-pair = ("\" pqtext) / obs-qp
pqtext = %d33-61 / ; Printable characters excluding ">"
%d63-126 /
obs-text
dtext = DIGIT /
"A" / "B" / "C" / "D" / "E" / "F" / ; hexadecimal
digits, case-insensitive
"." / ; IPv4 separator
":" ; IPv6 separator
Notes:
1. I have left optional CFWS around the msg-id, though that appears
to be an issue with some news software. It is easily refined if
necessary ("ownership" of CFWS is a remaining ambiguity in 2822).
2. dot-atom-text syntax is also used in dot-atom, and isn't itself
readily amenable to specification of a length limit, even if one
could ignore the impact on other constructs
3. there is no attempt to impose a separate left-side length limit
4. '>' is ecluded from the msg-id interior per 1036 sect. 2.1.5.
To restore it pqtext becomes the single range %d33-126.
5. obs- syntax change is limited to the maximum length restriction.
6. dtext is limited to strictly what is necessary.