Usenet Format Working Group                                   C. Lindsey                            K. Murchison, Ed.
Internet-Draft                                  University of Manchester                                        Oceana Matrix Ltd.
Obsoletes: 1036 (if approved)                               K. Murchison                                 C. Lindsey
Expires: March 15, May 24, 2005                               Oceana Matrix Ltd.                           University of Manchester
                                                                 D. Kohn
                                                        Skymoon Ventures
                                                      September 14,
                                                       November 23, 2004

                          News Article Format

Status of this Memo

   This document is an Internet-Draft and is subject to all provisions
   of section 3 of RFC 3667.  By submitting this Internet-Draft, each
   author represents that any applicable patent or other IPR claims of
   which he or she is aware have been or will be disclosed, and any of
   which he or she become aware will be disclosed, in accordance with
   RFC 3668.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at

   The list of Internet-Draft Shadow Directories can be accessed at

   This Internet-Draft will expire on March 15, May 24, 2005.

Copyright Notice

   Copyright (C) The Internet Society (2004).


   This document specifies the syntax of network news (Netnews) articles
   in the context of the "Internet Message Format" (RFC 2822) and
   "Multipurpose Internet Mail Extensions (MIME)" (RFC 2045).  This
   document supersedes RFC 1036, updating it to reflect current practice
   and incorporating incremental changes specified in other documents.

Changes since draft-ietf-usefor-usefor-00 draft-ietf-usefor-usefor-01

   o  Rewrote/reorganized Abstract  Removed half-hearted discussion of internal format and 8-bit clean
   o  Added definitions of "proto-article", "posting agent", "followup",
      "followup-agent", "user-agent", and "injecting agent".
   o  Removed discussion of message/partial MIME messages.
   o  Noted that the header contents in every line MUST NOT be empty.
   o  Merged MIME sections.
   o  Only allow "UT and "GMT" in Date header; disallow all other
   o  Used Charles' ABNF for <msg-id> and <unstructured>.
   o  Removed restrictions on length and start character for Newsgroups.
   o  More verbose description of Path header.
   o  Disallowed comments in Control header.
   o  Specified that <control-message> is a verb optionally followed by
      whitespace-separated arguments.
   o  Noted that Supersedes header is different from [Son-of-1036].
   o  More exact ABNF for Archive and Injection-Info parameters.
   o  Discussed meaning of "yes", "no", and "filename" in Archive
   o  Added "Obsolete Headers" section.
   o  Miscellaneous editorial changes

Changes since draft-kohn-news-article-03

   o  Document is now a work product of USEFOR
   o  Added new co-authors
   o  Added some definitions from draft-ietf-usefor-article-13
   o  Removed discussion of message/partial MIME messages.
   o  Removed text that belongs in [USEPRO]
   o  Reorganized header sections
   o  Added Archive, User-Agent, Injection-Date, and Injection-Info
   o  Used Charles' ABNF for <msg-id> and <unstructured>.
   o  Removed restrictions on length and Introduction. start character for Newsgroups.
   o  Added required SP to ABNF of header definitions.
   o  Reorganized  Disallowed comments in Control header.
   o  Xref header sections. allows for non-digit "locations".
   o  Only allow for a single message-id in Supersedes header.
   o  Changes to the References header.
   o  Compatibility changes based on comments from Charles.
   o  Added Injection-Date and Injection-Info headers. Charles

Changes since draft-ietf-usefor-article-13
   o  The Mail-Copies-To, Posted-And-Mailed and Complaints-To headers
      have been moved to other documents.
   o  Dropped MIME parameters, as there is no WG consensus (per Chair).
   o  More exact ABNF for Archive and Injection-Info parameters.

Issues to be addressed

   o  Decide which definitions should go in this document and in
   o  Decide how much (if any) discussion of Injection-Info content
      belongs in this document vs.  [USEPRO].
   o  Do we want to discuss message/partial?
   o  Add appendixes for obsolete headers, changes from RFC 1036 and differences from RFC
   o  IANA considerations (the Klyne message header registry is now
      official as RFC 3864).
   o  Collected Syntax.
   o  Merge more security issues?
   o  Merge acknowledgments?

