usefor-usefor-04 May 2005

[< 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.  A revised syntax for <msg-id> is
   given below, but the requirements and descriptive text from Section
   3.6.4 of [RFC2822] still apply.
   message-id      =  "Message-ID:" SP [FWS] msg-id [FWS] CRLF

   msg-id          =  "<" 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 /
                 *mqtext "." /
                 *mqtext mqspecial *mqtext )
               DQUOTE

   mqtext          =  atext / "." / mqspecial

   mqspecial       =  "(" / ")" /      ; same as specials except
            "<" /            ; "\" and DQUOTE quoted
            "[" / "]" /      ; "." doubled and ">" omitted
            ":" / ";" /
            "@" / "," /
            ".." / "\\" / "\" DQUOTE

   no-fold-literal =  "[" *( mdtext / "\[" / "\]" / "\\" ) "]"

   mdtext          =  %d33-61 /        ; The rest of the US-ASCII
            %d63-90 /        ; characters not including
            %d94-126         ; ">", "[", "]", or "\"

   The msg-id 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 includes the < and >.

   Observe also that in contrast to the corresponding header in
   [RFC2822]:

   o  the syntax does not allow comments within the Message-ID header,

   o  it ensures that no string of characters is quoted if it was
      already a <dot-atom-text> (it MUST start or end with a ".", or
      contain at least one <mqspecial>),
   o  it ensures that no single character is prefixed by a "\" in the
      form of a <quoted-pair> unless strictly necessary,

   o  it excludes all control characters,

   o  there is no possibility for ">" or WSP to occur inside a <msg-id>,
      whether quoted or not, and

   o  even though commonly derived from <domain>s, <id-rights>s are
      case-sensitive (and thus, once created, are not to be altered
      during subsequent transmission or copying)

   This is to simplify processing by relaying and serving agents and to
   ensure interoperability with existing implementations and compliance
   with [NNTP].  Thus, whereas under [RFC2822] the following <msg-id>s
   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>s.

   Also note that this updated ABNF applies wherever <msg-id> is used,
   including the References header discussed in Section 3.2.2 and the
   Supersedes header discussed in Section 3.2.6.

      NOTE: It is RECOMMENDED in [RFC2822] that, for ensuring global
      uniqueness, the <id-right> be some domain identifier within whose
      scope the uniqueness of the <id-left> can be guaranteed.  When
      following this recommendation, any <dot-atom-text> or <no-fold-
      literal> used for the <id-right> are to be interpreted as
      <domain>s as described in Section 3.4.1 of [RFC2822].
[< Prev] [TOC] [ Next >]
#Diff to first older
NewerOlder
usefor-usefor April 2005
usefor-usefor November 2004
usefor-usefor September 2004
News Article Format and Transmission May 2004
News Article Format and Transmission November 2003
News Article Format June 2003
News Article Format April 2003
News Article Format February 2003
News Article Format August 2002
News Article Format May 2002
News Article Format November 2001
News Article Format July 2001
News Article Format April 2001
News Article Format February 2000
Son of 1036 June 1994
RFC 1036 December 1987

--- ../usefor-usefor-03/Message-ID.out          April 2005
+++ ../usefor-usefor-04/Message-ID.out          May 2005
@@ -9,11 +9,9 @@
    Email and Netnews in particular.  A revised syntax for <msg-id> is
    given below, but the requirements and descriptive text from Section
    3.6.4 of [RFC2822] still apply.
-   message-id      =  "Message-ID:" SP msg-id CRLF
+   message-id      =  "Message-ID:" SP [FWS] msg-id [FWS] CRLF
 
-   msg-id          =  [FWS] msg-id-core [FWS]
-
-   msg-id-core     =  "<" id-left "@" id-right ">"
+   msg-id          =  "<" id-left "@" id-right ">"
             ; maximum length is 250 octets
 
    id-left         =  dot-atom-text / no-fold-quote
@@ -21,52 +19,58 @@
    id-right        =  dot-atom-text / no-fold-literal
 
    no-fold-quote   =  DQUOTE
-               *( mqtext / mquoted-pair )
-               mqspecial
-               *( mqtext / mquoted-pair )
+               ( "." mqtext /
+                 *mqtext "." /
+                 *mqtext mqspecial *mqtext )
                DQUOTE
 
-   mqtext          =  %d33 /           ; all of <text> except
-            %d35-61 /        ; controls, SP, HTAB, "\", ">"
-            %d63-91 /        ; and DQUOTE
-            %d93-126
-
-   mquoted-pair    =  "\\" / "\" DQUOTE
+   mqtext          =  atext / "." / mqspecial
 
    mqspecial       =  "(" / ")" /      ; same as specials except
             "<" /            ; "\" and DQUOTE quoted
-            "[" / "]" /      ; and ">" omitted
+            "[" / "]" /      ; "." doubled and ">" omitted
             ":" / ";" /
             "@" / "," /
-            "." / mquoted-pair
+            ".." / "\\" / "\" DQUOTE
 
    no-fold-literal =  "[" *( mdtext / "\[" / "\]" / "\\" ) "]"
 
-   [[Adjacent dots should not be allowed]]
-
    mdtext          =  %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.
+   The msg-id 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 that msg-id 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.
+   [RFC2822]:
+
+   o  the syntax does not allow comments within the Message-ID header,
+
+   o  it ensures that no string of characters is quoted if it was
+      already a <dot-atom-text> (it MUST start or end with a ".", or
+      contain at least one <mqspecial>),
+   o  it ensures that no single character is prefixed by a "\" in the
+      form of a <quoted-pair> unless strictly necessary,
+
+   o  it excludes all control characters,
+
+   o  there is no possibility for ">" or WSP to occur inside a <msg-id>,
+      whether quoted or not, and
+
+   o  even though commonly derived from <domain>s, <id-rights>s are
+      case-sensitive (and thus, once created, are not to be altered
+      during subsequent transmission or copying)
+
    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>s would be considered
-   semantically equivalent,
+   ensure interoperability with existing implementations and compliance
+   with [NNTP].  Thus, whereas under [RFC2822] the following <msg-id>s
+   would be considered semantically equivalent,
 
    <abcd@example.com>
    <"abcd"@example.com>
@@ -74,9 +78,16 @@
 
    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>s.
+   determine the identity of two <msg-id>s.
 
-   Also note that this updated ABNF applies wherever <msg-id-core> is
-   used, including the References header discussed in Section 3.2.1 and
-   the Supersedes header discussed in Section 3.2.5.
+   Also note that this updated ABNF applies wherever <msg-id> is used,
+   including the References header discussed in Section 3.2.2 and the
+   Supersedes header discussed in Section 3.2.6.
+
+      NOTE: It is RECOMMENDED in [RFC2822] that, for ensuring global
+      uniqueness, the <id-right> be some domain identifier within whose
+      scope the uniqueness of the <id-left> can be guaranteed.  When
+      following this recommendation, any <dot-atom-text> or <no-fold-
+      literal> used for the <id-right> are to be interpreted as
+      <domain>s as described in Section 3.4.1 of [RFC2822].
 

Documents were processed to this format by Forrest J. Cavalier III