usefor-usefor-02 November 2004
[< Prev]
[TOC] [ Next >]
3.1.3 Message-ID
The Message-ID header contains a single unique message identifier.
This document updates the <msg-id> construct from Section 3.6.4 of
[RFC2822] so as to ensure that Internet Message Format Message-IDs
are usable in widely deployed news software. The global uniqueness
requirement for <msg-id> in [RFC2822] is to be understood as applying
across all protocols using such message identifiers, and across both
Email and Netnews in particular. The ABNF should be used as below,
but the requirements and descriptive text from Section 3.6.4 of
[RFC2822] still apply.
message-id = "Message-ID:" SP msg-id CRLF
msg-id = [FWS] msg-id-core [FWS]
msg-id-core = "<" id-left "@" id-right ">"
; maximum length is 250 octets
id-left = dot-atom-text / no-fold-quote
id-right = dot-atom-text / no-fold-literal
no-fold-quote = DQUOTE
*( mqtext / "\\" / "\" DQUOTE )
mqspecial
*( mqtext / "\\" / "\" DQUOTE )
DQUOTE
mqtext = NO-WS-CTL / ; all of <text> except
%d33 / ; SP, HTAB, "\", ">"
%d35-61 / ; and DQUOTE
%d63-91 /
%d93-126
mqspecial = "(" / ")" / ; same as specials except
"<" / ; "\" and DQUOTE quoted
"[" / "]" / ; and ">" omitted
":" / ";" /
"@" / "\\" /
"," / "." /
"\" DQUOTE
no-fold-literal = "[" *( mdtext / "\[" / "\]" / "\\" ) "]"
mdtext = NO-WS-CTL / ; Non white space controls
%d33-61 / ; The rest of the US-ASCII
%d63-90 / ; characters not including
%d94-126 ; ">", "[", "]", or "\"
The msg-id-core MUST NOT be more than 250 octets in length.
NOTE: The length restriction ensures that systems which accept
message identifiers as a parameter when retrieving an article
(e.g. [NNTP]) can rely on a bounded length.
Observe that msg-id-core includes the < and >.
Observe also that in contrast to the corresponding header in
[RFC2822], the syntax does not allow comments within the Message-ID
header, it ensures that no string of characters is quoted unless
strictly necessary (it must contain at least one mqspecial) and no
single character is prefixed by a "\" in the form of a quoted-pair
unless strictly necessary, and moreover there is no possibility for
">" or WSP to occur inside a msg-id-core, whether quoted or not.
This is to simplify processing by relaying and serving agents and to
ensure interoperability with existing implementations. Thus, whereas
under [RFC2822] the following <msg-id-core> would be considered
semantically equivalent,
<abcd@example.com>
<"abcd"@example.com>
<"ab\cd"@example.com>
only the first of them is syntactically permitted by this standard,
and hence a simple comparison of octets will always suffice to
determine the identity of two <msg-id-core>.
Also note that this updated ABNF applies wherever <msg-id-core> are
used, including the References header discussed in Section 3.2.1 and
the Supersedes header discussed in Section 3.2.5.
[< Prev]
[TOC] [ Next >]
#Diff to first older
--- ../usefor-usefor-01/Message-ID.out September 2004
+++ ../usefor-usefor-02/Message-ID.out November 2004
@@ -1,12 +1,14 @@
-3.1.4 Message-ID
+3.1.3 Message-ID
The Message-ID header contains a single unique message identifier.
This document updates the <msg-id> construct from Section 3.6.4 of
[RFC2822] so as to ensure that Internet Message Format Message-IDs
- are usable in widely deployed news software. The ABNF should be used
- as below, but the requirements and descriptive text from Section
- 3.6.4 of [RFC2822] still apply.
-
+ are usable in widely deployed news software. The global uniqueness
+ requirement for <msg-id> in [RFC2822] is to be understood as applying
+ across all protocols using such message identifiers, and across both
+ Email and Netnews in particular. The ABNF should be used as below,
+ but the requirements and descriptive text from Section 3.6.4 of
+ [RFC2822] still apply.
message-id = "Message-ID:" SP msg-id CRLF
msg-id = [FWS] msg-id-core [FWS]
@@ -14,36 +16,66 @@
msg-id-core = "<" id-left "@" id-right ">"
; maximum length is 250 octets
- 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 / no-space-qp ) DQUOTE
-
- no-fold-literal = "[" *( htext / no-space-qp ) "]"
-
- no-space-qp = ( "\" ptext ) / obs-qp
+ id-left = dot-atom-text / no-fold-quote
- ptext = %d33-61 / ; Printable characters excluding ">"
- %d63-126 /
- obs-text
+ id-right = dot-atom-text / no-fold-literal
- htext = HEXDIG / ; hexadecimal digits, case-insensitive
- "." / ; IPv4 separator
- ":" ; IPv6 separator
+ no-fold-quote = DQUOTE
+ *( mqtext / "\\" / "\" DQUOTE )
+ mqspecial
+ *( mqtext / "\\" / "\" DQUOTE )
+ DQUOTE
+
+ mqtext = NO-WS-CTL / ; all of <text> except
+ %d33 / ; SP, HTAB, "\", ">"
+ %d35-61 / ; and DQUOTE
+ %d63-91 /
+ %d93-126
+
+ mqspecial = "(" / ")" / ; same as specials except
+ "<" / ; "\" and DQUOTE quoted
+ "[" / "]" / ; and ">" omitted
+ ":" / ";" /
+ "@" / "\\" /
+ "," / "." /
+ "\" DQUOTE
+
+ no-fold-literal = "[" *( mdtext / "\[" / "\]" / "\\" ) "]"
+
+ mdtext = NO-WS-CTL / ; Non white space controls
+ %d33-61 / ; The rest of the US-ASCII
+ %d63-90 / ; characters not including
+ %d94-126 ; ">", "[", "]", or "\"
The msg-id-core MUST NOT be more than 250 octets in length.
NOTE: The length restriction ensures that systems which accept
message identifiers as a parameter when retrieving an article
- (e.g. NNTP [RFC0977]) can rely on a bounded length. Observe that
- msg-id-core includes the < and >.
+ (e.g. [NNTP]) can rely on a bounded length.
- Observe that in contrast to the corresponding header in [RFC2822],
- the syntax does not allow comments within the Message-ID header; this
- is to simplify processing by relaying and serving agents and to
- ensure interoperability with existing implementations.
+ Observe that msg-id-core includes the < and >.
- Also note that this updated ABNF applies wherever <msg-id> is used,
- including the References header discussed in Section 3.2.1.
+ Observe also that in contrast to the corresponding header in
+ [RFC2822], the syntax does not allow comments within the Message-ID
+ header, it ensures that no string of characters is quoted unless
+ strictly necessary (it must contain at least one mqspecial) and no
+ single character is prefixed by a "\" in the form of a quoted-pair
+ unless strictly necessary, and moreover there is no possibility for
+ ">" or WSP to occur inside a msg-id-core, whether quoted or not.
+ This is to simplify processing by relaying and serving agents and to
+ ensure interoperability with existing implementations. Thus, whereas
+ under [RFC2822] the following <msg-id-core> would be considered
+ semantically equivalent,
+
+ <abcd@example.com>
+ <"abcd"@example.com>
+ <"ab\cd"@example.com>
+
+ only the first of them is syntactically permitted by this standard,
+ and hence a simple comparison of octets will always suffice to
+ determine the identity of two <msg-id-core>.
+
+ Also note that this updated ABNF applies wherever <msg-id-core> are
+ used, including the References header discussed in Section 3.2.1 and
+ the Supersedes header discussed in Section 3.2.5.