Table of Contents

   1.   Introduction . . . . . . . . . . . . . . . . . . . . . . . .   4   5
     1.1  Basic Concepts . . . . . . . . . . . . . . . . . . . . . .   4   5
     1.2  Scope  . . . . . . . . . . . . . . . . . . . . . . . . . .   4   5
     1.3  Requirements Notation  . . . . . . . . . . . . . . . . . .   5
     1.4  Syntax Notation  . . . . . . . . . . . . . . . . . . . . .   5   6
     1.5  Definitions  . . . . . . . . . . . . . . . . . . . . . . .   5   6
     1.6  Structure of This Document . . . . . . . . . . . . . . . .   5   7
   2.   Format . . . . . . . . . . . . . . . . . . . . . . . . . . .   7   8
     2.1  Base . . . . . . . . . . . . . . . . . . . . . . . . . . .   7   8
     2.2  Header Fields  Headers  . . . . . . . . . . . . . . . . . . . . . .   7 . . .   8
     2.3  MIME Conformance . . . . . . . . . . . . . . . . . . . . .   8
     2.4  Additional MIME Support   9
   3.   News Headers . . . . . . . . . . . . . . . . .   8
   3.   News Headers . . . . . . .  10
     3.1  Mandatory Headers  . . . . . . . . . . . . . . . . .   9
     3.1  Mandatory Headers  . . . . . . . . . . . . . . . . . . . .   9  10
       3.1.1  From . . . . . . . . . . . . . . . . . . . . . . . . .   9  10
       3.1.2  Subject  .  Date . . . . . . . . . . . . . . . . . . . . . .   9
       3.1.3  Date . . .  10
       3.1.3  Message-ID . . . . . . . . . . . . . . . . . . . . . .   9  11
       3.1.4  Message-ID  Subject  . . . . . . . . . . . . . . . . . . . . . .  10 .  13
       3.1.5  Newsgroups . . . . . . . . . . . . . . . . . . . . . .  11  13
       3.1.6  Path . . . . . . . . . . . . . . . . . . . . . . . . .  11  14
       3.1.7  Injection-Date . . . . . . . . . . . . . . . . . . . .  12  14
     3.2  Optional Headers . . . . . . . . . . . . . . . . . . . . .  12  15
       3.2.1  References . . . . . . . . . . . . . . . . . . . . . .  13  15
       3.2.2  Followup-To  . . . . . . . . . . . . . . . . . . . . .  13  16
       3.2.3  Expires  . . . . . . . . . . . . . . . . . . . . . . .  13  16
       3.2.4  Control  . . . . . . . . . . . . . . . . . . . . . . .  13  16
       3.2.5  Supersedes . . . . . . . . . . . . . . . . . . . . . .  14  17
       3.2.6  Distribution . . . . . . . . . . . . . . . . . . . . .  14  17
       3.2.7  Summary  . . . . . . . . . . . . . . . . . . . . . . .  14  18
       3.2.8  Approved . . . . . . . . . . . . . . . . . . . . . . .  15  18
       3.2.9  Organization . . . . . . . . . . . . . . . . . . . . .  15  18
       3.2.10   Xref . . . . . . . . . . . . . . . . . . . . . . . .  15  18
       3.2.11   Archive  . . . . . . . . . . . . . . . . . . . . . .  15  19
       3.2.12   User-Agent . . . . . . . . . . . . . . . . . . . . .  16  19
       3.2.13   Injection-Info . . . . . . . . . . . . . . . . . . .  16  20
     3.3  Obsolete Headers . . . . . . . . . . . . . . . . . . . . .  21
       3.3.1  Lines  . . . . . . . . . . . . . . . . . . . . . . . .  22
   4.   Internationalization Considerations  . . . . . . . . . . . .  18  23
   5.   Security Considerations  . . . . . . . . . . . . . . . . . .  19  24
   6.   References . . . . . . . . . . . . . . . . . . . . . . . . .  20  25
   6.1  Normative References . . . . . . . . . . . . . . . . . . . .  20  25
   6.2  Informative References . . . . . . . . . . . . . . . . . . .  20  25
        Authors' Addresses . . . . . . . . . . . . . . . . . . . . .  21  26
   A.   Acknowledgements . . . . . . . . . . . . . . . . . . . . . .  23  28
        Intellectual Property and Copyright Statements . . . . . . .  24  29

1.  Introduction

1.1  Basic Concepts

   "Netnews" is a set of protocols for generating, storing and
   retrieving news "articles" (which resemble email are a subset of Email messages) and
   for exchanging them amongst a readership which is potentially widely
   distributed.  It is organized around "newsgroups", with the
   expectation that each reader will be able to see all articles posted
   to each newsgroup in which he participates.  These protocols most
   commonly use a flooding algorithm which propagates copies throughout
   a network of participating servers.  Typically, only one copy is
   stored per server, and each server makes it available on demand to
   readers able to access that server.

1.2  Scope

   This document specifies the syntax of network news (Netnews) articles
   in the context of the "Internet Message Format" [RFC2822] and
   "Multipurpose Internet Mail Extensions (MIME)" [RFC2045].  This
   document supersedes [RFC1036], updating it to reflect current
   practice and incorporating
   incremental changes and clarifications specified in
   other documents such as [Son-of-1036].

   This is the first in a set of documents that obsolete [RFC1036].
   This document focuses on the syntax and semantics of network news Netnews
   articles.  [USEPRO] is also a standards-track document, and describes
   the protocol issues of network news articles, independent of
   transport protocols such as NNTP [RFC0977]. [NNTP].  An informational best common practice
   document, [USEAGE], describes implementation recommendations to
   improve interoperability and usability.

   This specification is intended as a definition of what article
   content format is to be passed between systems.  Though some news
   systems locally store articles in this format (which eliminates the
   need for translation between formats) and others use formats that
   differ from the one specified in this standard, local storage is
   outside of the scope of this standard.

   Note: This standard is not intended to dictate the internal formats
   used by sites, the specific news system features that they are
   expected to support, or any of the characteristics of user interface
   programs that create or read articles.  In addition, this standard
   does not specify an encoding of the characters for either transport
   or storage; that is, it does not specify the number of bits used or
   how those bits are specifically transferred over the wire or stored
   on disk.

1.3  Requirements Notation

   This document occasionally uses terms that appear in capital letters.  The key
   "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document
   are to be interpreted as described in [RFC2119].

