https://bugs.exim.org/show_bug.cgi?id=330
--- Comment #3 from Jeremy Harris <jgh146...@wizmail.org> --- Reading the standards, there are 39 production rules involved in the syntax specification for the Message-ID header line. I do not call that a small amount of work. Maybe I'm missing some shortcut. ===== 1 message-id = "Message-ID:" msg-id CRLF 2 3 2 msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS] 5 6 7 3 CRLF = %x0D %x0A 5 CFWS = (1*([FWS] comment) [FWS]) / FWS 8 9 6 id-left = dot-atom-text / obs-id-left 19 20 7 id-right = dot-atom-text / no-fold-literal / obs-id-right (19) 21 22 8 FWS = ([*WSP CRLF] 1*WSP) / obs-FWS 10 11 ; Folding white space 9 comment = "(" *([FWS] ccontent) [FWS] ")" 12 10 WSP = SP / HTAB ; white space 11 obs-FWS = 1*WSP *(CRLF 1*WSP) 12 ccontent = ctext / quoted-pair / comment 13 14 13 ctext = %d33-39 / ; Printable US-ASCII %d42-91 / ; characters not including %d93-126 / ; "(", ")", or "\" obs-ctext 15 14 quoted-pair = ("\" (VCHAR / WSP)) / obs-qp 16 (10) 17 15 obs-ctext = obs-NO-WS-CTL 18 16 VCHAR = %x21-7E ; visible (printing) characters 17 obs-qp = "\" (%d0 / obs-NO-WS-CTL / LF / CR) (18) 18 obs-NO-WS-CTL = %d1-8 / ; US-ASCII control %d11 / ; characters that do not %d12 / ; include the carriage %d14-31 / ; return, line feed, and %d127 ; white space characters 19 dot-atom-text = 1*atext *("." 1*atext) 23 20 obs-id-left = local-part 24 21 no-fold-literal = "[" *dtext "]" 25 22 obs-id-right = domain 26 23 atext = ALPHA / DIGIT / ; Printable US-ASCII 27 28 "!" / "#" / ; characters not including "$" / "%" / ; specials. Used for atoms. "&" / "'" / "*" / "+" / "-" / "/" / "=" / "?" / "^" / "_" / "`" / "{" / "|" / "}" / "~" 24 local-part = dot-atom / quoted-string / obs-local-part 29 30 31 25 dtext = %d33-90 / ; Printable US-ASCII %d94-126 / ; characters not including obs-dtext ; "[", "]", or "\" 32 26 domain = dot-atom / domain-literal / obs-domain (29) 33 34 27 ALPHA = %x41-5A / %x61-7A ; A-Z / a-z 28 DIGIT = %x30-39 ; 0-9 29 dot-atom = [CFWS] dot-atom-text [CFWS] (5) (19) 30 quoted-string = [CFWS] DQUOTE *([FWS] qcontent) [FWS] DQUOTE 35 (8) 36 (8)(35) [CFWS] 31 obs-local-part = word *("." word) 27 32 obs-dtext = obs-NO-WS-CTL / quoted-pair (18) (14) 33 domain-literal = [CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS] (5) (8) (25) 34 obs-domain = atom *("." atom) 37 35 DQUOTE = %x22 ; " (Double Quote) 36 qcontent = qtext / quoted-pair 38 (14) 37 atom = [CFWS] 1*atext [CFWS] 38 qtext = %d33 / ; Printable US-ASCII %d35-91 / ; characters not including %d93-126 / ; "\" or the quote character obs-qtext 39 39 obs-qtext = obs-NO-WS-CTL (18) -- You are receiving this mail because: You are the QA Contact for the bug. -- ## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim details at http://www.exim.org/ ##