1.4  Syntax Notation

   Headers defined in this specification use the Augmented Backus-Naur
   Form (ABNF) notation (including the Core Rules) specified in
   [RFC2234] and many constructs defined in [RFC2822]. [RFC2822] and [RFC2045].
   Section 3.1.4
   updates 3.1.2 and Section 3.1.3 update the [RFC2822] definition definitions of <msg-id>.
   <zone> and <msg-id> respectively.

1.5  Definitions

   An "article" is the unit of news, synonymous with an [RFC2822]
   "message".  A "proto-article" is one that has not yet been injected
   into the news system.

   A "message identifier" Section 3.1.4 3.1.3 is a unique identifier for an
   article, usually supplied by the "posting agent" which posted it or,
   failing that, by the "injecting agent".  It distinguishes the article
   from every other article ever posted anywhere.  Articles with the
   same message identifier are treated as if they are the same article
   regardless of any differences in the body or headers.

   A "newsgroup" is a single news forum, a logical bulletin board,
   having a name and nominally intended for articles on a specific
   topic.  An article is "posted to" a single newsgroup or several
   newsgroups.  When an article is posted to more than one newsgroup, it
   is said to be "crossposted"; note that this differs from posting the
   same text as part of each of several articles, one per newsgroup.

   A newsgroup may be "moderated", in which case submissions are not
   posted directly, but mailed to a "moderator" for consideration and
   possible posting.  Moderators are typically human but may be
   implemented partially or entirely in software.

   A "control message" is an article which "poster" is marked as containing
   control information; a relaying the person or serving agent receiving such an software that composes and submits a
   possibly compliant article may (subject to the a "posting agent".  The poster is
   analogous to [RFC2822]'s author.

   A "posting agent" is the software that assists posters to prepare
   proto-articles, in compliance with this standard.  The proto-article
   is then passed on to an "injecting agent" for final checking and
   injection into the news stream.  If the article is not compliant, or
   is rejected by the injecting agent, then the posting agent informs
   the poster with an explanation of the error.

   A "reader" is the person or software reading news articles.

   A "reading agent" is software which presents articles to a reader.

   A "followup" is an article containing a response to the contents of
   an earlier article (the followup's "precursor").

   A "followup agent" is a combination of reading agent and posting
   agent that aids in the preparation and posting of a followup.

   Posting, reading and followup agents (which are usually just
   different services provided by the same piece of software) are known
   collectively as "user agents".

   An "injecting agent" takes the finished article from the posting
   agent (often via the [NNTP] "post" command) performs some final
   checks and passes it on to a relaying agent for general distribution.

   A "control message" is an article which is marked as containing
   control information; a relaying or serving agent receiving such an
   article may (subject to the policies observed at that site) take
   actions beyond just filing and passing on the article.

1.6  Structure of This Document

   This document uses a cite by reference methodology, rather than
   repeating the contents of other standards, which could otherwise
   result in subtle differences and interoperability challenges.
   Although this document is as a result rather short, it requires
   complete understanding and implementation of the normative references
   to be compliant.

   Section 2 defines the format of news articles.  Section 3 details the
   headers necessary to make an article suitable for the netnews

2.  Format

2.1  Base

   News articles MUST conform to the syntax specified in Section 3 of
   [RFC2822].  News  Netnews agents MAY also accept the obsolete syntax
   specified in Section 4 of [RFC2822], but they MUST NOT generate such

   This specification uses the terms "header", "header name", and
   "header content" which are synonymous with the [RFC2822] terms
   "header field", "field name", and "field body" respectively.

2.2  Header Fields  Headers

   All headers fields in a news article are compliant with [RFC2822], however
   this specification is more restrictive less permissive in what can be generated and
   accepted by news agents.  The syntax allowed for news articles is a
   strict subset of the "Internet Message Format", making all messages
   compliant with this specification inherently compliant with
   [RFC2822].  Note however that the converse is not guaranteed to be true.
   true in all cases.

   General rules which apply to all headers (even those documented in
   [RFC2822] and [RFC2045]) are listed below and those that apply to
   specific headers are described in the relevent sections of this


   o  All agents MUST generate headers so that at least one space
      immediately follows the ':' separating the header name and the
   contents.  As a result, an <unstructured> header as defined in
   Section 3.2.6 of [RFC2822] MUST NOT be empty (it will always contain
   at least a single space). contents (for compatibility with deployed software).  News
      agents MAY accept headers which do not contain the required space.

   Compliant software MUST support headers
   o  The header contents of every header line (including the first and
      any that are subsequently folded) MUST contain at least 998 octets. one
      non-whitespace character.
         NOTE: This
   is the only limit on the length of a means that no header line prescribed content defined by or
         referenced by this
   standard. document can be empty.  As a result, this
         document updates the <unstructured> construct from Section
         3.2.6 of [RFC2822] as follows:

   unstructured    =  1*( [FWS] utext ) [FWS]

   o  Compliant software MUST NOT generate (but MAY accept) headers of
      more than 998 octets.  This is the only limit on the length of a
      header line prescribed by this standard.  However, specific rules
      to the contrary may apply in particular cases (for example,
      according to [RFC2047] header lines containing encoded-words are
      limited to 76 octets).  [USEAGE] includes suggested limits for
      convenience of display by user agents.
         NOTE: There is NO restriction on the number of lines into which
         a header may be split, and hence there is NO restriction on the
         total length of a header (in particular it may, by suitable
         folding, be made to exceed the 998 octets restriction
         pertaining to a single header line).
   o  The character set for headers is US-ASCII.  Where the use of
      non-ASCII characters is required, they MUST be encoded using the
      MIME mechanisms defined in [RFC2045] and [RFC2231].

2.3  MIME Conformance

   User agents MUST meet the definition of MIME-conformance in
   [RFC2049]. [RFC2049]
   and MUST also support [RFC2231].  This level of MIME Conformance
   provides support for internationalization and multimedia in message
   bodies [RFC2045], ([RFC2045], [RFC2046], [RFC2231]), and support for
   internationalization of headers [RFC2047]. ([RFC2047], [RFC2231]).  Note that
   [Errata] currently exist for [RFC2046] and [RFC2231].

2.4  Additional MIME Support

   User agents conformant with this document MAY support reassembly

   For the purposes of
   message/partial MIME messages, as specified Section 5 of [RFC2047], all headers defined in
   Section 5.2.2 3 of
   [RFC2046] and MAY support generation this standard are to be considered as "extension message
   header fields" (insofar as they are not already considered under the
   existing Email standards), permitting the use of message/partial articles for
   excessively large articles. [RFC2047] encodings
   within any <unstructured> header, or within any <comment> or <phrase>
   permittted within any structured header.

   User agents SHOULD MAY accept and MAY generate other MIME extension header
   fields, including but not limited to headers, and
   in particular SHOULD accept Content-Disposition [RFC2183] and
   Content-Language [RFC3282].

3.  News Headers

   The following news headers (also known as header fields) extend the
   fields those defined in section 3.6 of [RFC2822] as follows:

   fields          =/ *( newsgroups /
                         path /
                         injection-date /
                         followup-to /
                         expires /
                         control /
                         supersedes /
                         distribution /
                         summary /
                         approved /
                         organization /
                         xref /
                         archive /
                         user-agent /
                         injection-info )

   Each of these headers may occur at most once in a news article.

3.1  Mandatory Headers

   Each news article conformant with this specification MUST have
   exactly one of each of the following headers: From, Subject, Date, Message-ID,
   Subject, Newsgroups, Path, and Injection-Date.

3.1.1  From

   The From header is the same as that specified in Section 3.6.2 of
   [RFC2822] with the added restrictions detailed in Section 2.2.

   from            =  "From:" SP mailbox-list CRLF

3.1.2  Subject

   The Subject header is the same as that specified in Section 3.6.5 of
   [RFC2822] with the added restrictions detailed in Section 2.2.
   Further discussion of the content of the Subject header is discussed
   in [USEPRO] and [USEAGE].

3.1.3  Date

   The Date header is the same as that specified in Sections 3.3 and
   3.6.1 of [RFC2822] with the added restrictions detailed in Section
   2.2.  However, the use of "GMT" and "UT" and "GMT" as time zones, which are
   part zones (part of <obs-zone>,
   <obs-zone>), although deprecated, is widespread in news articles
   today.  Therefore, agents MUST accept, but MUST NOT generate, accept <date-time> constructs which
   include <obs-zone>.  As stated in Section 2.1, support for
   <obs-zone> would otherwise have been SHOULD accept, MUST NOT
   generate. the updated <zone> construct below.

   orig-date       =  "Date:" SP date-time CRLF
   zone            =  (( "+" / "-" ) 4DIGIT) / "UT" / "GMT"

   Note that these requirements apply wherever agents SHOULD NOT generate <date-time> is
   used, including constructs which
   include either "UT" or "GMT" and MUST NOT generate <date-time>
   constructs which include any other zone names defined by <obs-zone>,
   some of which have ambiguous interpretations and would have adverse
   effects on Netnews protocols.

   Also note that these requirements apply wherever <date-time> is used,
   including Injection-Date and Expires in Section 3.1.7 and Section
   3.2.3 respectively.


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 / obs-id-left

   id-right        =  dot-atom-text / no-fold-literal / obs-id-right

   no-fold-quote   =  DQUOTE
                         *( qtext mqtext / no-space-qp ) "\\" / "\" DQUOTE

   no-fold-literal =  "[" )
                         *( htext mqtext / "\\" / no-space-qp ) "]"

   no-space-qp     =  ( "\" ptext DQUOTE ) / obs-qp


   mqtext          =  %d33-61  NO-WS-CTL /      ; Printable characters excluding all of <text> except
                      %d33 /           ; SP, HTAB, "\", ">"
                      %d35-61 /        ; and DQUOTE
                      %d63-91 /


   mqspecial       =  HEXDIG  "(" / ")" /      ; hexadecimal digits, case-insensitive
                      "." same as specials except
                      "<" /            ; IPv4 separator "\" and DQUOTE quoted
                      "[" / "]" /      ; and ">" omitted
                      ":" / ";" /
                      "@" / "\\" /
                      "," / "." /
                      "\" DQUOTE

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

   mdtext          =  NO-WS-CTL /      ; IPv6 separator 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])  [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; this
   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,


    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> is <msg-id-core> are
   used, including the References header discussed in Section 3.2.1.

3.1.5  Newsgroups 3.2.1 and
   the Supersedes header discussed in Section 3.2.5.

3.1.4  Subject

   The Newsgroups Subject header specifies is the newsgroup(s) to which same as that specified in Section 3.6.5 of
   [RFC2822] with the article
   is posted.

   newsgroups      =  "Newsgroups:" added restrictions detailed in Section 2.2.
   Further discussion of the content of the Subject header appears in
   [USEPRO] and [USEAGE].

   subject         =  "Subject:" SP unstructured CRLF

3.1.5  Newsgroups

   The Newsgroups header specifies the newsgroup(s) to which the article
   is posted.

   newsgroups      =  "Newsgroups:" SP newsgroup-list CRLF

   newsgroup-list  =  [FWS] newsgroup-name
                      *( [FWS] "," [FWS] newsgroup-name ) [FWS]

   newsgroup-name  =  component *( "." component ) ; 66 character max

   component       =  plain-component

   plain-component =  component-start *29component-rest

   component-start =  ALPHA / DIGIT

   component-rest  1*component-char

   component-char  =  ALPHA / DIGIT / "+" / "-" / "_"

   A newsgroup name consists of one or more components separated
      NOTE: Observe that the syntax does not allow comments within the
      Newsgroups header; this is to simplify processing by
   periods, relaying and
      serving agents which have a requirement to process this header
      extremely rapidly.

   Components beginning with no more than 66 characters total.  Each component
   consists underline ("_") are reserved for use by
   future versions of less than 30 this standard and MUST NOT occur in
   <newsgroup-name>s (whether in Newsgroups headers or less letters in newgroup
   control messages [USEPRO]).  However, such names MUST be accepted.

   The specific format and digits.  These limits lengths of <newsgroup-name> and <component>
   are discussed further in Section 7.2 of [USEAGE].

3.1.6  Path

   The Path header indicates the route taken by an article since its
   injection into the Netnews system, so system.  Each agent that unnecessary redundant
   transmission can be avoided. processes an
   article is required to prepend one (or more) identities to this
   header.  This is primarily to enable relaying agents to avoid sending
   articles to sites already known to have them, in particular the site
   they came from, and additionally to permit tracing the route articles
   take in moving over the network, and for gathering Usenet statistics.

   path            =  "Path:" SP path-list CRLF

   path-list       =  [FWS] path-identity
                      *( path-identity [FWS] path-delimiter [FWS] path-identity )
                      tail-entry [FWS]

   path-identity   =  ( ALPHA / DIGIT )
                      *( ALPHA / DIGIT / "-" / "." / ":" / "_" )

   tail-entry      =  path-identity

   path-delimiter  =  "!" ; possible other delimiters TBD

   The specific format and use of <path-identity> and <tail-entry> are
   discussed in [USEPRO].

3.1.7  Injection-Date

   The Injection-Date header contains the date and time that the article
   was injected into the network.  Its purpose is to prevent the
   reinjection into the news stream of "stale" articles which have
   already expired by the time they arrive at some relaying or serving

   This header is mandatory for new clients, but all agents SHOULD use
   the Date header for this purpose if Injection-Date is not present.

   injection-date  =  "Injection-Date:" SP date-time CRLF
   See the remarks under Section 3.1.3 3.1.2  regarding the syntax of
   date-time and the requirements and recommendations to which it is

      NOTE: The date-time in this header would normally be expected to
      be later than the date-time in the Date header, but differences
      between the clocks on the various agents and other special
      circumstances might vitiate that; no provision is made for any
      such discrepancy to be corrected - better that the injecting agent
      should just insert the correct time as it sees it.

   This header is intended to replace the currently-used but
   undocumented "NNTP-Posting-Date" header, whose use is now deprecated.

3.2  Optional Headers

   None of the headers appearing in this section is required to appear
   in every article but some of them are required in certain types of
   article, such as followups.  Further discussion of these requirements
   is discussed
   appears in [USEPRO] and [USEAGE].

   The headers Reply-To, Sender, Comments, and Keywords are often used in news
   articles in the same circumstances and have with the identical same meaning as that
   specified in [RFC2822] with the added restrictions detailed in
   Section 2.2.  Multiple occurances of the Keywords header are not

   sender          =  "Sender:" SP mailbox CRLF

   reply-to        =  "Reply-To:" SP address-list CRLF

   comments        =  "Comments:" SP unstructured CRLF

   keywords        =  "Keywords:" SP phrase *("," phrase) CRLF

   The MIME headers Content-Type MIME-Version, Content-Type,
   Content-Transfer-Encoding, Content-Disposition, and Content-Transfer-Encoding Content-Language
   are often used in news articles in the same circumstances and have with the identical meaning same
   meanings as that those specified in [RFC2045] [RFC2045], [RFC2183], and [RFC3282]
   with the added restrictions detailed in Section 2.2.

   All other commonly used remaining news headers are described below.

3.2.1  References

   The References header is the same as that specified in Section 3.6.4
   of [RFC2822] with the added restrictions detailed in Section 2.2 and
   those listed below:

   o  The updated <msg-id> <msg-id-core> construct defined in Section 3.1.4 3.1.3 MUST
      be used.
   o  Message IDs identifiers MUST be separated with CFWS.
   o  Comments in CFWS between Message IDs message identifiers can cause
      interoperability problems, so comments SHOULD NOT be generated,
      but MUST be accepted.

   references      =  "References:" SP 1*( [CFWS] msg-id-core) [CFWS]

3.2.2  Followup-To

   The Followup-To header specifies to which newsgroup(s) followups
   should be posted.  The Followup-To header SHOULD NOT appear in a
   message, unless its content is different from the content of the
   Newsgroups header.

   followup-to     =  "Followup-To:" SP ( newsgroup-list / poster-text )

   poster-text     =  [FWS] %d112. [FWS]
                      ; "poster" in lower-case

   The syntax is the same as that of the Newsgroups header (Section
   3.1.5, with the exception that the magic word keyword "poster" (which is always
   lowercase) means requests that followups should be mailed to the article's
   reply address rather than posted.  In order to improve
   interoperability with deployed clients,  Although the keyword "poster" is
   case-sensitive, followup agents MAY choose to recognize
   case-insensitive forms such as "Poster".

3.2.3  Expires

   The Expires header specifies a date and time when the article is
   deemed to be no longer useful relevant and could usefully be removed

   expires         =  "Expires:" SP date-time CRLF

   See the remarks under Section 3.1.3 3.1.2  regarding the syntax of
   date-time and the requirements and recommendations to which it is

3.2.4  Control

   The Control header marks the article as a control message, and
   specifies the desired actions (additional to the usual ones of
   storing and/or relaying the article).

   control         =  "Control:" SP [CFWS] [FWS] control-message [CFWS] [FWS] CRLF

   control-message = <empty>  verb *( [FWS] argument )

   verb            =  token

   argument        =  value

   The control-message verb indicates what action should be taken. taken, and the argument(s)
   (if any) supply details.  In some cases, the body of the article may
   also contain details.  The exact
   syntax for control-message is specified legal verbs and respective arguments are
   discussed in the companion document, [USEPRO].

   An article with a Control header MUST NOT also have a Supersedes

3.2.5  Supersedes

   The Supersedes header contains a message identifier specifying an
   article to be superseded upon the arrival of this one.  The specified  An article MUST be treated as though
   containing a Supersedes header is equivalent to a "cancel" [USEPRO]
   control message
   had arrived for the specified article, followed immediately by
   the new article (but observe that a site MAY choose not
   to honor a "cancel" message, especially if its authenticity is in
   doubt). without the Supersedes header.

   supersedes      =  "Supersedes:" SP [CFWS] msg-id-core [CFWS] CRLF

   NOTE: There is no "c" in Supersedes.

   NOTE: The Supersedes header defined here has no connection with the
   Supersedes header that sometimes appears in Email messages converted
   from X.400 according to [RFC2156]; in particular, the syntax here
   permits only one <msg-id-core> in contrast to the multiple
   <msg-id-core>s in that Email version.

3.2.6  Distribution

   The Distribution header specifies geographic or organizational limits
   on an article's propagation.

   distribution    =  "Distribution:" SP dist-list distribution-list CRLF


   dist-list       =  [FWS] dist-name *( "," [FWS] dist-name ) [FWS]

   dist-name       =  ALPHA / DIGIT
                      *( ALPHA / DIGIT / "+" / "-" / "_" )

   The <dist-name>s "world" and "local" are predefined.  However,
   "world" SHOULD NOT be used explicitly, since it is the default when
   the Distribution header is absent entirely.

   "All" MUST NOT be used as a distribution-name.  Distribution-names <dist-name>.  <dist-name>s SHOULD contain
   at least three characters, except when they are two-letter country
   names as in [ISO.3166.1988].  Distribution-names  <dist-name>s are case-insensitive (i.e.
   "US", "Us", "uS", and "us" all specify the same distribution).

3.2.7  Summary

   The Summary header is a short phrase summarizing the article's

   summary         =  "Summary:" SP unstructured CRLF

3.2.8  Approved

   The Approved header indicates the mailing addresses (and possibly the
   full names) of the moderators persons or entities approving the article for

   approved        =  "Approved:" SP mailbox-list CRLF

   Each mailbox contained in the Approved header MUST be that of one of
   the person(s) or entity(ies) in question, and one of those mailboxes
   MUST be that of the actual injector of the article.  Note that this
   standard doesn't provide any means to enforce or verify this
   requirement, but future extensions or standards may provide such a
   facility (e.g.  digitial signatures).

3.2.9  Organization

   The Organization header is a short phrase identifying the poster's

   organization    =  "Organization:" SP unstructured CRLF

   There is no "s" in Organization.

3.2.10  Xref

   The Xref header indicates where an article was filed by the last
   serving agent to process it.  The article locations are used to keep
   track of crossposted articles so that reading agents serviced by a
   particular serving agent can mark such articles as read.

   xref            =  "Xref:" SP [CFWS] server-name
                      1*( CFWS location ) [CFWS] CRLF

   server-name     =  path-identity

   location        =  newsgroup-name ":" article-locator

   article-locator =  1*( %x21-27 / %x29-3A / %x3C-7E )
                      ; US-ASCII printable characters
                      ; except '(' and ';'

   The server-name <server-name> is included so that software can determine which
   serving agent generated the header.  The locations specify what
   newsgroups the article was filed under (which may differ from those
   in the Newsgroups-header) Newsgroups header) and where it was filed under them.  The
   exact form of an article-locator is implementation-specific.

      NOTE: The traditional form of an article-locator (as used by NNTP)
      [NNTP]) is a decimal number, with articles in each newsgroup
      numbered consecutively starting from 1.

3.2.11  Archive

   The Archive header provides an indication of the poster's intent
   regarding preservation of the article in publicly accessible
   long-term or permanent storage.

   archive         =  "Archive:" SP [CFWS] ("no" / "yes")
                      *( [CFWS] ";" archive-param ) CRLF

   archive-param   =  <a parameter with attribute  "filename=" value

   The presence of an "Archive: no" header in an article indicates that
   the poster does not permit redistribution from publicly accessible
   long-term or permanent archives.  The absence of this header, or an
   explicit "Archive: yes", indicates that the poster is willing for
   such redistribution to take place.  The optional "filename"
                       and any value> parameter
   can then be used to suggest a filename under which the article should
   be stored.  Further extensions to this standard may provide
   additional parameters for administration of the archiving process.

3.2.12  User-Agent

   The User-Agent header contains information about the user agent
   (typically a newsreader) generating the article article, for statistical
   purposes and tracing of standards violations to specific software
   needing correction.  Although not one of the mandatory headers,
   posting agents SHOULD normally include it.  It is also intended that this header be suitable for
   use in Email.

   user-agent      =  "User-Agent:" SP 1*product CRLF

   product         =  [CFWS] token [CFWS] [ "/" product-version ]

   product-version =  [CFWS] token [CFWS]

   This header MAY contain multiple product-tokens identifying the agent
   and any subproducts which form a significant part of the posting
   agent, listed in order of their significance for identifying the
      NOTE: This header supersedes the role performed redundantly by
      experimental headers such as X-Newsreader, X-Mailer,
      X-Posting-Agent, X-Http-User-Agent, and other headers previously
      used on Usenet and in Email for this purpose.  Use of these
      experimental headers SHOULD be discontinued in favor of the
      single, standard User-Agent header.
      NOTE: [RFC2616] describes a similar facility for the HTTP
      protocol.  This specification differs in that "{" and "}" are
      allowed in tokens (<product> and <product-version>) and comments
      are permitted wherever whitespace is allowed.

3.2.13  Injection-Info

   The Injection-Info header provides information as to how an article
   entered the Netnews system and to assist in tracing its true origin.

   injection-info  =  "Injection-Info:" SP [CFWS] path-identity [CFWS]
                      *( ";" injection-info-parameter inj-info-para )

   injection-info-parameter CRLF

   inj-info-param  =  posting-host-parameter  post-host-param /
                      post-account-param /
                      sender-param /


   post-host-param =  <a parameter with attribute "posting-host"
                       and value some host-value>  "posting-host=" host-value

   host-value      =  dot-atom / [ dot-atom ":" ]
                      ( IPv4address / IPv6address ) ;  see [RFC 2373]


   post-acct-param =  "posting-account=" value

   sender-param    =  "sender=" sender-value

   sender-value    =  mailbox / "verified"

   logging-param   =  <a  "logging-data=" value
   Although comments and folding of white space are permitted throughout
   the Injection-Info header, it is RECOMMENDED that folding is not used
   within any parameter with attribute "posting-account" (but only before or after the ";" separating
   those parameters), and that comments are only used following the last
   parameter.  It is also RECOMMENDED that such parameters as are
   present are included in the order in which they have been defined in
   the syntax above.

   This header is intended to replace various currently-used but
   undocumented headers such as "NNTP-Posting-Host" and "X-Trace".
   These headers are now deprecated.

3.3  Obsolete Headers

   Early versions of news software following the modern format sometimes
   generated headers like the following:

   Relay-Version: version B 2.10 2/13/83; site cbosgd.UUCP
   Posting-Version: version B 2.10 2/13/83; site eagle.UUCP
   Date-Received: Friday, 19-Nov-82 16:59:30 EST

   Relay-Version contained version information about the relaying agent
   that last processed the article.  Posting-Version contained version
   information about the posting agent that posted the article.
   Date-Received contained the date when the last relaying agent to
   process the article first saw it (in a slightly nonstandard format).

   In addition, this present standard obsoletes certain headers defined
   in [Son-of-1036]:

   Also-Control: cancel <9urrt98y53@site.example>
   See-Also: <i4g587y@site1.example> <kgb2231+ee@site2.example>
   Article-Updates: <i4g587y@site1.example>

   Also-Control indicated a control message that was also intended to be
   filed as a normal article.  See-Also listed related articles, but
   without the specific relationship with followups that pertains to the
   References-header.  Article-Names indicated some special significance
   of that article in relation to the indicated newsgroup.
   Article-Updates indicated that an earlier article was updated,
   without at the same time being superseded.

   The headers listed above are documented for historical purposes only.
   Articles containing these headers MUST NOT be generated.  Persons
   writing new agents SHOULD ignore any value>

   posting-sender-parameter former meanings these headers.

3.3.1  Lines

   The Lines header indicates the number of lines in the body of the

   lines           =  <a parameter with attribute "sender"  "Lines" ":" SP [CFWS] 1*DIGIT [CFWS] CRLF

   The line count includes all body lines, including the signature if
   any, including empty lines (if any) at the beginning or end of the
   body, and value some sender-value>

   sender-value    =  mailbox / "verified"

                   =  <a parameter with attribute "logging-data" including the whole of all MIME message and any value>

   Although comments multipart parts
   contained in the body (the single empty separator line between the
   headers and folding of white space are permitted throughout the Injection-Info header, it is RECOMMENDED that folding body is not used
   within any parameter (but only before or after the ";" separating
   those parameters), and that comments are only used following part of the last
   parameter.  It body).  The "body" here is also RECOMMENDED that such parameters
   the body as are
   present are included found in the order in which they have been defined in posted article as transmitted by the syntax above.

   This posting

   Historically, this header was used by the [NNTP] overview extension,
   but its use for this purpose is now deprecated.  As a result, this
   header is intended to replace various currently-used but
   undocumented headers such be regarded as "NNTP-Posting-Host" obsolete, and "X-Trace".
   These headers are now deprecated. it will likely be removed
   entirely in a future version of this standard.

4.  Internationalization Considerations

   Internationalization of news article headers and bodies is provided
   using MIME mechanisms discussed in Section 2.3.  Note that the
   generation of internationalized newsgroup names for use in headers is
   not addressed in this document.

5.  Security Considerations

   The news article format specified in this document does not provide
   any security services, such as confidentiality, authentication of
   sender, or non-repudiation.  Instead, such services need to be
   layered above, using such protocols as S/MIME [RFC2633] or PGP/MIME
   [RFC3156], or below, using secure versions of news transport
   protocols.  Additionally, several currently non-standardized
   protocols [PGPVERIFY] will hopefully be standardized in the near

   Message-IDs (Section 3.1.4) 3.1.3) in news are required to be unique;
   articles are refused (in server-to-server transfer) if the ID has
   already been seen.  So if you can predict the ID of a message, you
   can preempt it by posting a message (possibly to a quite different
   group) with the same ID, stopping your target message from
   propagating.  Agents that generate message-ids for news articles
   SHOULD ensure that they are unpredictable.

   The filename parameter of the Archive-header (Section 3.2.11) can be
   used to attempt to store archived articles in inappropriate
   locations.  Archiving sites should be suspicious of absolute filename
   parameters, as opposed to those relative to some location of the
   archiver's choosing.

6.  References

6.1  Normative References

   [Errata]   "RFC Editor Errata".

   [RFC2045]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
              Extensions (MIME) Part One: Format of Internet Message
              Bodies", RFC 2045, November 1996.

   [RFC2046]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
              Extensions (MIME) Part Two: Media Types", RFC 2046,
              November 1996.

   [RFC2047]  Moore, K., "MIME (Multipurpose Internet Mail Extensions)
              Part Three: Message Header Extensions for Non-ASCII Text",
              RFC 2047, November 1996.

   [RFC2049]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
              Extensions (MIME) Part Five: Conformance Criteria and
              Examples", RFC 2049, November 1996.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2183]  Troost, R., Dorner, S. and K. Moore, "Communicating
              Presentation Information in Internet Messages: The
              Content-Disposition Header Field", RFC 2183, August 1997.

   [RFC2231]  Freed, N. and K. Moore, "MIME Parameter Value and Encoded
              Word Extensions: Character Sets, Languages, and
              Continuations", RFC 2231, November 1997.

   [RFC2234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", RFC 2234, November 1997.

   [RFC2822]  Resnick, P., "Internet Message Format", RFC 2822, April

   [RFC3282]  Alvestrand, H., "Content Language Headers", RFC 3282, May

6.2  Informative References

              International Organization for Standardization, "Codes for
              the representation of names of countries, 3rd edition",
              ISO Standard 3166, August 1988.

   [NNTP]     Feather, C., "Network News Transfer Protocol",

              Lawrence, D., "PGPverify", June 1999.

   [RFC0977]  Kantor, B. and P. Lapsley, "Network News Transfer
              Protocol", RFC 977, February 1986.

   [RFC1036]  Horton, M. and R. Adams, "Standard for interchange of
              USENET messages", RFC 1036, December 1987.

   [RFC2156]  Kille, S., "MIXER (Mime Internet X.400 Enhanced Relay):
              Mapping between X.400 and RFC 822/MIME", RFC 2156, January

   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
              Masinter, L., Leach, P. and T. Berners-Lee, "Hypertext
              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.

   [RFC2633]  Ramsdell, B., "S/MIME Version 3 Message Specification",
              RFC 2633, June 1999.

   [RFC3156]  Elkins, M., Del Torto, D., Levien, R. and T. Roessler,
              "MIME Security with OpenPGP", RFC 3156, August 2001.

              Spencer, H., "News Article Format and Transmission", June

   [USEAGE]   Lindsey, C., "Usenet Best Practice",

   [USEPRO]   Lindsey, C., "News Article Architecture and Protocols",

Authors' Addresses

   Kenneth Murchison (editor)
   Oceana Matrix Ltd.
   21 Princeton Place
   Orchard Park, NY  14127

   Phone: +1 716 662 8973
   Charles H. Lindsey
   University of Manchester
   5 Clerewood Avenue
   Heald Green
   Chesire  SK8 3JU

   Phone: +44 161 436 6131

   Kenneth Murchison
   Oceana Matrix Ltd.
   21 Princeton Place
   Orchard Park, NY  14127

   Phone: +1 716 662 8973

   Dan Kohn
   Skymoon Ventures
   3045 Park Boulevard
   Palo Alto, CA  94306

   Phone: +1 650 327 2600

Appendix A.  Acknowledgements

   Comments and/or text were provided by Mark Crispin, Claus Faerber,
   Ned Freed, Andrew Gierth, Tony Hansen, Paul Hoffman, Simon Josefsson,
   Bruce Lilly, Pete Resnick, and Henry Spencer. Spencer, Russ Allbery, and Alexey

Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at

Disclaimer of Validity

   This document and the information contained herein are provided on an

Copyright Statement

   Copyright (C) The Internet Society (2004).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


   Funding for the RFC Editor function is currently provided by the
   Internet Society.