draft-ietf-usefor-article-12.txt   draft-ietf-usefor-article-13.txt 
INTERNET-DRAFT Charles H. Lindsey INTERNET-DRAFT Charles H. Lindsey
Usenet Format Working Group University of Manchester Usenet Format Working Group University of Manchester
November 2003 May 2004
News Article Format and Transmission News Article Format and Transmission
<draft-ietf-usefor-article-12.txt> <draft-ietf-usefor-article-13.txt>
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026. all provisions of Section 10 of RFC 2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 2, line 4 skipping to change at page 2, line 4
standard should be followed. In most such cases, current practice is standard should be followed. In most such cases, current practice is
already compatible with these changes. already compatible with these changes.
[Draft-10 removed all the Internationalization features (i.e. those [Draft-10 removed all the Internationalization features (i.e. those
involving the use of the UTF-8 charset in headers). This is being done involving the use of the UTF-8 charset in headers). This is being done
so as to facilitate publishing those features, or similar ones, as an so as to facilitate publishing those features, or similar ones, as an
experimental protocol at a later stage. experimental protocol at a later stage.
A companion Current Best Practice document [USEAGE], addressing A companion Current Best Practice document [USEAGE], addressing
requirements which are present for Social rather than Normative reasons requirements which are present for Social rather than Normative reasons
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
is in preparation. is in preparation.
There may well be a further split of the present draft into a There may well be a further split of the present draft into a
syntax/semantics part and a protocol part. Thus this present draft is syntax/semantics part and a protocol part. Thus this present draft is
but an intermediate stage in an ongoing development process.] but an intermediate stage in an ongoing development process.]
[The use of the words "this standard" within this document when [The use of the words "this standard" within this document when
referring to itself does not imply that this draft yet has pretensions referring to itself does not imply that this draft yet has pretensions
to be a standard, but rather indicates what will become the case if and to be a standard, but rather indicates what will become the case if and
skipping to change at page 2, line 26 skipping to change at page 2, line 26
standard.] standard.]
[Remarks enclosed in square brackets and aligned with the left margin, [Remarks enclosed in square brackets and aligned with the left margin,
such as this one, are not part of this draft, but are editorial notes to such as this one, are not part of this draft, but are editorial notes to
explain matters amongst ourselves, or to point out alternatives, or to explain matters amongst ourselves, or to point out alternatives, or to
assist the RFC Editor.] assist the RFC Editor.]
[In this draft, references to [NNTP] are to be replaced by [RFC 977], or [In this draft, references to [NNTP] are to be replaced by [RFC 977], or
else by references to the RFC arising from the series of drafts draft- else by references to the RFC arising from the series of drafts draft-
ietf-nntpext-base-*.txt, in the event that such RFC has been accepted at ietf-nntpext-base-*.txt, in the event that such RFC has been accepted at
the time this document is published.] the time this document is published.
References to [KLYNE], which has now passed its IETF last call, are to
be replaced by references to the eventual RFC.]
Table of Contents Table of Contents
1. Introduction .................................................. 6 1. Introduction .................................................. 6
1.1. Basic Concepts ............................................ 6 1.1. Basic Concepts ............................................ 6
1.2. Objectives ................................................ 6 1.2. Objectives ................................................ 6
1.3. Historical Outline ........................................ 7 1.3. Historical Outline ........................................ 7
1.4. Transport ................................................. 7 1.4. Transport ................................................. 7
2. Definitions, Notations and Conventions ........................ 7 2. Definitions, Notations and Conventions ........................ 7
2.1. Definitions ............................................... 7 2.1. Definitions ............................................... 7
skipping to change at page 2, line 57 skipping to change at page 3, line 4
4. Basic Format .................................................. 17 4. Basic Format .................................................. 17
4.1. Syntax of News Articles ................................... 17 4.1. Syntax of News Articles ................................... 17
4.2. Headers ................................................... 18 4.2. Headers ................................................... 18
4.2.1. Naming of Headers ..................................... 18 4.2.1. Naming of Headers ..................................... 18
4.2.2. MIME-style Parameters ................................. 19 4.2.2. MIME-style Parameters ................................. 19
4.2.3. White Space and Continuations ......................... 20 4.2.3. White Space and Continuations ......................... 20
4.2.4. Comments .............................................. 21 4.2.4. Comments .............................................. 21
4.2.5. Header Properties ..................................... 22 4.2.5. Header Properties ..................................... 22
4.2.5.1. Experimental Headers .............................. 22 4.2.5.1. Experimental Headers .............................. 22
4.2.5.2. Inheritable Headers ............................... 22 4.2.5.2. Inheritable Headers ............................... 22
News Article Format and Transmission May 2004
4.2.5.3. Variant Headers ................................... 22 4.2.5.3. Variant Headers ................................... 22
4.3. Body ...................................................... 23 4.3. Body ...................................................... 23
News Article Format and Transmission November 2003
4.4. Octets, Characters and Character Sets ..................... 23 4.4. Octets, Characters and Character Sets ..................... 23
4.4.1. Character Sets within Article Headers ................. 24 4.4.1. Character Sets within Article Headers ................. 24
4.4.2. Character Sets within Article Bodies .................. 24 4.4.2. Character Sets within Article Bodies .................. 24
4.5. Size Limits ............................................... 24 4.5. Size Limits ............................................... 24
4.6. Example ................................................... 25 4.6. Example ................................................... 25
5. Mandatory Headers ............................................. 26 5. Mandatory Headers ............................................. 26
5.1. Date ...................................................... 26 5.1. Date ...................................................... 26
5.1.1. Examples .............................................. 26 5.1.1. Examples .............................................. 26
5.2. From ...................................................... 26 5.2. From ...................................................... 27
5.2.1. Examples: ............................................ 27 5.2.1. Examples: ............................................ 27
5.3. Message-ID ................................................ 27 5.3. Message-ID ................................................ 27
5.4. Subject ................................................... 28 5.4. Subject ................................................... 28
5.5. Newsgroups ................................................ 28 5.5. Newsgroups ................................................ 28
5.5.1. Forbidden newsgroup-names ............................. 30 5.5.1. Forbidden newsgroup-names ............................. 30
5.6. Path ...................................................... 31 5.6. Path ...................................................... 31
5.6.1. Format ................................................ 31 5.6.1. Format ................................................ 31
5.6.2. Adding a path-identity to the Path-header ............. 32 5.6.2. Adding a path-identity to the Path-header ............. 32
5.6.3. The tail-entry ........................................ 33 5.6.3. The tail-entry ........................................ 33
5.6.4. Path-Delimiter Summary ................................ 33 5.6.4. Path-Delimiter Summary ................................ 34
5.6.5. Example ............................................... 34 5.6.5. Example ............................................... 34
6. Optional Headers .............................................. 35 5.7. Injection-Date ............................................ 35
6.1. Reply-To .................................................. 35 6. Optional Headers .............................................. 36
6.1.1. Examples .............................................. 35 6.1. Reply-To .................................................. 36
6.2. Sender .................................................... 35 6.1.1. Examples .............................................. 36
6.3. Organization .............................................. 36 6.2. Sender .................................................... 37
6.4. Keywords .................................................. 36 6.3. Organization .............................................. 37
6.5. Summary ................................................... 36 6.4. Keywords .................................................. 37
6.6. Distribution .............................................. 36 6.5. Summary ................................................... 37
6.7. Followup-To ............................................... 37 6.6. Distribution .............................................. 37
6.8. Mail-Copies-To ............................................ 38 6.7. Followup-To ............................................... 39
6.9. Posted-And-Mailed ......................................... 39 6.8. Mail-Copies-To ............................................ 39
6.10. References ............................................... 39 6.9. Posted-And-Mailed ......................................... 40
6.10.1. Examples ............................................. 40 6.10. References ............................................... 40
6.11. Expires .................................................. 40 6.10.1. Examples ............................................. 41
6.12. Archive .................................................. 40 6.11. Expires .................................................. 41
6.13. Control .................................................. 41 6.12. Archive .................................................. 41
6.14. Approved ................................................. 42 6.13. Control .................................................. 42
6.15. Supersedes ............................................... 42 6.14. Approved ................................................. 43
6.16. Xref ..................................................... 43 6.15. Supersedes ............................................... 43
6.17. Lines .................................................... 44 6.16. Xref ..................................................... 44
6.18. User-Agent ............................................... 44 6.17. Lines .................................................... 45
6.18.1. Examples ............................................. 45 6.18. User-Agent ............................................... 45
6.19. Injector-Info ............................................ 45 6.18.1. Examples ............................................. 46
6.19.1. Usage of Injector-Info-parameters .................... 46 6.19. Injection-Info ........................................... 46
6.19.1.1. The posting-host-parameter ....................... 47 6.19.1. Usage of Injection-Info-parameters ................... 47
6.19.1.2. The posting-account-parameter .................... 47 6.19.1.1. The posting-host-parameter ....................... 48
6.19.1.3. The posting-sender-parameter ..................... 47 6.19.1.2. The posting-account-parameter .................... 48
6.19.1.4. The posting-logging-parameter .................... 47 6.19.1.3. The posting-sender-parameter ..................... 48
6.19.1.5. The posting-date-parameter ....................... 47 6.19.1.4. The posting-logging-parameter .................... 48
6.19.2. Example .............................................. 48 6.19.2. Example .............................................. 48
6.20. Complaints-To ............................................ 48 6.20. Complaints-To ............................................ 49
6.21. MIME headers ............................................. 48 6.21. MIME headers ............................................. 49
6.21.1. Syntax ............................................... 48 News Article Format and Transmission May 2004
6.21.2. Content-Type ......................................... 49
News Article Format and Transmission November 2003
6.21.1. Syntax ............................................... 49
6.21.2. Content-Type ......................................... 50
6.21.3. Content-Transfer-Encoding ............................ 50 6.21.3. Content-Transfer-Encoding ............................ 50
6.21.4. Definition of some new Content-Types ................. 50 6.21.4. Definition of some new Content-Types ................. 51
6.21.4.1. Application/news-transmission .................... 50 6.21.4.1. Application/news-transmission .................... 51
6.21.4.2. Message/news obsoleted ........................... 52 6.21.4.2. Message/news obsoleted ........................... 53
6.22. Obsolete Headers ......................................... 52 6.22. Obsolete Headers ......................................... 53
7. Control Messages .............................................. 52 7. Control Messages .............................................. 53
7.1. Digital Signature of Headers .............................. 53 7.1. Digital Signature of Headers .............................. 53
7.2. Group Control Messages .................................... 53 7.2. Group Control Messages .................................... 54
7.2.1. The 'newgroup' Control Message ........................ 53 7.2.1. The 'newgroup' Control Message ........................ 54
7.2.1.1. The Body of the 'newgroup' Control Message ........ 54 7.2.1.1. The Body of the 'newgroup' Control Message ........ 55
7.2.1.2. Application/news-groupinfo ........................ 54 7.2.1.2. Application/news-groupinfo ........................ 55
7.2.1.3. Initial Articles .................................. 55 7.2.1.3. Initial Articles .................................. 56
7.2.1.4. Example ........................................... 56 7.2.1.4. Example ........................................... 57
7.2.2. The 'rmgroup' Control Message ......................... 57 7.2.2. The 'rmgroup' Control Message ......................... 58
7.2.2.1. Example ........................................... 57 7.2.2.1. Example ........................................... 58
7.2.3. The 'mvgroup' Control Message ......................... 57 7.2.3. The 'mvgroup' Control Message ......................... 58
7.2.3.1. Example ........................................... 59 7.2.3.1. Example ........................................... 60
7.2.4. The 'checkgroups' Control Message ..................... 59 7.2.4. The 'checkgroups' Control Message ..................... 61
7.2.4.1. Application/news-checkgroups ...................... 60 7.2.4.1. Application/news-checkgroups ...................... 62
7.3. Cancel .................................................... 61 7.3. Cancel .................................................... 62
7.4. Ihave, sendme ............................................. 62 7.4. Ihave, sendme ............................................. 63
7.5. Obsolete control messages. ............................... 63 7.5. Obsolete control messages. ............................... 64
8. Duties of Various Agents ...................................... 63 8. Duties of Various Agents ...................................... 64
8.1. General principles to be followed ......................... 63 8.1. General principles to be followed ......................... 65
8.2. Duties of an Injecting Agent .............................. 64 8.2. Duties of an Injecting Agent .............................. 65
8.2.1. Proto-articles ........................................ 64 8.2.1. Proto-articles ........................................ 66
8.2.2. Procedure to be followed by Injecting Agents .......... 64 8.2.2. Procedure to be followed by Injecting Agents .......... 66
8.3. Duties of a Relaying Agent ................................ 66 8.3. Duties of a Relaying Agent ................................ 68
8.4. Duties of a Serving Agent ................................. 67 8.4. Duties of a Serving Agent ................................. 70
8.5. Duties of a Posting Agent ................................. 68 8.5. Duties of a Posting Agent ................................. 70
8.6. Duties of a Followup Agent ................................ 69 8.6. Duties of a Followup Agent ................................ 71
8.7. Duties of a Moderator ..................................... 70 8.7. Duties of a Moderator ..................................... 73
8.8. Duties of a Gateway ....................................... 72 8.8. Duties of a Gateway ....................................... 74
8.8.1. Duties of an Outgoing Gateway ......................... 73 8.8.1. Duties of an Outgoing Gateway ......................... 76
8.8.2. Duties of an Incoming Gateway ......................... 73 8.8.2. Duties of an Incoming Gateway ......................... 76
8.8.3. Example ............................................... 75 8.8.3. Example ............................................... 78
9. Security and Related Considerations ........................... 76 9. Security and Related Considerations ........................... 79
9.1. Leakage ................................................... 76 9.1. Leakage ................................................... 79
9.2. Attacks ................................................... 77 9.2. Attacks ................................................... 80
9.2.1. Denial of Service ..................................... 77 9.2.1. Denial of Service ..................................... 80
9.2.2. Compromise of System Integrity ........................ 78 9.2.2. Compromise of System Integrity ........................ 81
9.3. Liability ................................................. 79 9.3. Liability ................................................. 82
10. IANA Considerations .......................................... 80 10. IANA Considerations .......................................... 82
11. References ................................................... 80 10.1. Media Types .............................................. 82
12. Acknowledgements ............................................. 82 10.2. Header Field Registry .................................... 83
13. Contact Address .............................................. 83 11. References ................................................... 84
Appendix A.1 - A-News Article Format .............................. 84 12. Acknowledgements ............................................. 86
Appendix A.2 - Early B-News Article Format ........................ 84 13. Contact Address .............................................. 87
Appendix A.3 - Obsolete Headers ................................... 85 Appendix A.1 - A-News Article Format .............................. 87
Appendix A.4 - Obsolete Control Messages .......................... 85 Appendix A.2 - Early B-News Article Format ........................ 88
Appendix B - Collected Syntax ..................................... 86 Appendix A.3 - Obsolete Headers ................................... 88
Appendix B.1 - Characters, Atoms and Folding ...................... 86 Appendix A.4 - Obsolete Control Messages .......................... 89
Appendix B.2 - Basic Forms ........................................ 88 News Article Format and Transmission May 2004
Appendix B.3 - Headers ............................................ 89
News Article Format and Transmission November 2003
Appendix B.3.1 - Header outlines .................................. 89 Appendix B - Collected Syntax ..................................... 90
Appendix B.3.2 - Control-message outlines ......................... 91 Appendix B.1 - Characters, Atoms and Folding ...................... 90
Appendix B.3.3 - Other header rules ............................... 92 Appendix B.2 - Basic Forms ........................................ 92
Appendix C - Notices .............................................. 94 Appendix B.3 - Headers ............................................ 93
News Article Format and Transmission November 2003 Appendix B.3.1 - Header outlines .................................. 93
Appendix B.3.2 - Control-message outlines ......................... 95
Appendix B.3.3 - Other header rules ............................... 96
Appendix C - Notices .............................................. 98
News Article Format and Transmission May 2004
1. Introduction 1. Introduction
1.1. Basic Concepts 1.1. Basic Concepts
"Netnews" is a set of protocols for generating, storing and "Netnews" is a set of protocols for generating, storing and
retrieving news "articles" (which resemble email messages) and for retrieving news "articles" (which resemble email messages) and for
exchanging them amongst a readership which is potentially widely exchanging them amongst a readership which is potentially widely
distributed. It is organized around "newsgroups", with the distributed. It is organized around "newsgroups", with the
expectation that each reader will be able to see all articles posted expectation that each reader will be able to see all articles posted
skipping to change at page 7, line 5 skipping to change at page 7, line 5
Usenet in particular, and to set standards to be followed by software Usenet in particular, and to set standards to be followed by software
that implements those protocols. that implements those protocols.
It is NOT the purpose of this standard to settle matters of policy, It is NOT the purpose of this standard to settle matters of policy,
nor aspects of software behaviour which do not impinge upon the nor aspects of software behaviour which do not impinge upon the
generation, transmission, storate and reception of articles, nor how generation, transmission, storate and reception of articles, nor how
the authority of various agencies to exercise control or oversight of the authority of various agencies to exercise control or oversight of
the various parts of Usenet is established. For these purposes, a the various parts of Usenet is established. For these purposes, a
separate Best Current Practice document [USEAGE] is being provided. separate Best Current Practice document [USEAGE] is being provided.
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
Nevertheless, it is assumed that agencies with the necessary Nevertheless, it is assumed that agencies with the necessary
authority will exist, and tools are provided within the protocols for authority will exist, and tools are provided within the protocols for
their use. their use.
1.3. Historical Outline 1.3. Historical Outline
Network news originated as the medium of communication for Usenet, Network news originated as the medium of communication for Usenet,
circa 1980. Since then, Usenet has grown explosively, and many circa 1980. Since then, Usenet has grown explosively, and many
Internet and non-Internet sites participate in it. In addition, the Internet and non-Internet sites participate in it. In addition, the
skipping to change at page 8, line 5 skipping to change at page 8, line 5
"message". A "proto-article" is one that has not yet been injected "message". A "proto-article" is one that has not yet been injected
into the news system. into the news system.
A "message identifier" (5.3) is a unique identifier for an article, A "message identifier" (5.3) is a unique identifier for an article,
usually supplied by the "posting agent" which posted it or, failing usually supplied by the "posting agent" which posted it or, failing
that, by the "injecting agent". It distinguishes the article from that, by the "injecting agent". It distinguishes the article from
every other article ever posted anywhere. Articles with the same every other article ever posted anywhere. Articles with the same
message identifier are treated as if they are the same article message identifier are treated as if they are the same article
regardless of any differences in the body or headers. regardless of any differences in the body or headers.
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
A "newsgroup" is a single news forum, a logical bulletin board, A "newsgroup" is a single news forum, a logical bulletin board,
having a name and nominally intended for articles on a specific having a name and nominally intended for articles on a specific
topic. An article is "posted to" a single newsgroup or several topic. An article is "posted to" a single newsgroup or several
newsgroups. When an article is posted to more than one newsgroup, it newsgroups. When an article is posted to more than one newsgroup, it
is said to be "crossposted"; note that this differs from posting the is said to be "crossposted"; note that this differs from posting the
same text as part of each of several articles, one per newsgroup. same text as part of each of several articles, one per newsgroup.
A newsgroup may be "moderated", in which case submissions are not A newsgroup may be "moderated", in which case submissions are not
posted directly, but mailed to a "moderator" for consideration and posted directly, but mailed to a "moderator" for consideration and
skipping to change at page 9, line 5 skipping to change at page 9, line 5
A "sender" is the person or software (usually, but not always, the A "sender" is the person or software (usually, but not always, the
same as the poster) responsible for the operation of the posting same as the poster) responsible for the operation of the posting
agent or, which amounts to the same thing, for passing the article to agent or, which amounts to the same thing, for passing the article to
the injecting agent. The sender is analogous to [RFC 2822]'s sender. the injecting agent. The sender is analogous to [RFC 2822]'s sender.
An "injecting agent" takes the finished article from the posting An "injecting agent" takes the finished article from the posting
agent (often via the NNTP "post" command) performs some final checks agent (often via the NNTP "post" command) performs some final checks
and passes it on to a relaying agent for general distribution. and passes it on to a relaying agent for general distribution.
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
A "relaying agent" is software which receives allegedly compliant A "relaying agent" is software which receives allegedly compliant
articles from injecting agents and/or other relaying agents, and articles from injecting agents and/or other relaying agents, and
possibly passes copies on to other relaying agents and serving possibly passes copies on to other relaying agents and serving
agents. agents.
A "news database" is the set of articles and related structural A "news database" is the set of articles and related structural
information stored by a serving agent and made available for access information stored by a serving agent and made available for access
by reading agents. by reading agents.
skipping to change at page 10, line 4 skipping to change at page 10, line 4
While "ASCII" is often misused to refer to various character sets While "ASCII" is often misused to refer to various character sets
somewhat similar to X3.4, in this standard "US-ASCII" is used to mean somewhat similar to X3.4, in this standard "US-ASCII" is used to mean
X3.4 and only X3.4. US-ASCII is a 7 bit character set. Please note X3.4 and only X3.4. US-ASCII is a 7 bit character set. Please note
that this standard requires that all agents be 8 bit clean; that is, that this standard requires that all agents be 8 bit clean; that is,
they must accept and transmit data without changing or omitting the they must accept and transmit data without changing or omitting the
8th bit. 8th bit.
Certain words, when capitalized, are used to define the significance Certain words, when capitalized, are used to define the significance
of individual requirements. The key words "MUST", "REQUIRED", of individual requirements. The key words "MUST", "REQUIRED",
"SHOULD", "RECOMMENDED", "MAY" and "OPTIONAL", and any of those words "SHOULD", "RECOMMENDED", "MAY" and "OPTIONAL", and any of those words
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
associated with the word "NOT", are to be interpreted as described in associated with the word "NOT", are to be interpreted as described in
[RFC 2119]. [RFC 2119].
NOTE: The use of "MUST" or "SHOULD" implies a requirement that NOTE: The use of "MUST" or "SHOULD" implies a requirement that
would or could lead to interoperability problems if not would or could lead to interoperability problems if not
followed. followed.
NOTE: A requirement imposed on a relaying or serving agent NOTE: A requirement imposed on a relaying or serving agent
regarding some particular article should be understood as regarding some particular article should be understood as
skipping to change at page 11, line 5 skipping to change at page 11, line 5
2.4. Syntax 2.4. Syntax
The complete syntax defined in this standard is repeated, for The complete syntax defined in this standard is repeated, for
convenience, in Appendix B. convenience, in Appendix B.
2.4.1. Syntax Notation 2.4.1. Syntax Notation
This standard uses the Augmented Backus Naur Form described in [RFC This standard uses the Augmented Backus Naur Form described in [RFC
2234]. 2234].
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
In particular, it makes significant use of the "incremental In particular, it makes significant use of the "incremental
alternative" feature of that notation. For example, the two rules alternative" feature of that notation. For example, the two rules
header = other-header header = other-header
header =/ Date-header header =/ Date-header
are equivalent to the single rule are equivalent to the single rule
header = other-header / Date-header header = other-header / Date-header
2.4.2. Syntax copied from other standards 2.4.2. Syntax copied from other standards
skipping to change at page 12, line 4 skipping to change at page 12, line 4
"&" / "'" / ; Used for atoms "&" / "'" / ; Used for atoms
"*" / "+" / "*" / "+" /
"-" / "/" / "-" / "/" /
"=" / "?" / "=" / "?" /
"^" / "_" / "^" / "_" /
"`" / "{" / "`" / "{" /
"|" / "}" / "|" / "}" /
"~" "~"
atom = [CFWS] 1*atext [CFWS] atom = [CFWS] 1*atext [CFWS]
dot-atom = [CFWS] dot-atom-text [CFWS] dot-atom = [CFWS] dot-atom-text [CFWS]
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
dot-atom-text = 1*atext *( "." 1*atext ) dot-atom-text = 1*atext *( "." 1*atext )
qcontent = qtext / quoted-pair qcontent = qtext / quoted-pair
quoted-string = [CFWS] DQUOTE quoted-string = [CFWS] DQUOTE
*( [FWS] qcontent ) [FWS] *( [FWS] qcontent ) [FWS]
DQUOTE [CFWS] DQUOTE [CFWS]
word = atom / quoted-string word = atom / quoted-string
NOTE: Following [RFC 2234], literal text included in the syntax NOTE: Following [RFC 2234], literal text included in the syntax
is to be regarded as case-insensitive. However, in is to be regarded as case-insensitive. However, in
skipping to change at page 13, line 4 skipping to change at page 13, line 4
parameter = regular-parameter / extended-parameter parameter = regular-parameter / extended-parameter
regular-parameter = [CFWS] regular-parameter-name [CFWS] regular-parameter = [CFWS] regular-parameter-name [CFWS]
"=" value "=" value
regular-parameter-name = attribute [section] regular-parameter-name = attribute [section]
attribute = 1*attribute-char attribute = 1*attribute-char
attribute-char= <any (US-ASCII) CHAR except SPACE, CTLs, attribute-char= <any (US-ASCII) CHAR except SPACE, CTLs,
"*", "'", "%", or tspecials> "*", "'", "%", or tspecials>
tspecials = "(" / ")" / "<" / ">" / "@" / tspecials = "(" / ")" / "<" / ">" / "@" /
"," / ";" / ":" / "\" / DQUOTE / "," / ";" / ":" / "\" / DQUOTE /
"/" / "[" / "]" / "?" / "=" "/" / "[" / "]" / "?" / "="
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
extended-parameter extended-parameter
= ( [CFWS] extended-initial-name [CFWS] = ( [CFWS] extended-initial-name [CFWS]
"=" extended-initial-value ) / "=" extended-initial-value ) /
( [CFWS] extended-other-names [CFWS] ( [CFWS] extended-other-names [CFWS]
"=" extended-other-values ) "=" extended-other-values )
value = [CFWS] token [CFWS] / quoted-string value = [CFWS] token [CFWS] / quoted-string
token = 1*<any (US-ASCII) CHAR except SP, CTLs, token = 1*<any (US-ASCII) CHAR except SP, CTLs,
or tspecials> or tspecials>
skipping to change at page 14, line 4 skipping to change at page 14, line 4
corresponding rules given in [RFC 2822]. corresponding rules given in [RFC 2822].
NOTE: Netnews parsers historically have been much less NOTE: Netnews parsers historically have been much less
permissive than Email parsers, and this is reflected in the permissive than Email parsers, and this is reflected in the
modifications referred to, and in some further specific rules. modifications referred to, and in some further specific rules.
In contradistinction to [RFC 2822], an unstructured header (e.g. a In contradistinction to [RFC 2822], an unstructured header (e.g. a
Subject-header) MUST contain at least one non-whitespace character. Subject-header) MUST contain at least one non-whitespace character.
unstructured = 1*( [FWS] ( utext / encoded-word ) ) [FWS] unstructured = 1*( [FWS] ( utext / encoded-word ) ) [FWS]
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
Extended-phrases (known somewhat confusingly in [RFC 2822] as obs- Extended-phrases (known somewhat confusingly in [RFC 2822] as obs-
phrases) are introduced to allow headers such as phrases) are introduced to allow headers such as
From: Joe Q. Public <joe@public.example> From: Joe Q. Public <joe@public.example>
without the necessity of using a quoted-string. They MUST be accepted without the necessity of using a quoted-string. They MUST be accepted
by compliant software, but they SHOULD NOT be generated until by compliant software, but they SHOULD NOT be generated until
software capable of accepting them has become widely deployed. software capable of accepting them has become widely deployed.
phrase = 1*( [CFWS] encoded-word [CFWS] / word ) / phrase = 1*( [CFWS] encoded-word [CFWS] / word ) /
extended-phrase extended-phrase
skipping to change at page 15, line 4 skipping to change at page 15, line 4
no-fold-quote = DQUOTE no-fold-quote = DQUOTE
*( mqtext / "\\" / "\" DQUOTE ) *( mqtext / "\\" / "\" DQUOTE )
mqspecial mqspecial
*( mqtext / "\\" / "\" DQUOTE ) *( mqtext / "\\" / "\" DQUOTE )
DQUOTE DQUOTE
mqtext = NO-WS-CTL / ; all of <text> except mqtext = NO-WS-CTL / ; all of <text> except
%d33 / ; SP, HTAB, "\", ">" %d33 / ; SP, HTAB, "\", ">"
%d35-61 / ; and DQUOTE %d35-61 / ; and DQUOTE
%d63-91 / %d63-91 /
%d93-126 %d93-126
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
mqspecial = "(" / ")" / ; same as specials except mqspecial = "(" / ")" / ; same as specials except
"<" / ; "\" and DQUOTE quoted "<" / ; "\" and DQUOTE quoted
"[" / "]" / ; and ">" omitted "[" / "]" / ; and ">" omitted
":" / ";" / ":" / ";" /
"@" / "\\" / "@" / "\\" /
"," / "." / "," / "." /
"\" DQUOTE "\" DQUOTE
no-fold-literal = "[" *( mdtext / "\[" / "\]" / "\\" ) "]" no-fold-literal = "[" *( mdtext / "\[" / "\]" / "\\" ) "]"
mdtext = NO-WS-CTL / ; Non white space controls mdtext = NO-WS-CTL / ; Non white space controls
skipping to change at page 15, line 53 skipping to change at page 15, line 53
headers are supported. headers are supported.
o Whitespace is permitted in Newsgroups-headers, permitting folding o Whitespace is permitted in Newsgroups-headers, permitting folding
of such headers. Indeed, all headers can now be folded. of such headers. Indeed, all headers can now be folded.
o An enhanced syntax for the Path-header enables the injection o An enhanced syntax for the Path-header enables the injection
point of and the route taken by an article to be determined with point of and the route taken by an article to be determined with
certainty. certainty.
o Large parts of MIME are recognized as an integral part of o Large parts of MIME are recognized as an integral part of
Netnews. Netnews.
o There is a new Control message 'mvgroup' to facilitate moving a o There is a new Control message 'mvgroup' to facilitate moving a
group to a different place (name) in a hierarchy. group to a different place (name) in a hierarchy.
o There are several new headers defined, notably Archive, o There is a new mandatory Injection-Date-header to facilitate the
Complaints-To, Injector-Info, Mail-Copies-To, Posted-And-Mailed rejection of stale articles.
o There are several new optional headers defined, notably Archive,
Complaints-To, Injection-Info, Mail-Copies-To, Posted-And-Mailed
and User-Agent, leading to increased functionality. and User-Agent, leading to increased functionality.
o Provision has been made for almost all headers to have MIME-style o Provision has been made for almost all headers to have MIME-style
parameters (to be ignored if not recognized), thus facilitating parameters (to be ignored if not recognized), thus facilitating
News Article Format and Transmission May 2004
extension of those headers in future standards. extension of those headers in future standards.
o Certain headers and Control messages (Appendix A.3 and Appendix o Certain headers and Control messages (Appendix A.3 and Appendix
News Article Format and Transmission November 2003
A.4) have been made obsolete. A.4) have been made obsolete.
o Distributions are expected to be checked at the receiving end, as o Distributions are expected to be checked at the receiving end, as
well as the sending end, of a relaying link. well as the sending end, of a relaying link.
o There are numerous other small changes, clarifications and o There are numerous other small changes, clarifications and
enhancements. enhancements.
3.2. Transitional Arrangements 3.2. Transitional Arrangements
An important distinction must be made between serving and relaying An important distinction must be made between serving and relaying
agents, which are responsible for the distribution and storage of agents, which are responsible for the distribution and storage of
skipping to change at page 16, line 58 skipping to change at page 17, line 4
relaying agents. User agents are unaffected. relaying agents. User agents are unaffected.
o The introduction of MIME reflects a practice that is already o The introduction of MIME reflects a practice that is already
widespread. Articles in strict compliance with the previous widespread. Articles in strict compliance with the previous
standards (using strict US-ASCII) will be unaffected. Many user standards (using strict US-ASCII) will be unaffected. Many user
agents already support it, at least to the extent of widely used agents already support it, at least to the extent of widely used
charsets such as ISO-8859-1. Users expecting to read articles charsets such as ISO-8859-1. Users expecting to read articles
using other charsets will need to acquire suitable reading using other charsets will need to acquire suitable reading
agents. It is not intended, in general, that any single user agents. It is not intended, in general, that any single user
agent will be able to display every charset known to IANA, but agent will be able to display every charset known to IANA, but
all such agents MUST support US-ASCII. Serving and relaying all such agents MUST support US-ASCII. Serving and relaying
News Article Format and Transmission May 2004
agents are not affected. agents are not affected.
o The new Control: mvgroup command will need to be implemented in o The new Control: mvgroup command will need to be implemented in
News Article Format and Transmission November 2003
serving agents. For the benefit of older serving agents it is serving agents. For the benefit of older serving agents it is
therefore RECOMMENDED that it be followed shortly by a therefore RECOMMENDED that it be followed shortly by a
corresponding newgroup command and it MUST always be followed by corresponding newgroup command and it MUST always be followed by
a rmgroup command for the old group after a reasonable overlap a rmgroup command for the old group after a reasonable overlap
period. An implementation of the mvgroup command as an alias for period. An implementation of the mvgroup command as an alias for
the newgroup command would thus be minimally conforming. User the newgroup command would thus be minimally conforming. User
agents are unaffected. agents are unaffected.
o Provision is made for relaying and serving agents to use the
Date-header in the case of articles injected through existing
agents which do not provide an Injection-Date-header.
o All the headers newly introduced by this standard can safely be o All the headers newly introduced by this standard can safely be
ignored by existing software, albeit with loss of the new ignored by existing software, albeit with loss of the new
functionality. functionality.
4. Basic Format 4. Basic Format
4.1. Syntax of News Articles 4.1. Syntax of News Articles
The overall syntax of a news article is: The overall syntax of a news article is:
skipping to change at page 17, line 37 skipping to change at page 17, line 42
name-character = ALPHA / DIGIT name-character = ALPHA / DIGIT
other-content = <the content of a header defined by some other-content = <the content of a header defined by some
other standard> other standard>
separator = CRLF separator = CRLF
body = *( *998text CRLF ) body = *( *998text CRLF )
However, the rule given above for header is incomplete. Further However, the rule given above for header is incomplete. Further
alternatives will be added incrementally as the various Netnews alternatives will be added incrementally as the various Netnews
headers are introduced in this standard (or in future extensions), headers are introduced in this standard (or in future extensions),
using the "=/" notation defined in [RFC 2234]. For example, a using the "=/" notation defined in [RFC 2234]. For example, a
typical Usenet-header would be defined as follows: putative "Usenet-header" would be defined as follows:
header =/ Usenet-header header =/ Usenet-header
Usenet-header = "Usenet" ":" SP Usenet-content Usenet-header = "Usenet" ":" SP Usenet-content
*( ";" ( Usenet-parameter / *( ";" ( Usenet-parameter /
extension-parameter ) ) extension-parameter ) )
Usenet-content = <syntax specific to that Usenet-header> Usenet-content = <syntax specific to that Usenet-header>
Usenet-parameter = <a parameter specific to that Usenet-header> Usenet-parameter = <a parameter specific to that Usenet-header>
where the Usenet-parameter, which MUST always be of the same where the Usenet-parameter, which MUST always be of the same
syntactic form as a parameter, is only provided for certain headers, syntactic form as a parameter, is only provided for certain headers,
and even the extension-parameter is omitted in some cases (see and even the extension-parameter is omitted in some cases (see
4.2.2). Observe that "Usenet" is (and MUST be) of the syntactic form 4.2.2). Observe that "Usenet" is (and MUST be) of the syntactic form
of a header-name. of a header-name.
extension-parameter extension-parameter
= <a parameter not defined by this standard> = <a parameter not defined by this standard>
x-attribute = "x-" attribute x-attribute = "x-" attribute
News Article Format and Transmission May 2004
An article consists of some headers followed by a body. An empty line An article consists of some headers followed by a body. An empty line
separates the two. A header begins with a header-name identifying it, separates the two. A header begins with a header-name identifying it,
and can be continued onto subsequent lines as described in section and can be continued onto subsequent lines as described in section
4.2.3. The body is largely unstructured text significant only to the 4.2.3. The body is largely unstructured text significant only to the
News Article Format and Transmission November 2003
poster and the readers. poster and the readers.
NOTE: Terminology here follows the current custom in the news NOTE: Terminology here follows the current custom in the news
community, rather than the [RFC 2822] convention of referring to community, rather than the [RFC 2822] convention of referring to
what is here called a "header" as a "header-field" or "field". what is here called a "header" as a "header-field" or "field".
Note that the separator line MUST be truly empty, not just a line Note that the separator line MUST be truly empty, not just a line
containing white space. Further empty lines following it are part of containing white space. Further empty lines following it are part of
the body, as are empty lines at the end of the article. the body, as are empty lines at the end of the article.
skipping to change at page 18, line 41 skipping to change at page 18, line 45
4.2.1. Naming of Headers 4.2.1. Naming of Headers
Despite the restrictions on header-name syntax imposed by the Despite the restrictions on header-name syntax imposed by the
grammar, relaying, serving and reading agents SHOULD tolerate grammar, relaying, serving and reading agents SHOULD tolerate
header-names containing any US-ASCII printable character other than header-names containing any US-ASCII printable character other than
colon (":", US-ASCII 58). colon (":", US-ASCII 58).
Whilst relaying agents MUST accept, and pass on unaltered, any non- Whilst relaying agents MUST accept, and pass on unaltered, any non-
variant header whose header-name is syntactically correct, and variant header whose header-name is syntactically correct, and
reading agents MUST enable them to be displayed, at least optionally, reading agents MUST at least provide the option of displaying them,
posting and injecting agents SHOULD NOT generate headers other than posting and injecting agents SHOULD NOT generate headers other than
o headers established by this standard or any extension to it; o headers established by this standard or any extension to it;
o those recognized by other IETF-established standards, notably the o those recognized by other IETF-established standards, notably the
Email standard [RFC 2822] and its extensions, excluding any Email standard [RFC 2822] and its extensions, and included in the
explicitly deprecated for Netnews (e.g. see section 9.2.1 for the Permanent Message Header Field Repository maintained by IANA in
deprecated Disposition-Notification-To-header); or, accordance with [KLYNE], but excluding any header explicitly
alternatively, those listed in some future IANA registry of deprecated for Netnews (e.g. see section 9.2.1 for the deprecated
recognized headers; Disposition-Notification-To-header);
o experimental headers beginning with "X-" (as defined in 4.2.5.1); o experimental headers beginning with "X-" (as defined in 4.2.5.1);
o on a provisional basis only, headers related to new protocols o on a provisional basis only, headers related to new protocols
under development which are the subject of (or intended to be the under development which are listed in the Provisional Message
subject of) some IETF-approved RFC (whether Informational, Header Field Repository maintained by IANA in accordance with
Experimental or Standards-Track). [KLYNE].
However, software SHOULD NOT attempt to interpret headers not However, software SHOULD NOT attempt to interpret headers not
News Article Format and Transmission May 2004
specifically intended to be meaningful in the Netnews environment. specifically intended to be meaningful in the Netnews environment.
[However, if [KLYNE], which defines an IANA registry of recognized
headers, becomes accepted before we are done (which is likely), then
that paragraph can be simplified very considerably.]
News Article Format and Transmission November 2003
Header-names are case-insensitive. There is a preferred case Header-names are case-insensitive. There is a preferred case
convention set out in [USEAGE], and which is used in the various convention set out in [USEAGE], and which is used in the various
rules defining headers in this standard. Relaying and reading agents rules defining headers in this standard. Relaying and reading agents
MUST, however, tolerate header-names in any case. MUST, however, tolerate header-names in any case.
4.2.2. MIME-style Parameters 4.2.2. MIME-style Parameters
A few header-specific MIME-style parameters are defined in this A few header-specific MIME-style parameters are defined in this
standard (see 6.12 and 6.19), but there is also provision for generic standard (see 6.12 and 6.19), but there is also provision for generic
skipping to change at page 19, line 56 skipping to change at page 20, line 5
Each header-specific MIME-style parameter introduced in this standard Each header-specific MIME-style parameter introduced in this standard
is described by specifying is described by specifying
(a) its attribute, and (a) its attribute, and
(b) the syntax rule(s) defining the object(s) permitted in its (b) the syntax rule(s) defining the object(s) permitted in its
value. value.
Any parameter, or set of parameters with numbered sections, which, Any parameter, or set of parameters with numbered sections, which,
according to [RFC 2231], is semantically equivalent to an unnumbered according to [RFC 2231], is semantically equivalent to an unnumbered
regular-parameter with that attribute and value may be used. regular-parameter with that attribute and value may be used.
News Article Format and Transmission May 2004
NOTE: If the value is not of the syntactic form of a token and NOTE: If the value is not of the syntactic form of a token and
is not encoded as an extended-value, it is necessary to is not encoded as an extended-value, it is necessary to
encapsulate it within a quoted-string (2.4.2). Observe that the encapsulate it within a quoted-string (2.4.2). Observe that the
syntax of a parameter also allows additional WSP, folding and syntax of a parameter also allows additional WSP, folding and
News Article Format and Transmission November 2003
comments. comments.
The semantics of a parameter is always to associate its attribute The semantics of a parameter is always to associate its attribute
with the object represented by the token, or the semantic value with the object represented by the token, or the semantic value
(2.4.2) of the quoted-string, contained in its value. (2.4.2) of the quoted-string, contained in its value.
For example, the posting-sender-parameter (6.19) is defined to be For example, the posting-sender-parameter (6.19) is defined to be
<a parameter with attribute "sender" and value some sender-value> <a parameter with attribute "sender" and value some sender-value>
where where
sender-value = mailbox / "verified" sender-value = mailbox / "verified"
skipping to change at page 20, line 56 skipping to change at page 21, line 5
otherwise have been interpreted by a non-compliant agent as the otherwise have been interpreted by a non-compliant agent as the
separator between the headers and the body of the article). separator between the headers and the body of the article).
NOTE: This does not lead to semantic ambiguity because, unless NOTE: This does not lead to semantic ambiguity because, unless
specifically stated otherwise, the presence or absence of specifically stated otherwise, the presence or absence of
folding, a comment or additional WSP has no semantic meaning folding, a comment or additional WSP has no semantic meaning
and, in particular, it is a matter of indifference whether it and, in particular, it is a matter of indifference whether it
forms a part of the syntactic construct preceding it or the one forms a part of the syntactic construct preceding it or the one
following it. following it.
News Article Format and Transmission May 2004
NOTE: It may be observed that the content part of every header NOTE: It may be observed that the content part of every header
begins and ends with an optional CFWS (or FWS in the case of a begins and ends with an optional CFWS (or FWS in the case of a
few headers). Moreover, every parameter also begins and ends few headers). Moreover, every parameter also begins and ends
with an optional CFWS. with an optional CFWS.
News Article Format and Transmission November 2003
In accordance with the syntax, the header-name and colon on the first In accordance with the syntax, the header-name and colon on the first
line MUST be followed by a SP (even if the rest of the header is line MUST be followed by a SP (even if the rest of the header is
empty, which in fact cannot occur because this standard defines no empty, which in fact cannot occur because this standard defines no
headers with empty content and extensions MUST NOT do so). Even headers with empty content and extensions MUST NOT do so). Even
though the syntax allows otherwise, at least some visible content though the syntax allows otherwise, at least some visible content
MUST appear on that first line (to avoid the possibility of harm by MUST appear on that first line (to avoid the possibility of harm by
any non-compliant agent that might eliminate a trailing WSP). Posting any non-compliant agent that might eliminate a trailing WSP). Posting
and injecting agents are REQUIRED to enforce these restrictions, and injecting agents are REQUIRED to enforce these restrictions,
deleting any headers with empty content that are encountered, but deleting any headers with empty content that are encountered, but
relaying and serving agents MUST accept and pass on untouched relaying and serving agents MUST accept and pass on untouched
skipping to change at page 21, line 56 skipping to change at page 22, line 4
as they appear as a quoted-pair. Semantically, the enclosing as they appear as a quoted-pair. Semantically, the enclosing
parentheses are not part of the content of the comment; the content parentheses are not part of the content of the comment; the content
is what is contained between the two parentheses. is what is contained between the two parentheses.
Since comments have not hitherto been permitted in news articles, Since comments have not hitherto been permitted in news articles,
except in a few specified places, posters and posting-agents SHOULD except in a few specified places, posters and posting-agents SHOULD
NOT insert them except in those places, namely following mailboxes in NOT insert them except in those places, namely following mailboxes in
From and similar headers (a now deprecated convention for indicating From and similar headers (a now deprecated convention for indicating
the owner of that mailbox), and to indicate the name of the timezone the owner of that mailbox), and to indicate the name of the timezone
in Date-headers. However, compliant software MUST accept them in all in Date-headers. However, compliant software MUST accept them in all
places where they are syntactically allowed. News Article Format and Transmission May 2004
News Article Format and Transmission November 2003 places where they are syntactically allowed.
4.2.5. Header Properties 4.2.5. Header Properties
There are three special properties that may apply to particular There are three special properties that may apply to particular
headers, namely: "experimental", "inheritable", and "variant". When a headers, namely: "experimental", "inheritable", and "variant". When a
header is defined, in this (or any future) standard, as having one header is defined, in this (or any future) standard, as having one
(or possibly more) of these properties, it is subject to special (or possibly more) of these properties, it is subject to special
treatment, as indicated below. treatment, as indicated below.
4.2.5.1. Experimental Headers 4.2.5.1. Experimental Headers
Experimental headers are those whose header-names begin with "X-". Experimental headers are those whose header-names begin with "X-".
They are to be used for experimental Netnews features, or for They are to be used for experimental Netnews features, or for
enabling additional material to be propagated with an article. They enabling additional material to be propagated with an article. They
are not (and will not be) defined by this, or any, standard. are not (and will not be) defined by this, or any, standard.
NOTE: Experimental headers are suitable for situations where NOTE: Experimental headers are suitable for situations where
they need only to be human readable. They are not intended to be they need only to be human readable. They are not intended to be
recognized by widely deployed Netnews software and, should such recognized by widely deployed Netnews software and, should such
a requirement be envisaged, it is preferable to use a normal a requirement be envisaged, it is preferable to arrange for a
header on the provisional basis set out in section 4.2.1. suitable normal header to be included in the Provisional Message
Header Field Repository maintained by IANA in accordance with
[KLYNE].
4.2.5.2. Inheritable Headers 4.2.5.2. Inheritable Headers
Subject only to the overriding ability of the poster to determine the Subject only to the overriding ability of the poster to determine the
contents of the headers in a proto-article, headers with the contents of the headers in a proto-article, headers with the
inheritable property MUST be copied by followup agents (perhaps with inheritable property MUST be copied by followup agents (perhaps with
some modification) into the followup article, and headers without some modification) into the followup article, and headers without
that property MUST NOT be so copied. Examples include: that property MUST NOT be so copied. Examples include:
o Newsgroups (5.5) - copied from the precursor, subject to any o Newsgroups (5.5) - copied from the precursor, subject to any
Followup-To-header. Followup-To-header.
skipping to change at page 22, line 57 skipping to change at page 23, line 4
Headers with the variant property may differ between (or even be Headers with the variant property may differ between (or even be
completely absent from) copies of the same article as stored or completely absent from) copies of the same article as stored or
relayed throughout a Netnews system. The manner of the difference (or relayed throughout a Netnews system. The manner of the difference (or
absence) MUST be as specified in this (or some future) standard. absence) MUST be as specified in this (or some future) standard.
Typically, these headers are modified as articles are propagated, or Typically, these headers are modified as articles are propagated, or
they reflect the status of the article on a particular serving agent, they reflect the status of the article on a particular serving agent,
or cooperating group of such agents. The variant header MAY be placed or cooperating group of such agents. The variant header MAY be placed
anywhere within the headers (though placing it first is recommended). anywhere within the headers (though placing it first is recommended).
The principal examples are: The principal examples are:
News Article Format and Transmission May 2004
o Path (5.6) - augmented at each relaying agent that an article o Path (5.6) - augmented at each relaying agent that an article
passes through. passes through.
o Xref (6.16) - used to keep track of the article locators of o Xref (6.16) - used to keep track of the article locators of
crossposted articles so that reading agents serviced by a crossposted articles so that reading agents serviced by a
News Article Format and Transmission November 2003
particular serving agent can mark such articles as read. particular serving agent can mark such articles as read.
4.3. Body 4.3. Body
The body of an article SHOULD NOT be empty. A posting or injecting The body of an article SHOULD NOT be empty. A posting or injecting
agent which does not reject such an article entirely SHOULD at least agent which does not reject such an article entirely SHOULD at least
issue a warning message to the poster and supply a non-empty body. issue a warning message to the poster and supply a non-empty body.
Note that the separator line MUST be present even if the body is Note that the separator line MUST be present even if the body is
empty. empty.
skipping to change at page 23, line 41 skipping to change at page 23, line 46
NUL) and 13 and 10 (US-ASCII CR and LF, which MUST ONLY appear in the NUL) and 13 and 10 (US-ASCII CR and LF, which MUST ONLY appear in the
combination CRLF which denotes a line separator). combination CRLF which denotes a line separator).
NOTE: this corresponds to the range of octets permitted for MIME NOTE: this corresponds to the range of octets permitted for MIME
"8bit data" [RFC 2045]. Thus raw binary data cannot be "8bit data" [RFC 2045]. Thus raw binary data cannot be
transmitted in an article body except by the use of a Content- transmitted in an article body except by the use of a Content-
Transfer-Encoding such as base64. Transfer-Encoding such as base64.
In particular, transmission paths MUST convey all headers (including In particular, transmission paths MUST convey all headers (including
body part headers and headers within message/rfc822 objects) intact, body part headers and headers within message/rfc822 objects) intact,
even if they contain octets representing non-ASCII charsets. These even if they contain octets in the range 128 to 255. These
requirements include the transmissiom paths between posting agents, requirements include the transmissiom paths between posting agents,
injecting agents, relaying agents, serving agents and reading agents, injecting agents, relaying agents, serving agents and reading agents,
but NOT the paths traversed by Netnews articles that have been but NOT the paths traversed by Netnews articles that have been
gatewayed into Email (8.8.1). gatewayed into Email (8.8.1).
[At some point it will be necessary for the IMAP standards to catch up [At some point it will be necessary for the IMAP standards to catch up
with these requirements.] with these requirements.]
If it comes to a relaying agent's attention that it is being asked to Moreover, a body or body part that uses Content-Transfer-Encoding
pass an article using the Content-Transfer-Encoding "8bit" to a 8bit MUST NOT have that encoding changed to quoted-printable or bas64
relaying agent that does not support it, it SHOULD report this error during transmission, except in the course of gatewaying into some
to its administrator. It MUST refuse to pass the article and MUST NOT other medium such as email (8.8).
re-encode it with different MIME encodings.
NOTE: This strategy will do little harm. The target relaying News Article Format and Transmission May 2004
agent is unlikely to be able to make use of the article on its
own servers, and the usual flooding algorithm will likely find
some alternative route to get the article to destinations where
it is needed.
News Article Format and Transmission November 2003 NOTE: An agent that was incapable of handling 8bit would be
unlikely to be able to make use of the article on its own
servers, and the usual flooding algorithm would likely find some
alternative route to get the article to destinations where it is
needed.
4.4.1. Character Sets within Article Headers 4.4.1. Character Sets within Article Headers
The character set for headers is US-ASCII. Where the use of non- The character set for headers is US-ASCII. Where the use of non-
ASCII characters is required, they MUST be encoded using the MIME ASCII characters is required, they MUST be encoded using the MIME
mechanisms defined in [RFC 2047] and [RFC 2231]. mechanisms defined in [RFC 2047] and [RFC 2231].
Examples: Examples:
Organization: Technische =?iso-8859-1?Q?Universit=E4t_M=FCnchen?= Organization: Technische =?iso-8859-1?Q?Universit=E4t_M=FCnchen?=
Approved: =?iso-8859-1?Q?Fran=E7ois_Faur=E9?= <ff@modsite.example> Approved: =?iso-8859-1?Q?Fran=E7ois_Faur=E9?= <ff@modsite.example>
skipping to change at page 24, line 56 skipping to change at page 25, line 5
material is very likely to contain non-ASCII material itself. material is very likely to contain non-ASCII material itself.
4.5. Size Limits 4.5. Size Limits
Compliant software MUST support headers of at least 998 octets, and Compliant software MUST support headers of at least 998 octets, and
that is the only limit on the length of a header line prescribed by that is the only limit on the length of a header line prescribed by
this standard. However, specific rules to the contrary may apply in this standard. However, specific rules to the contrary may apply in
particular cases (for example, according to [RFC 2047] header lines particular cases (for example, according to [RFC 2047] header lines
containing encoded-words are limited to 76 octets). containing encoded-words are limited to 76 octets).
News Article Format and Transmission May 2004
NOTE: There is NO restriction on the number of lines into which 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 a header may be split, and hence there is NO restriction on the
total length of a header (in particular it may, by suitable total length of a header (in particular it may, by suitable
folding, be made to exceed the 998 octets restriction pertaining folding, be made to exceed the 998 octets restriction pertaining
to a single header line). to a single header line).
News Article Format and Transmission November 2003
The syntax provides for the lines of a body to be up to 998 octets in The syntax provides for the lines of a body to be up to 998 octets in
length, not including the CRLF. All software compliant with this length, not including the CRLF. All software compliant with this
standard MUST support body lines of at least that length, and all standard MUST support body lines of at least that length, and all
such software SHOULD support lines of arbitrary length. In such software SHOULD support lines of arbitrary length. In
particular, relaying agents MUST transmit lines of arbitrary length particular, relaying agents MUST transmit lines of arbitrary length
without truncation or any other modification. without truncation or any other modification.
NOTE: The limit of 998 octets is consistent with the NOTE: The limit of 998 octets is consistent with the
corresponding limit in [RFC 2822]. In practice, lines will be corresponding limit in [RFC 2822]. In practice, lines will be
much shorter, and [USEAGE] suggests a default limit of 79 much shorter, and [USEAGE] suggests a default limit of 79
skipping to change at page 25, line 46 skipping to change at page 25, line 52
Subject: Announcing a new sample article. Subject: Announcing a new sample article.
Date: Wed, 27 Mar 2002 12:12:50 +0300 Date: Wed, 27 Mar 2002 12:12:50 +0300
Approved: example.announce moderator <jsmith@site.example> Approved: example.announce moderator <jsmith@site.example>
Followup-To: example.chat Followup-To: example.chat
Reply-To: Ann Example <a.example+replies@site1.example> Reply-To: Ann Example <a.example+replies@site1.example>
Expires: Mon, 22 Apr 2002 12:12:50 +0300 Expires: Mon, 22 Apr 2002 12:12:50 +0300
Organization: Site1, The Number one site for examples. Organization: Site1, The Number one site for examples.
User-Agent: ExampleNews/3.14 (Unix) User-Agent: ExampleNews/3.14 (Unix)
Keywords: example, announcement, standards, RFC 1036, Usefor Keywords: example, announcement, standards, RFC 1036, Usefor
Summary: The URL for the next standard. Summary: The URL for the next standard.
Injector-Info: injector.site.example; posting-host=du003.site.example Injection-Info: injector.site.example; posting-host=du003.site.example
Complaints-To: abuse@site.example Complaints-To: abuse@site.example
Injection-Date: Mon, 22 Apr 2002 13:22:40 +0300
Just a quick announcement that a new standard example article has Just a quick announcement that a new standard example article has
been released; it is in the new [USEFOR] standard obtainable from been released; it is in the new [USEFOR] standard obtainable from
ftp.ietf.org. ftp.ietf.org.
News Article Format and Transmission May 2004
Ann. Ann.
-- --
Ann Example <a.example@site1.example> Sample Poster to the Stars Ann Example <a.example@site1.example> Sample Poster to the Stars
"The opinions in this article are bloody good ones" - J. Clarke. "The opinions in this article are bloody good ones" - J. Clarke.
[The RFC Editor is invited to change the above Date and Expires headers [The RFC Editor is invited to change the above Date, Injection-Date and
to match the actual publication dates and to insert its correct URL.] Expires headers to match the actual publication dates and to insert its
News Article Format and Transmission November 2003 correct URL.]
5. Mandatory Headers 5. Mandatory Headers
An article MUST have one, and only one, of each of the following An article MUST have one, and only one, of each of the following
headers: Date, From, Message-ID, Subject, Newsgroups, Path. headers: Date, From, Message-ID, Subject, Newsgroups, Path.
Note also that there are situations, discussed in the relevant parts Note also that there are situations, discussed in the relevant parts
of section 6, where References-, Sender-, or Approved-headers are of section 6, where References-, Sender-, or Approved-headers are
mandatory. mandatory.
skipping to change at page 26, line 35 skipping to change at page 26, line 45
header =/ Date-header header =/ Date-header
Date-header = "Date" ":" SP Date-content Date-header = "Date" ":" SP Date-content
Date-content = date-time Date-content = date-time
The date-time MUST be semantically valid as required by [RFC 2822]. The date-time MUST be semantically valid as required by [RFC 2822].
Although folding white space is permitted throughout the date-time Although folding white space is permitted throughout the date-time
syntax, it is RECOMMENDED that a single space be used in each place syntax, it is RECOMMENDED that a single space be used in each place
that FWS appears (whether it is required or optional). that FWS appears (whether it is required or optional).
In order to prevent the reinjection of expired articles into the news The date-time MUST NOT be more than 24 hours into the future
stream, relaying and serving agents MUST refuse "stale" articles (injecting agents will reject such articles, possibly even when the
whose Date-header predates the earliest articles of which they margin is less than 24 hours - see 8.2.2 - and MAY also reject them
normally keep record, or which is more than 24 hours into the future if it is inordinately far into the past). Relaying agents MUST NOT
(though they MAY use a margin less than that 24 hours). Relaying modify the Date-header in transit.
agents MUST NOT modify the Date-header in transit.
5.1.1. Examples 5.1.1. Examples
Date: Sat, 26 May 2001 11:13:00 -0500 (EST) Date: Sat, 26 May 2001 11:13:00 -0500 (EST)
Date: 26 May 2001 16:13 +0000 Date: 26 May 2001 16:13 +0000
Date: 26 May 2001 16:13 GMT (Obsolete) Date: 26 May 2001 16:13 GMT (Obsolete)
News Article Format and Transmission May 2004
5.2. From 5.2. From
The From-header contains the email address(es), possibly including The From-header contains the email address(es), possibly including
the full name(s), of the article's poster(s), or of the person or the full name(s), of the article's poster(s), or of the person or
agent on whose behalf the article is posted (see the Sender-header, agent on whose behalf the article is posted (see the Sender-header,
6.2). The content syntax makes use of syntax defined in [RFC 2822]. 6.2). The content syntax makes use of syntax defined in [RFC 2822].
header =/ From-header header =/ From-header
From-header = "From" ":" SP From-content From-header = "From" ":" SP From-content
From-content = mailbox-list From-content = mailbox-list
News Article Format and Transmission November 2003
NOTE: Observe that there is no provision for parameters in this NOTE: Observe that there is no provision for parameters in this
header, or in other headers containing addresses likely to be header, or in other headers containing addresses likely to be
used for sending email (see 4.2.2). When, for whatever reason, used for sending email (see 4.2.2). When, for whatever reason,
a poster does not wish to use a valid address, the mailbox a poster does not wish to use a valid address, the mailbox
concerned SHOULD end in the top level domain ".invalid" [RFC concerned SHOULD end in the top level domain ".invalid" [RFC
2606]. 2606].
5.2.1. Examples: 5.2.1. Examples:
skipping to change at page 27, line 48 skipping to change at page 28, line 5
Message-ID-header = "Message-ID" ":" SP Message-ID-content Message-ID-header = "Message-ID" ":" SP Message-ID-content
Message-ID-content = [FWS] msg-id [FWS] Message-ID-content = [FWS] msg-id [FWS]
The msg-id 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 NOTE: The length restriction ensures that systems which accept
message identifiers as a parameter when retrieving an article message identifiers as a parameter when retrieving an article
(e.g. [NNTP]) can rely on a bounded length. Observe that msg-id (e.g. [NNTP]) can rely on a bounded length. Observe that msg-id
includes the '<' and '>'. includes the '<' and '>'.
News Article Format and Transmission May 2004
Observe that, in contrast to the corresponding header in [RFC Observe that, in contrast to the corresponding header in [RFC
2822], the syntax does not allow comments within the Message- 2822], the syntax does not allow comments within the Message-
ID-header; this is to simplify processing by relaying and ID-header; this is to simplify processing by relaying and
serving agents and to ensure interoperability with existing serving agents and to ensure interoperability with existing
implementations. implementations.
An agent generating an article's message identifier MUST ensure that An agent generating an article's message identifier MUST ensure that
it is unique (as also required in [RFC 2822]) and that it is chosen it is unique (as also required in [RFC 2822]) and that it is chosen
in such a way that it will NEVER be applied to any other Netnews in such a way that it will NEVER be applied to any other Netnews
article or Email message. However, an article emailed (without article or Email message. However, an article emailed (without
encapsulation) to a moderator (8.2.2 and 8.7) or gatewayed into some encapsulation) to a moderator (8.2.2 and 8.7) or gatewayed into some
other medium (8.8.1) SHOULD retain the same message identifier other medium (8.8.1) SHOULD retain the same message identifier
News Article Format and Transmission November 2003
throughout its travels so long as it remains recognizably the same throughout its travels so long as it remains recognizably the same
article. article.
Even though commonly derived from the domain name of the originating Even though commonly derived from the domain name of the originating
site (and domain names are case-insensitive), a message identifier site (and domain names are case-insensitive), a message identifier
MUST NOT be altered in any way during transport, or when copied (as MUST NOT be altered in any way during transport, or when copied (as
into a References-header), and thus a simple (case-sensitive) into a References-header), and thus a simple (case-sensitive)
comparison of octets will always suffice to recognize that same comparison of octets will always suffice to recognize that same
message identifier wherever it subsequently reappears. message identifier wherever it subsequently reappears.
skipping to change at page 28, line 29 skipping to change at page 28, line 42
or copying in email systems. or copying in email systems.
NOTE: Some old software may treat message identifiers that NOTE: Some old software may treat message identifiers that
differ only in case within their id-right part as equivalent, differ only in case within their id-right part as equivalent,
and implementors of agents that generate message identifiers and implementors of agents that generate message identifiers
should be aware of this. should be aware of this.
5.4. Subject 5.4. Subject
The Subject-header contains a short string identifying the topic of The Subject-header contains a short string identifying the topic of
the message. This is an inheritable header (4.2.5.2), normally to be the article. This is an inheritable header (4.2.5.2), normally to be
copied into the Subject-header of any followup with the possible copied into the Subject-header of any followup with the possible
addition of a back-reference as described in B.6. addition of a back-reference as described in B.6.
header =/ Subject-header header =/ Subject-header
Subject-header = "Subject" ":" SP Subject-content Subject-header = "Subject" ":" SP Subject-content
Subject-content = unstructured Subject-content = unstructured
NOTE: The syntax of unstructured differs from that prescribed in NOTE: The syntax of unstructured differs from that prescribed in
[RFC 2822], so ensuring that the Subject-content is not [RFC 2822], so ensuring that the Subject-content is not
permitted to be completely empty, or to consist of WSP only. permitted to be completely empty, or to consist of WSP only.
5.5. Newsgroups 5.5. Newsgroups
The Newsgroups-header's content specifies the newsgroup(s) in which The Newsgroups-header's content specifies the newsgroup(s) in which
the article is intended to appear. It is an inheritable header the article is intended to appear. It is an inheritable header
(4.2.5.2) which then becomes the default Newsgroups-header of any (4.2.5.2) which then becomes the default Newsgroups-header of any
followup, unless a Followup-To-header is present to prescribe followup, unless a Followup-To-header is present to prescribe
otherwise (see 8.6). Articles MUST NOT be passed between relaying otherwise (see 8.6). Articles MUST NOT be passed between relaying
News Article Format and Transmission May 2004
agents or to serving agents unless the sending agent has been agents or to serving agents unless the sending agent has been
configured to supply and the receiving agent to receive at least one configured to supply and the receiving agent to receive at least one
of the newsgroup-names in the Newsgroups-header. of the newsgroup-names in the Newsgroups-header.
header =/ Newsgroups-header header =/ Newsgroups-header
Newsgroups-header = "Newsgroups" ":" SP Newsgroups-content Newsgroups-header = "Newsgroups" ":" SP Newsgroups-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Newsgroups-content = [FWS] newsgroup-name Newsgroups-content = [FWS] newsgroup-name
*( [FWS] ng-delim [FWS] newsgroup-name ) *( [FWS] ng-delim [FWS] newsgroup-name )
[FWS] [FWS]
newsgroup-name = component *( "." component ) newsgroup-name = component *( "." component )
component = 1*component-grapheme component = 1*component-grapheme
News Article Format and Transmission November 2003
ng-delim = "," ng-delim = ","
component-grapheme = DIGIT / ALPHA / "+" / "-" / "_" component-grapheme = DIGIT / ALPHA / "+" / "-" / "_"
[Maybe some better word for 'grapheme'.] [Maybe some better word for 'grapheme'.]
NOTE: Observe that the syntax does not allow comments within the NOTE: Observe that the syntax does not allow comments within the
Newsgroups-header; this is to simplify processing by relaying Newsgroups-header; this is to simplify processing by relaying
and serving agents which have a requirement to process this and serving agents which have a requirement to process this
header extremely rapidly. header extremely rapidly.
Components beginning with underline ("_") are reserved for use by Components beginning with underline ("_") are reserved for use by
skipping to change at page 29, line 47 skipping to change at page 30, line 5
agencies SHOULD establish and promulgate the restrictions they intend agencies SHOULD establish and promulgate the restrictions they intend
to apply within their own hierarchies. to apply within their own hierarchies.
NOTE: These issues are discussed more fully in [USEAGE]. The NOTE: These issues are discussed more fully in [USEAGE]. The
following policy restrictions represent what is considered safe following policy restrictions represent what is considered safe
and appropriate at the present time. Although purely advisory, and appropriate at the present time. Although purely advisory,
hierarchy administrators should consider the consequences hierarchy administrators should consider the consequences
carefully before allowing them to be exceeded. They could also carefully before allowing them to be exceeded. They could also
be taken as the defaults in unmanaged hierarchies. be taken as the defaults in unmanaged hierarchies.
News Article Format and Transmission May 2004
1. Uppercase letters are forbidden. 1. Uppercase letters are forbidden.
2. A component name is forbidden to consist entirely of digits. 2. A component name is forbidden to consist entirely of digits.
3. A component is limited to 30 component-graphemes and a 3. A component is limited to 30 component-graphemes and a
newsgroup-name to 66 component-graphemes (counting also the newsgroup-name to 66 component-graphemes (counting also the
'.'s separating the components). '.'s separating the components).
Serving and relaying agents MUST accept any syntactially correct Serving and relaying agents MUST accept any syntactially correct
newsgroup-name even if it would violate whatever policy restrictions newsgroup-name even if it would violate whatever policy restrictions
may be in place. Posting and injecting agents MAY enforce them (but may be in place. Posting and injecting agents MAY enforce them (but
only with the explicit agreement of the poster). only with the explicit agreement of the poster).
News Article Format and Transmission November 2003
The inclusion of folding white space within a Newsgroups-content is a The inclusion of folding white space within a Newsgroups-content is a
newly introduced feature in this standard. It MUST be accepted by all newly introduced feature in this standard. It MUST be accepted by all
conforming implementations (relaying agents, serving agents and conforming implementations (relaying agents, serving agents and
reading agents). Posting agents should be aware that such postings reading agents). Posting agents should be aware that such postings
may be rejected by overly-critical old-style relaying agents. When a may be rejected by overly-critical old-style relaying agents. When a
sufficient number of relaying agents are in conformance, posting sufficient number of relaying agents are in conformance, posting
agents SHOULD generate such whitespace in the form of <CRLF WSP> so agents SHOULD generate such whitespace in the form of <CRLF WSP> so
as to keep the length of lines in the relevant headers (notably as to keep the length of lines in the relevant headers (notably
Newsgroups and Followup-To) to a reasonable length (such as 79 Newsgroups and Followup-To) to a reasonable length (such as 79
characters, which is likely to be displayed satisfactorily by most characters, which is likely to be displayed satisfactorily by most
skipping to change at page 30, line 48 skipping to change at page 31, line 4
to the poster). to the poster).
5.5.1. Forbidden newsgroup-names 5.5.1. Forbidden newsgroup-names
The following forms of newsgroup-name MUST NOT be used except for the The following forms of newsgroup-name MUST NOT be used except for the
specific purposes indicated: specific purposes indicated:
o Newsgroup-names having only one component. These are reserved for o Newsgroup-names having only one component. These are reserved for
newsgroups whose propagation is restricted to a single host or newsgroups whose propagation is restricted to a single host or
local network, and for pseudo-newsgroups such as "poster" (which local network, and for pseudo-newsgroups such as "poster" (which
News Article Format and Transmission May 2004
has special meaning in the Followup-To-header - see section 6.7), has special meaning in the Followup-To-header - see section 6.7),
"junk" (often used by serving agents), and "control" (likewise); "junk" (often used by serving agents), and "control" (likewise);
o Any newsgroup-name beginning with "control." (used as pseudo- o Any newsgroup-name beginning with "control." (used as pseudo-
newsgroups by many serving agents); newsgroups by many serving agents);
o Any newsgroup-name containing the component "ctl" (likewise); o Any newsgroup-name containing the component "ctl" (likewise);
o "to" or any newsgroup-name beginning with "to." (reserved for the o "to" or any newsgroup-name beginning with "to." (reserved for the
ihave/sendme protocol described in section 7.4, and for test ihave/sendme protocol described in section 7.4, and for test
messages sent on an essentially point-to-point basis); articles sent on an essentially point-to-point basis);
o Any newsgroup-name beginning with "example." (reserved for o Any newsgroup-name beginning with "example." (reserved for
examples in this and other standards); examples in this and other standards);
o Any newsgroup-name containing the component "all" (because this o Any newsgroup-name containing the component "all" (because this
is used as a wildcard in some implementations). is used as a wildcard in some implementations).
News Article Format and Transmission November 2003
A newsgroup-name SHOULD NOT appear more than once in the Newsgroups- A newsgroup-name SHOULD NOT appear more than once in the Newsgroups-
header. The order of newsgroup-names in the Newsgroups-header is not header. The order of newsgroup-names in the Newsgroups-header is not
significant, except for determining which moderator to send the significant, except for determining which moderator to send the
article to if more than one of the groups is moderated (see 8.2). article to if more than one of the groups is moderated (see 8.2).
5.6. Path 5.6. Path
The Path-header shows the route taken by a message since its entry The Path-header shows the route taken by an article since its entry
into the Netnews system. It is a variant header (4.2.5.3), each agent into the Netnews system. It is a variant header (4.2.5.3), each agent
that processes an article being required to add one (or more) entries that processes an article being required to add one (or more) entries
to it. This is primarily to enable relaying agents to avoid sending to it. This is primarily to enable relaying agents to avoid sending
articles to sites already known to have them, in particular the site articles to sites already known to have them, in particular the site
they came from, and additionally to permit tracing the route articles they came from, and additionally to permit tracing the route articles
take in moving over the network, and for gathering Usenet statistics. take in moving over the network, and for gathering Usenet statistics.
Finally the presence of a '%' path-delimiter in the Path-header can Finally the presence of a '%' path-delimiter in the Path-header can
be used to identify an article injected in conformance with this be used to identify an article injected in conformance with this
standard. standard.
skipping to change at page 31, line 47 skipping to change at page 32, line 5
NOTE: A Path-content will inevitably contain at least one path- NOTE: A Path-content will inevitably contain at least one path-
identity, except possibly in the case of a proto-article that identity, except possibly in the case of a proto-article that
has not yet been injected onto the network. has not yet been injected onto the network.
NOTE: Observe that the syntax does not allow comments within the NOTE: Observe that the syntax does not allow comments within the
Path-header; this is to simplify processing by relaying and Path-header; this is to simplify processing by relaying and
injecting agents which have a requirement to process this header injecting agents which have a requirement to process this header
extremely rapidly. extremely rapidly.
News Article Format and Transmission May 2004
A relaying agent SHOULD NOT pass an article to another relaying agent A relaying agent SHOULD NOT pass an article to another relaying agent
whose path-identity (or some known alias thereof) already appears in whose path-identity (or some known alias thereof) already appears in
the Path-content. Since the comparison may be either case sensitive the Path-content. Since the comparison may be either case sensitive
or case insensitive, relaying agents SHOULD NOT generate a name which or case insensitive, relaying agents SHOULD NOT generate a name which
differs from that of another site only in terms of case. differs from that of another site only in terms of case.
A relaying agent MAY decline to accept an article if its own path- A relaying agent MAY decline to accept an article if its own path-
identity is already present in the Path-content or if the Path- identity is already present in the Path-content or if the Path-
content contains some path-identity whose articles the relaying agent content contains some path-identity whose articles the relaying agent
does not want, as a matter of local policy. does not want, as a matter of local policy.
NOTE: This last facility is sometimes used to detect and decline NOTE: This last facility is sometimes used to detect and decline
control messages (notably cancel messages) which have been control messages (notably cancel messages) which have been
deliberately seeded with a path-identity to be "aliased out" by deliberately seeded with a path-identity to be "aliased out" by
News Article Format and Transmission November 2003
sites not wishing to act upon them. sites not wishing to act upon them.
5.6.2. Adding a path-identity to the Path-header 5.6.2. Adding a path-identity to the Path-header
When an injecting, relaying or serving agent receives an article, it When an injecting, relaying or serving agent receives an article, it
MUST prepend its own path-identity followed by a path-delimiter to MUST prepend its own path-identity followed by a path-delimiter to
the beginning of the Path-content. In addition, it SHOULD then add the beginning of the Path-content. In addition, it SHOULD then add
CRLF and WSP if it would otherwise result in a line longer than 79 CRLF and WSP if it would otherwise result in a line longer than 79
characters. characters.
The path-identity added MUST be unique to that agent. To this end it The path-identity added MUST be unique to that agent. To this end it
SHOULD be one of: SHOULD be one of:
1. A fully qualified domain name (FQDN) associated (by the Internet 1. A fully qualified domain name (FQDN) associated (by the Internet
DNS service [RFC 1034]) with an A record, which SHOULD identify DNS service [RFC 1034]) with an A record, which SHOULD identify
the actual machine prepending this path-identity. Ideally, this the actual machine prepending this path-identity. Ideally, this
FQDN should also be "mailable" (see below). FQDN should also be "mailable" (see later in this section).
2. A fully qualified domain name (FQDN) associated (by the Internet 2. A fully qualified domain name (FQDN) associated (by the Internet
DNS service) with an MX record, which MUST be "mailable". DNS service) with an MX record, which MUST be "mailable".
3. An arbitrary name believed to be unique and registered at least 3. An arbitrary name believed to be unique and registered at least
with all sites immediately downstream from the given site. with all sites which receive articles directly from the given
site.
4. An encoding of an IP address - <IPv4address> or <IPv6address> [RFC 4. An encoding of an IP address - <IPv4address> or <IPv6address> [RFC
2373] (the requirement to be able to use an <IPv6address> is the 2373] (the requirement to be able to use an <IPv6address> is the
reason for including ':' as an allowed character within a path- reason for including ':' as an allowed character within a path-
identity). identity).
The FQDN of an agent is "mailable" if the administrators of that The FQDN of an agent is "mailable" if the administrators of that
agent can be reached by email using both of the forms "usenet@<FQDN>" agent can be reached by email using both of the forms "usenet@<FQDN>"
and "news@<FQDN>", in conformity with [RFC 2142]. and "news@<FQDN>", in conformity with [RFC 2142].
Of the above options, nos. 1 to 3 are much to be preferred, unless Of the above options, nos. 1 to 3 are much to be preferred, unless
there are strong technical reasons dictating otherwise. In there are strong technical reasons dictating otherwise. In
particular, the injecting agent's path-identity MUST, as a special particular, the injecting agent's path-identity MUST, as a special
case, be an FQDN as in option 1 or option 2, and MUST be mailable. case, be an FQDN as in option 1 or option 2, and MUST be mailable.
Additionally, in the case of an injecting agent offering its services Additionally, in the case of an injecting agent offering its services
to the general public, its administrators MUST also be reachable to the general public, its administrators MUST also be reachable
News Article Format and Transmission May 2004
using the form "abuse@<FQDN>" UNLESS a more specific complaints using the form "abuse@<FQDN>" UNLESS a more specific complaints
address has been specified in a Complaints-To-header (6.20). address has been specified in a Complaints-To-header (6.20).
[Suggested alternative for 1st two sentences:
For injecting agents, the path-identity MUST be option 1 or 2. For
other agents, options 1 through 3 are preferrable.]
The injecting agent's path-identity MUST be followed by the special The injecting agent's path-identity MUST be followed by the special
path-delimiter '%' which serves to separate the pre-injection and path-delimiter '%' which serves to separate the pre-injection and
post-injection regions of the Path-content (see 5.6.3). post-injection regions of the Path-content (see 5.6.3).
In the case of a relaying or serving agent, the path-delimiter is In the case of a relaying or serving agent, the path-delimiter is
chosen as follows. When such an agent receives an article, it MUST chosen as follows. When such an agent receives an article, it MUST
establish the identity of the source and compare it with the leftmost establish the identity of the source and compare it with the leftmost
path-identity of the Path-content. If it matches, a '/' should be path-identity of the Path-content. If it matches, a '/' should be
used as the path-delimiter when prepending the agent's own path- used as the path-delimiter when prepending the agent's own path-
identity. If it does not match then the agent should prepend two identity. If it does not match then the agent should prepend two
entries to the Path-content; firstly the true established path- entries to the Path-content; firstly the true established path-
identity of the source followed by a '?' path-delimiter, and then, identity of the source followed by a '?' path-delimiter, and then,
News Article Format and Transmission November 2003
to the left of that, the agent's own path-identity followed by a '/' to the left of that, the agent's own path-identity followed by a '/'
path-delimiter as usual. This prepending of two entries SHOULD NOT path-delimiter as usual. This prepending of two entries SHOULD NOT
be done if the provided and established identities match. be done if the provided and established identities match.
Any method of establishing the identity of the source may be used Any method of establishing the identity of the source may be used
with the consideration that, in the event of problems, the agent with the consideration that, in the event of problems, the agent
concerned may be called upon to justify it. concerned may be called upon to justify it.
NOTE: The use of the '%' path-delimiter marks the position of NOTE: The use of the '%' path-delimiter marks the position of
the injecting agent in the chain. In normal circumstances there the injecting agent in the chain. In normal circumstances there
should therefore be only one '%' path-delimiter present, and should therefore be only one '%' path-delimiter present. If more
injecting agents MAY choose to reject proto-articles with a '%' than one '%' is found, then the article has evidently been
already in them. If, for whatever reason, more than one '%' is reinjected (8.2) at some stage, in which case the path-identity
found, then the path-identity in front of the leftmost '%' is to in front of the leftmost '%' is to be regarded as the true
be regarded as the true injecting agent. injecting agent.
5.6.3. The tail-entry 5.6.3. The tail-entry
For historical reasons, the tail-entry (i.e. the rightmost entry in For historical reasons, the tail-entry (i.e. the rightmost entry in
the Path-content) is regarded as a "user name", and therefore MUST the Path-content) is regarded as a "user name", and therefore MUST
NOT be interpreted as a site through which the article has already NOT be interpreted as a site through which the article has already
passed. Moreover, the Path-content as a whole is not an email address passed. Moreover, the Path-content as a whole is not an email address
and MUST NOT be used to contact the poster. Posting and/or injecting and MUST NOT be used to contact the poster. Posting and/or injecting
agents MAY place any string here. When it is not an actual user agents MAY place any string here. When it is not an actual user
name, the string "not-for-mail" is often used. name, the string "not-for-mail" is often used.
Often this field will be the only entry in the region (known as the Often this field will be the only entry in the region (known as the
pre-injection region) after the '%', although there may be entries pre-injection region) after the '%', although there may be entries
corresponding to machines traversed between the posting agent and the corresponding to machines traversed between the posting agent and the
injecting agent proper. In particular, injecting agents that receive injecting agent proper. In particular, injecting agents that receive
articles from many sources MAY include information to establish the articles from many sources MAY include information to establish the
circumstances of the injection such as the identity of the source circumstances of the injection such as the identity of the source
machine (especially if an Injector-Info-header (6.19) is not being machine (especially if an Injection-Info-header (6.19) is not being
provided). Any such inclusion SHOULD NOT conflict with any genuine provided). Any such inclusion SHOULD NOT conflict with any genuine
site identifier. The '!' path-delimiter may be used freely within site identifier. The '!' path-delimiter may be used freely within
the pre-injection region, although '/' and '?' are also appropriate the pre-injection region, although '/' and '?' are also appropriate
News Article Format and Transmission May 2004
if used correctly. if used correctly.
5.6.4. Path-Delimiter Summary 5.6.4. Path-Delimiter Summary
A summary of the various path-delimiters. The name immediately to the A summary of the various path-delimiters. The name immediately to the
left of the path-delimiter is always that of the machine which added left of the path-delimiter is always that of the machine which added
the path-delimiter. the path-delimiter.
'/' The name immediately to the right is known to be the identity of '/' The name immediately to the right is known to be the identity of
the machine from which the article was received (either because the machine from which the article was received (either because
the entry was made by that machine and we have verified it, or the entry was made by that machine and we have verified it, or
because we have added it ourselves). because we have added it ourselves).
'?' The name immediately to the right is the claimed identity of the '?' The name immediately to the right is the claimed identity of the
machine from which the article was received, but we were unable machine from which the article was received, but we were unable
to verify it (and have prepended our own view of where it came to verify it (and have prepended our own view of where it came
from, and then a '/'). from, and then a '/').
News Article Format and Transmission November 2003
'%' Everything to the right is the pre-injection region followed by '%' Everything to the right is the pre-injection region followed by
the tail-entry. The name on the left is the FQDN of the the tail-entry. The name on the left is the FQDN of the
injecting agent. The presence of two '%'s in a path indicates a injecting agent. The presence of two '%'s in a path indicates a
double-injection (see 8.2.2). reinjection (see 8.2.2).
'!' The name immediately to the right is unverified. The presence of '!' The name immediately to the right is unverified. The presence of
a '!' to the left of the '%' indicates that the identity to the a '!' to the left of the '%' indicates that the identity to the
left is that of an old-style system not conformant with this left is that of an old-style system not conformant with this
standard. standard.
',' Reserved for future use, treat as '/'. ',' Reserved for future use, treat as '/'.
Other Other
Old software may possibly use other path-delimiters, which should Old software may possibly use other path-delimiters, which should
be treated as '!'. But note in particular that ':', '-' and '_' be treated as '!'. But note in particular that ':', '-' and '_'
are components of names, not path-delimiters, and FWS on its own are components of names, not path-delimiters, and FWS on its own
MUST NOT be used as the sole path-delimiter. MUST NOT be used as the sole path-delimiter.
NOTE: Old Netnews relaying and injecting agents almost all NOTE: Old Netnews relaying and injecting agents almost all
delimit Path entries with a '!', and these entries are not delimit Path entries with a '!', and these entries are not
verified. The presence of '%' indicates that the article was verified. The presence of '%' indicates that the article was
injected by software conforming to this standard, and the injected by software conforming to this standard, and the
presence of '!' to the left of a '%' indicates that the message presence of '!' to the left of a '%' indicates that the article
passed through systems developed prior to this standard. It is passed through systems developed prior to this standard. It is
anticipated that relaying agents will reject articles in the old anticipated that relaying agents will reject articles in the old
style once this new standard has been widely adopted. style once this new standard has been widely adopted.
5.6.5. Example 5.6.5. Example
Path: foo.isp.example/ Path: foo.isp.example/
foo-server/bar.isp.example?10.123.12.2/old.site.example! foo-server/bar.isp.example?10.123.12.2/old.site.example!
barbaz/baz.isp.example%dialup123.baz.isp.example!x barbaz/baz.isp.example%dialup123.baz.isp.example!x
NOTE: That article was injected into the news stream by NOTE: That article was injected into the news stream by
baz.isp.example (complaints may be addressed to baz.isp.example (complaints may be addressed to
abuse@baz.isp.example). The injector has taken care to record abuse@baz.isp.example). The injector has taken care to record
News Article Format and Transmission May 2004
that it got it from dialup123.baz.isp.example. "x" is a dummy that it got it from dialup123.baz.isp.example. "x" is a dummy
tail-entry, though sometimes a real userid is put there. tail-entry, though sometimes a real userid is put there.
The article was relayed, perhaps by UUCP, to the machine known, The article was relayed, perhaps by UUCP, to the machine known,
at least to its downstream, as "barbaz". at least to old.site.example, as "barbaz".
Barbaz relayed it to old.site.example, which does not yet Barbaz relayed it to old.site.example, which does not yet
conform to this standard (hence the '!' path-delimiter). So one conform to this standard (hence the '!' path-delimiter). So one
cannot be sure that it really came from barbaz. cannot be sure that it really came from barbaz.
Old.site.example relayed it to a site claiming to have the IP Old.site.example relayed it to a site claiming to have the IP
address [10.123.12.2], and claiming (by using the '/' path- address [10.123.12.2], and claiming (by using the '/' path-
delimiter) to have verified that it came from old.site.example. delimiter) to have verified that it came from old.site.example.
[10.123.12.2] relayed it to "foo-server" which, not being [10.123.12.2] relayed it to "foo-server" which, not being
convinced that it truly came from [10.123.12.2], did a reverse convinced that it truly came from [10.123.12.2], did a reverse
lookup on the actual source and concluded it was known as lookup on the actual source and concluded it was known as
bar.isp.example (that is not to say that [10.123.12.2] was not a bar.isp.example (that is not to say that [10.123.12.2] was not a
News Article Format and Transmission November 2003
correct IP address for bar.isp.example, but simply that that correct IP address for bar.isp.example, but simply that that
connection could not be substantiated by foo-server). Observe connection could not be substantiated by foo-server). Observe
that foo-server has now added two entries to the Path. that foo-server has now added two entries to the Path.
"foo-server" is a locally significant name within the complex "foo-server" is a locally significant name within the complex
site of many machines run by foo.isp.example, so the latter site of many machines run by foo.isp.example, so the latter
should have no problem recognizing foo-server and using a '/' should have no problem recognizing foo-server and using a '/'
path-delimiter. Presumably foo.isp.example then delivered the path-delimiter. Presumably foo.isp.example then delivered the
article to its direct clients. article to its direct clients.
It appears that foo.isp.example and old.site.example decided to It appears that foo.isp.example and old.site.example decided to
fold the line, on the grounds that it seemed to be getting a fold the line, on the grounds that it seemed to be getting a
little too long. little too long.
5.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
agent.
header =/ Injection-Date-header
Injection-Date-header
= "Injection-Date" ":" SP Injection-Date-content
*( ";" extension-parameter )
Injection-Date-content
= date-time
See the remarks under the Date-header (5.1) regarding the syntax of a
date-time and the requirements and recommendations to which it is
subject.
An Injection-Date-header MUST NOT be added to an article except by an
injecting agent, hence it will never be present in a proto-article
(8.2.1). It MUST be added by each injecting agent but, once added,
News Article Format and Transmission May 2004
it MUST NOT subsequently be changed or removed by any other agent,
even during reinjection (8.2.2).
NOTE: The date-time 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.
Since this header is newly introduced in this standard, other
agents cannot rely on its always being present; therefore,
provision is made (8.3,8.4) for the Date-header to be used when
it is absent.
This header is intended to replace the currently-used but nowhere-
documented header "NNTP-Posting-Date", whose use is now deprecated.
6. Optional Headers 6. Optional Headers
None of the headers appearing in this section is required to appear 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 in every article but some of them are required in certain types of
article, such as followups. Any header defined in this (or any other) article, such as followups. Any header defined in this (or any other)
standard MUST NOT appear more than once in an article unless standard MUST NOT appear more than once in an article unless
specifically stated otherwise. Experimental headers (4.2.5.1) and specifically stated otherwise. Experimental headers (4.2.5.1) and
headers defined by cooperating subnets are exempt from this headers defined by cooperating subnets are exempt from this
requirement. See section 8 "Duties of Various Agents" for the full requirement. See section 8 "Duties of Various Agents" for the full
picture. picture.
skipping to change at page 35, line 51 skipping to change at page 37, line 4
In the absence of Reply-To, the reply address(es) is the address(es) In the absence of Reply-To, the reply address(es) is the address(es)
in the From-header. in the From-header.
6.1.1. Examples 6.1.1. Examples
Reply-To: John Smith <jsmith@site.example> Reply-To: John Smith <jsmith@site.example>
Reply-To: John Smith <jsmith@site.example>, dave@isp.example Reply-To: John Smith <jsmith@site.example>, dave@isp.example
Reply-To: John Smith <jsmith@site.example>,andrew@isp.example, Reply-To: John Smith <jsmith@site.example>,andrew@isp.example,
fred@site2.example fred@site2.example
News Article Format and Transmission May 2004
6.2. Sender 6.2. Sender
The Sender-header specifies the mailbox of the person or entity which The Sender-header specifies the mailbox of the person or entity which
caused this article to be posted (and hence injected), if that person caused this article to be posted (and hence injected), if that person
or entity is different from that given in the From-header or if more or entity is different from that given in the From-header or if more
than one mailbox appears in the From-header. This header SHOULD NOT than one mailbox appears in the From-header. This header SHOULD NOT
appear in an article unless the sender is different from the poster. appear in an article unless the sender is different from the poster.
This header is appropriate for use by automatic article posters. The This header is appropriate for use by automatic article posters. The
News Article Format and Transmission November 2003
content syntax makes use of syntax defined in [RFC 2822]. content syntax makes use of syntax defined in [RFC 2822].
header =/ Sender-header header =/ Sender-header
Sender-header = "Sender" ":" SP Sender-content Sender-header = "Sender" ":" SP Sender-content
Sender-content = mailbox Sender-content = mailbox
6.3. Organization 6.3. Organization
The Organization-header is a short phrase identifying the poster's The Organization-header is a short phrase identifying the poster's
organization. organization.
skipping to change at page 36, line 52 skipping to change at page 38, line 5
header =/ Summary-header header =/ Summary-header
Summary-header = "Summary" ":" SP Summary-content Summary-header = "Summary" ":" SP Summary-content
Summary-content = unstructured Summary-content = unstructured
6.6. Distribution 6.6. Distribution
The Distribution-header is an inheritable header (see 4.2.5.2) which The Distribution-header is an inheritable header (see 4.2.5.2) which
specifies geographical or organizational limits to an article's specifies geographical or organizational limits to an article's
propagation. propagation.
News Article Format and Transmission May 2004
header =/ Distribution-header header =/ Distribution-header
Distribution-header = "Distribution" ":" SP Distribution-content Distribution-header = "Distribution" ":" SP Distribution-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Distribution-content= distribution *( dist-delim distribution ) Distribution-content= distribution *( dist-delim distribution )
dist-delim = "," dist-delim = ","
distribution = [FWS] distribution-name [FWS] distribution = [FWS] distribution-name [FWS]
distribution-name = ALPHA 1*distribution-rest distribution-name = ALPHA 1*distribution-rest
distribution-rest = ALPHA / "+" / "-" / "_" distribution-rest = ALPHA / "+" / "-" / "_"
News Article Format and Transmission November 2003
Articles MUST NOT be passed between relaying agents or to serving Articles MUST NOT be passed between relaying agents or to serving
agents unless the sending agent has been configured to supply and the agents unless the sending agent has been configured to supply and the
receiving agent to receive at least one of the distributions in the receiving agent to receive at least one of the distributions in the
Distribution-header. Additionally, reading agents MAY also be Distribution-header. Additionally, reading agents MAY also be
configured so that unwanted distributions do not get displayed. configured so that unwanted distributions do not get displayed.
NOTE: Although it would seem redundant to filter out unwanted NOTE: Although it would seem redundant to filter out unwanted
distributions at both ends of a relaying link (and it is clearly distributions at both ends of a relaying link (and it is clearly
more efficient to do so at the sending end), many sending sites more efficient to do so at the sending end), many sending sites
skipping to change at page 37, line 47 skipping to change at page 39, line 5
mentioned explicitly since it is the default when the Distribution- mentioned explicitly since it is the default when the Distribution-
header is absent entirely. "All" MUST NOT be used as a header is absent entirely. "All" MUST NOT be used as a
distribution-name. Distribution-names SHOULD contain at least three distribution-name. Distribution-names SHOULD contain at least three
characters, except when they are two-letter country names as in [ISO characters, except when they are two-letter country names as in [ISO
3166]. Distribution-names are case-insensitive (i.e. "US", "Us" and 3166]. Distribution-names are case-insensitive (i.e. "US", "Us" and
"us" all specify the same distribution). "us" all specify the same distribution).
Followup agents SHOULD initially supply the same Distribution-header Followup agents SHOULD initially supply the same Distribution-header
as found in the precursor. as found in the precursor.
News Article Format and Transmission May 2004
6.7. Followup-To 6.7. Followup-To
The Followup-To-header specifies which newsgroup(s) followups should The Followup-To-header specifies which newsgroup(s) followups should
be posted to. be posted to.
header =/ Followup-To-header header =/ Followup-To-header
Followup-To-header = "Followup-To" ":" SP Followup-To-content Followup-To-header = "Followup-To" ":" SP Followup-To-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Followup-To-content = Newsgroups-content / Followup-To-content = Newsgroups-content /
[FWS] %x70.6F.73.74.65.72 [FWS] [FWS] %x70.6F.73.74.65.72 [FWS]
; which is a case-sensitive "poster" ; which is a case-sensitive "poster"
News Article Format and Transmission November 2003
The syntax is the same as that of the Newsgroups-content, with the The syntax is the same as that of the Newsgroups-content, with the
addition that the keyword "poster" is allowed. In the absence of a addition that the keyword "poster" is allowed. In the absence of a
Followup-To-content, the default newsgroup(s) for a followup are Followup-To-content, the default newsgroup(s) for a followup are
those in the Newsgroups-header. those in the Newsgroups-header.
A Followup-To-header consisting of the keyword "poster" indicates A Followup-To-header consisting of the keyword "poster" indicates
that the poster requests no followups to be sent in response to this that the poster requests no followups to be sent in response to this
article, only personal replies to the article's reply address. article, only personal replies to the article's reply address.
Although the keyword "poster" is case-sensitive, followup agents MAY Although the keyword "poster" is case-sensitive, followup agents MAY
skipping to change at page 38, line 47 skipping to change at page 40, line 5
of any followup postings to be emailed. This indication is widely of any followup postings to be emailed. This indication is widely
seen as a very strong wish, and is to be taken as the default when seen as a very strong wish, and is to be taken as the default when
this header is absent. this header is absent.
The keyword "poster" indicates that the poster wishes a copy of any The keyword "poster" indicates that the poster wishes a copy of any
followup postings to be emailed to him. followup postings to be emailed to him.
Otherwise, this header contains a copy-addr to which the poster Otherwise, this header contains a copy-addr to which the poster
wishes a copy of any followup postings to be sent. wishes a copy of any followup postings to be sent.
News Article Format and Transmission May 2004
NOTE: Some existing practice uses the keyword "never" in place NOTE: Some existing practice uses the keyword "never" in place
of "nobody" and "always" in place of "poster". These usages are of "nobody" and "always" in place of "poster". These usages are
deprecated, but followup agents MAY observe them. The actions deprecated, but followup agents MAY observe them. The actions
to be taken by by followup agent when following up to an article to be taken by by followup agent when following up to an article
containing a Mail-Copies-To header are set out in section 8.6. containing a Mail-Copies-To header are set out in section 8.6.
Whether or not this header will also find similar usage for replies Whether or not this header will also find similar usage for replies
to messages sent to mailing lists falls outside the scope of this to messages sent to mailing lists falls outside the scope of this
standard. standard.
News Article Format and Transmission November 2003
6.9. Posted-And-Mailed 6.9. Posted-And-Mailed
header =/ Posted-And-Mailed-header header =/ Posted-And-Mailed-header
Posted-And-Mailed-header Posted-And-Mailed-header
= "Posted-And-Mailed" ":" SP Posted-And-Mailed-content = "Posted-And-Mailed" ":" SP Posted-And-Mailed-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Posted-And-Mailed-content Posted-And-Mailed-content
= [CFWS] ( "yes" / "no" ) [CFWS] = [CFWS] ( "yes" / "no" ) [CFWS]
This header, when used with the "yes" keyword, indicates that the This header, when used with the "yes" keyword, indicates that the
skipping to change at page 39, line 50 skipping to change at page 41, line 4
The References-header is an inheritable header (see 4.2.5.2) which The References-header is an inheritable header (see 4.2.5.2) which
lists CFWS-separated message identifiers of the article's precursors, lists CFWS-separated message identifiers of the article's precursors,
as described in 8.6. The content syntax makes use of syntax defined as described in 8.6. The content syntax makes use of syntax defined
in [RFC 2822] (but see the revised definition of msg-id in section in [RFC 2822] (but see the revised definition of msg-id in section
2.4.3). 2.4.3).
header =/ References-header header =/ References-header
References-header = "References" ":" SP References-content References-header = "References" ":" SP References-content
References-content = [CFWS] msg-id *( CFWS msg-id ) [CFWS] References-content = [CFWS] msg-id *( CFWS msg-id ) [CFWS]
News Article Format and Transmission May 2004
NOTE: This differs from the syntax of [RFC 2822] by requiring at NOTE: This differs from the syntax of [RFC 2822] by requiring at
least one CFWS between the msg-ids (a SP at this point was an least one CFWS between the msg-ids (a SP at this point was an
[RFC 1036] requirement). [RFC 1036] requirement).
A followup MUST have a References-header, and an article that is not A followup MUST have a References-header, and an article that is not
a followup MUST NOT have a References-header. a followup MUST NOT have a References-header.
News Article Format and Transmission November 2003
6.10.1. Examples 6.10.1. Examples
References: <i4g587y@site1.example> References: <i4g587y@site1.example>
References: <i4g587y@site1.example> <kgb2231+ee@site2.example> References: <i4g587y@site1.example> <kgb2231+ee@site2.example>
References: <i4g587y@site1.example> <kgb2231+ee@site2.example> References: <i4g587y@site1.example> <kgb2231+ee@site2.example>
<222@site1.example> <87tfbyv@site7.example> <222@site1.example> <87tfbyv@site7.example>
<67jimf@site666.example> <67jimf@site666.example>
References: <i4g587y@site1.example> <kgb2231+ee@site2.example> References: <i4g587y@site1.example> <kgb2231+ee@site2.example>
<tisjits@smeghead.example> <tisjits@smeghead.example>
skipping to change at page 40, line 54 skipping to change at page 42, line 4
Archive-parameter = <a parameter with attribute "filename" Archive-parameter = <a parameter with attribute "filename"
and any value> and any value>
The presence of an "Archive: no" header in an article indicates that The presence of an "Archive: no" header in an article indicates that
the poster does not permit redistribution from publicly accessible the poster does not permit redistribution from publicly accessible
long-term or permanent archives. The absence of this header, or an long-term or permanent archives. The absence of this header, or an
explicit "Archive: yes", indicates that the poster is willing for explicit "Archive: yes", indicates that the poster is willing for
such redistribution to take place. The optional "filename" parameter such redistribution to take place. The optional "filename" parameter
can then be used to suggest a filename under which the article should can then be used to suggest a filename under which the article should
be stored. Further extensions to this standard may provide additional be stored. Further extensions to this standard may provide additional
News Article Format and Transmission May 2004
parameters for administration of the archiving process. parameters for administration of the archiving process.
NOTE: This standard does not attempt to define the length of NOTE: This standard does not attempt to define the length of
"long-term", since it is dependent on many factors, including "long-term", since it is dependent on many factors, including
the retention policies of individual sites, and the customs or the retention policies of individual sites, and the customs or
policies established for particular newsgroups or hierarchies. policies established for particular newsgroups or hierarchies.
News Article Format and Transmission November 2003
NOTE: Posters are cautioned that some sites may not implement NOTE: Posters are cautioned that some sites may not implement
the "no" option of the Archive-header correctly. In some the "no" option of the Archive-header correctly. In some
jurisdictions non-compliance with this header may constitute a jurisdictions non-compliance with this header may constitute a
breach of copyright or of other legal provisions. Moreover, breach of copyright or of other legal provisions. Moreover,
even if this header prevents the poster's words from being even if this header prevents the poster's words from being
archived publicly, it does nothing to prevent the archiving of a archived publicly, it does nothing to prevent the archiving of a
followup in which those words are quoted. followup in which those words are quoted.
6.13. Control 6.13. Control
skipping to change at page 41, line 31 skipping to change at page 42, line 37
header =/ Control-header header =/ Control-header
Control-header = "Control" ":" SP Control-content Control-header = "Control" ":" SP Control-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Control-content = [CFWS] control-message [CFWS] Control-content = [CFWS] control-message [CFWS]
control-message = <empty> control-message = <empty>
However, the rule given above for control-message is incomplete. However, the rule given above for control-message is incomplete.
Further alternatives will be added incrementally as the various Further alternatives will be added incrementally as the various
control-messages are introduced in section 7, or in extensions to control-messages are introduced in section 7, or in extensions to
this standard, using the "=/" notation defined in [RFC 2234]. For this standard, using the "=/" notation defined in [RFC 2234]. For
example, a putative Control-message would be defined as follows: example, a putative "Control-message" would be defined as follows:
control-message =/ Control-message control-message =/ Control-message
Control-message = "Control" Control-arguments Control-message = "Control" Control-arguments
Control-arguments = <the argument(s) specific to that Control-arguments = <the argument(s) specific to that
Control-message> Control-message>
where "Control" is a "verb" which is (and MUST be) of the syntactic where "Control" is a "verb" which is (and MUST be) of the syntactic
form of a token and Control-arguments MUST be of the syntactic form form of a token and Control-arguments MUST be of the syntactic form
of a CFWS-separated list of values (which may require the use of of a CFWS-separated list of values (which may require the use of
quoted-strings if any tspecials or non-ASCII characters are quoted-strings if any tspecials or non-ASCII characters are
skipping to change at page 41, line 54 skipping to change at page 43, line 4
The verb indicates what action should be taken, and the argument(s) The verb indicates what action should be taken, and the argument(s)
(if any) supply details. In some cases, the body of the article may (if any) supply details. In some cases, the body of the article may
also contain details. also contain details.
An article with a Control-header MUST NOT also have a Supersedes- An article with a Control-header MUST NOT also have a Supersedes-
header. header.
NOTE: The presence of a Subject-header starting with the string NOTE: The presence of a Subject-header starting with the string
"cmsg " and followed by a Control-message MUST NOT be construed, "cmsg " and followed by a Control-message MUST NOT be construed,
in the absence of a proper Control-header, as a request to in the absence of a proper Control-header, as a request to
News Article Format and Transmission May 2004
perform that control action (as may have occurred in some legacy perform that control action (as may have occurred in some legacy
software). software).
News Article Format and Transmission November 2003
6.14. Approved 6.14. Approved
The Approved-header indicates the mailing addresses (possibly The Approved-header indicates the mailing addresses (possibly
including the full names) of the persons or entities approving the including the full names) of the persons or entities approving the
article for posting. article for posting.
header =/ Approved-header header =/ Approved-header
Approved-header = "Approved" ":" SP Approved-content Approved-header = "Approved" ":" SP Approved-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Approved-content = From-content ; see 5.2 Approved-content = From-content ; see 5.2
skipping to change at page 42, line 57 skipping to change at page 44, line 5
honour a "cancel" message, especially if its authenticity is in honour a "cancel" message, especially if its authenticity is in
doubt). The content syntax makes use of syntax defined in [RFC 2822] doubt). The content syntax makes use of syntax defined in [RFC 2822]
(but see the revised definition of msg-id in section 2.4.3). (but see the revised definition of msg-id in section 2.4.3).
header =/ Supersedes-header header =/ Supersedes-header
Supersedes-header = "Supersedes" ":" SP Supersedes-content Supersedes-header = "Supersedes" ":" SP Supersedes-content
Supersedes-content = [CFWS] msg-id [CFWS] Supersedes-content = [CFWS] msg-id [CFWS]
NOTE: There is no "c" in "Supersedes". NOTE: There is no "c" in "Supersedes".
News Article Format and Transmission May 2004
NOTE: The Supersedes-header defined here has no connection with NOTE: The Supersedes-header defined here has no connection with
the Supersedes-header that sometimes appears in Email messages the Supersedes-header that sometimes appears in Email messages
converted from X.400 according to [RFC 2156]; in particular, the converted from X.400 according to [RFC 2156]; in particular, the
syntax here permits only one msg-id in contrast to the multiple syntax here permits only one msg-id in contrast to the multiple
News Article Format and Transmission November 2003
msg-ids in that Email version. msg-ids in that Email version.
Thus when an article contains a Supersedes-header, the old article Thus when an article contains a Supersedes-header, the old article
mentioned SHOULD be withdrawn from circulation or access, as in a mentioned SHOULD be withdrawn from circulation or access, as in a
cancel message (7.3), and the new article inserted into the system as cancel message (7.3), and the new article inserted into the system as
any other new article would have been. any other new article would have been.
Whatever security or authentication checks are normally applied to a Whatever security or authentication checks are normally applied to a
Control cancel message (or may be prescribed for such messages by Control cancel message (or may be prescribed for such messages by
some extension to this standard - see the remarks in 7.1 and 7.3) some extension to this standard - see the remarks in 7.1 and 7.3)
skipping to change at page 44, line 5 skipping to change at page 45, line 5
An agent inserting an Xref-header into an article MUST delete any An agent inserting an Xref-header into an article MUST delete any
previous Xref-header(s). A relaying agent MAY delete it before previous Xref-header(s). A relaying agent MAY delete it before
relaying, but otherwise it SHOULD be ignored by any relaying or relaying, but otherwise it SHOULD be ignored by any relaying or
serving agent receiving it. serving agent receiving it.
It is convenient, though not required, for a serving agent to use the It is convenient, though not required, for a serving agent to use the
same server-name in Xref-headers as the path-identity it uses in same server-name in Xref-headers as the path-identity it uses in
Path-headers (just so long as reading agents can distinguish it from Path-headers (just so long as reading agents can distinguish it from
other serving agents known to them). other serving agents known to them).
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
6.17. Lines 6.17. Lines
The Lines-header indicates the number of lines in the body of the The Lines-header indicates the number of lines in the body of the
article. article.
header =/ Lines-header header =/ Lines-header
Lines-header = "Lines" ":" SP Lines-content Lines-header = "Lines" ":" SP Lines-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Lines-content = [CFWS] 1*DIGIT [CFWS] Lines-content = [CFWS] 1*DIGIT [CFWS]
skipping to change at page 45, line 4 skipping to change at page 46, line 4
product and its version. Injecting agents MAY include product product and its version. Injecting agents MAY include product
information for themselves (such as "INN/1.7.2"), but relaying and information for themselves (such as "INN/1.7.2"), but relaying and
serving agents MUST NOT generate or modify this header to list serving agents MUST NOT generate or modify this header to list
themselves. themselves.
NOTE: Minor variations from [RFC 2616] which describes a similar NOTE: Minor variations from [RFC 2616] which describes a similar
facility for the HTTP protocol: facility for the HTTP protocol:
1. "{" and "}" are allowed in a token (product and product- 1. "{" and "}" are allowed in a token (product and product-
version) in Netnews, version) in Netnews,
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
2. Comments are permitted wherever whitespace is allowed. 2. Comments are permitted wherever whitespace is allowed.
NOTE: This header supersedes the role performed redundantly by NOTE: This header supersedes the role performed redundantly by
experimental headers such as X-Newsreader, X-Mailer, X-Posting- experimental headers such as X-Newsreader, X-Mailer, X-Posting-
Agent, X-Http-User-Agent, and other headers previously used on Agent, X-Http-User-Agent, and other headers previously used on
Usenet and in Email for this purpose. Use of these experimental Usenet and in Email for this purpose. Use of these experimental
headers SHOULD be discontinued in favor of the single, standard headers SHOULD be discontinued in favor of the single, standard
User-Agent-header. User-Agent-header.
6.18.1. Examples 6.18.1. Examples
User-Agent: tin/1.3-950621beta-PL0 (Unix) User-Agent: tin/1.3-950621beta-PL0 (Unix)
User-Agent: tin/pre-1.4-971106 (UNIX) (Linux/2.0.30 (i486)) User-Agent: tin/pre-1.4-971106 (UNIX) (Linux/2.0.30 (i486))
User-Agent: Mozilla/4.02b7 (X11; I; en; HP-UX B.10.20 9000/712) User-Agent: Mozilla/4.02b7 (X11; I; en; HP-UX B.10.20 9000/712)
User-Agent: Microsoft-Internet-News/4.70.1161 User-Agent: Microsoft-Internet-News/4.70.1161
User-Agent: Gnus/5.4.64 XEmacs/20.3beta17 ("Bucharest") User-Agent: Gnus/5.4.64 XEmacs/20.3beta17 ("Bucharest")
User-Agent: inn/1.7.2 User-Agent: inn/1.7.2
User-Agent: telnet User-Agent: telnet
6.19. Injector-Info 6.19. Injection-Info
The Injector-Info-header SHOULD be added to each article by the The Injection-Info-header SHOULD be added to each article by the
injecting agent in order to provide information as to how that injecting agent in order to provide information as to how that
article entered the Netnews system and to assist in tracing its true article entered the Netnews system and to assist in tracing its true
origin. origin.
header =/ Injector-Info-header header =/ Injection-Info-header
Injector-Info-header Injection-Info-header
= "Injector-Info" ":" SP Injector-Info-content = "Injection-Info" ":" SP Injection-Info-content
*( ";" ( Injector-Info-parameter / *( ";" ( Injection-Info-parameter /
extension-parameter ) ) extension-parameter ) )
Injector-Info-content Injection-Info-content
= [CFWS] path-identity [CFWS] = [CFWS] path-identity [CFWS]
Injector-Info-parameter Injection-Info-parameter
= posting-host-parameter / = posting-host-parameter /
posting-account-parameter / posting-account-parameter /
posting-sender-parameter / posting-sender-parameter /
posting-logging-parameter / posting-logging-parameter
posting-date-parameter
; for {USENET}-parameters see 4.1 ; for {USENET}-parameters see 4.1
posting-host-parameter posting-host-parameter
= <a parameter with attribute "posting-host" = <a parameter with attribute "posting-host"
and value some host-value> and value some host-value>
host-value = dot-atom / host-value = dot-atom /
[ dot-atom ":" ] [ dot-atom ":" ]
( IPv4address / IPv6address ); see [RFC 2373] ( IPv4address / IPv6address ); see [RFC 2373]
posting-account-parameter posting-account-parameter
= <a parameter with attribute "posting-account" = <a parameter with attribute "posting-account"
and any value> and any value>
posting-sender-parameter posting-sender-parameter
= <a parameter with attribute "sender" = <a parameter with attribute "sender"
and value some sender-value> and value some sender-value>
sender-value = mailbox / "verified" sender-value = mailbox / "verified"
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
posting-logging-parameter posting-logging-parameter
= <a parameter with attribute "logging-data" = <a parameter with attribute "logging-data"
and any value> and any value>
posting-date-parameter
= <a parameter with attribute "posting-date"
and value some date-time>
An Injector-Info-header MUST NOT be added to an article by any agent An Injection-Info-header MUST NOT be added to an article except by an
other than an injecting agent. Any Injector-Info-header present when injecting agent. Any Injection-Info-header present when an article
an article arrives at an injecting agent MUST be removed. In arrives at an injecting agent MUST be removed. In particular if, for
particular if, for some exceptional reason (8.2.2), an article gets some exceptional reason, an article is being reinjected (8.2.2), the
injected twice, the Injector-Info-header will always relate to the Injection-Info-header will always relate to the latest injection (to
second injection. the extent that this happens, the Injection-Info-header can be
regarded as a variant header).
The path-identity MUST be the same as the path-identity prepended to The path-identity MUST be the same as the path-identity prepended to
the Path-header by that same injecting agent which, following section the Path-header by that same injecting agent which, following section
5.6.2, MUST therefore be a fully qualified domain name (FQDN) 5.6.2, MUST therefore be a fully qualified domain name (FQDN)
mailable address. mailable address.
Although comments and folding of white space are permitted throughout Although comments and folding of white space are permitted throughout
the Injector-Info-content specification, it is RECOMMENDED that the Injection-Info-content specification, it is RECOMMENDED that
folding is not used within any parameter (but only before or after folding is not used within any parameter (but only before or after
the ";" separating those parameters), and that comments are only used the ";" separating those parameters), and that comments are only used
following the last parameter. It is also RECOMMENDED that such following the last parameter. It is also RECOMMENDED that such
parameters as are present are included in the order in which they parameters as are present are included in the order in which they
have been defined in the syntax above. An injecting agent SHOULD use have been defined in the syntax above. An injecting agent SHOULD use
a consistent form of this header for all articles emanating from the a consistent form of this header for all articles emanating from the
same or similar origins. same or similar origins.
NOTE: The effect of those recommendations is to facilitate the NOTE: The effect of those recommendations is to facilitate the
recognition of articles arising from certain designated origins recognition of articles arising from certain designated origins
skipping to change at page 46, line 49 skipping to change at page 47, line 47
been chosen to place last those parameters which are most likely been chosen to place last those parameters which are most likely
to change between successive articles posted from the same to change between successive articles posted from the same
origin. origin.
NOTE: To comply with the overall "attribute = value" syntax of NOTE: To comply with the overall "attribute = value" syntax of
parameters, any value containing an IPv6address, a date-time, a parameters, any value containing an IPv6address, a date-time, a
mailbox, or any CFWS MUST be quoted using <DQUOTE>s (the quoting mailbox, or any CFWS MUST be quoted using <DQUOTE>s (the quoting
is optional in other cases). is optional in other cases).
NOTE: This header is intended to replace various currently-used NOTE: This header is intended to replace various currently-used
but nowhere-documented headers such as "NNTP-Posting-Host", but nowhere-documented headers such as "NNTP-Posting-Host" and
"NNTP-Posting-Date" and "X-Trace". These headers are now "X-Trace". These headers are now deprecated, and any of them
deprecated, and any of them present when an article arrives at present when an article arrives at an injecting agent SHOULD
an injecting agent SHOULD also be removed as above. also be removed as above.
6.19.1. Usage of Injector-Info-parameters 6.19.1. Usage of Injection-Info-parameters
The purpose of these parameters is to enable the injecting agent to The purpose of these parameters is to enable the injecting agent to
make assertions about the origin of the article, in fulfilment of its make assertions about the origin of the article, in fulfilment of its
responsibilities towards the rest of the network as set out in responsibilities towards the rest of the network as set out in
section 8.2. section 8.2.
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
An injecting agent MUST NOT include any Injector-Info-parameter An injecting agent MUST NOT include any Injection-Info-parameter
unless it has positive evidence of its correctness. An injecting unless it has positive evidence of its correctness. An injecting
agent MAY also include further extension-parameters with x-attributes agent MAY also include further extension-parameters with x-attributes
which will assist in identifying the origin of the article. which will assist in identifying the origin of the article.
6.19.1.1. The posting-host-parameter 6.19.1.1. The posting-host-parameter
If a dot-atom is present, it MUST be a FQDN identifying the specific If a dot-atom is present, it MUST be a FQDN identifying the specific
host from which the injecting agent received the article. host from which the injecting agent received the article.
Alternatively, an IP address (IPv4address or IPv6address) identifies Alternatively, an IP address (IPv4address or IPv6address) identifies
that host. If both forms are present, then they MUST identify the that host. If both forms are present, then they MUST identify the
skipping to change at page 47, line 56 skipping to change at page 48, line 56
operating. This parameter should be used in preference to a operating. This parameter should be used in preference to a
posting-account-parameter in such situations. posting-account-parameter in such situations.
6.19.1.4. The posting-logging-parameter 6.19.1.4. The posting-logging-parameter
This parameter contains information (typically a session number or This parameter contains information (typically a session number or
other non-persistent means of identifying a posting account) which other non-persistent means of identifying a posting account) which
will enable the true origin of the article to be determined by will enable the true origin of the article to be determined by
reference to logging information kept by the injecting agent. reference to logging information kept by the injecting agent.
6.19.1.5. The posting-date-parameter
This parameter identifies the time at which the article was injected
(as distinct from the Date-header, which indicates when it was
written).
News Article Format and Transmission November 2003
6.19.2. Example 6.19.2. Example
Injector-Info: news2.isp.net; posting-host=modem-15.pop.isp.net; Injection-Info: news2.isp.net; posting-host=modem-15.pop.isp.net;
posting-account=client0002623; logging-data=2427; posting-account=client0002623; logging-data=2427"
posting-date="Wed, 2 Aug 2000 20:05:33 +0100 (BST)" News Article Format and Transmission May 2004
6.20. Complaints-To 6.20. Complaints-To
The Complaints-To-header is added to an article by an injecting agent The Complaints-To-header is added to an article by an injecting agent
in order to indicate the mailbox to which complaints concerning the in order to indicate the mailbox to which complaints concerning the
poster of the article may be sent. The content syntax makes use of poster of the article may be sent. The content syntax makes use of
syntax defined in [RFC 2822]. syntax defined in [RFC 2822].
header =/ Complaints-To-header header =/ Complaints-To-header
Complaints-To-header Complaints-To-header
= "Complaints-To" ":" SP Complaints-To-content = "Complaints-To" ":" SP Complaints-To-content
Complaints-To-content Complaints-To-content
= address-list = address-list
A Complaints-To-header MUST NOT be added to an article by any agent A Complaints-To-header MUST NOT be added to an article except by an
other than an injecting agent. Any Complaints-To-header present when injecting agent. Any Complaints-To-header present when an article
an article arrives at an injecting agent MUST be removed. In arrives at an injecting agent MUST be removed. In particular if, for
particular if, for some exceptional reason (8.2.2), an article gets some exceptional reason an article is being reinjected (8.2.2), the
injected twice, the Complaints-To-header will always relate to the Complaints-To-header will always relate to the latest injection (to
second injection. the extent that this happens, the Complaints-To-header can be
regarded as a variant header).
The specified mailbox is for sending complaints concerning the The specified mailbox is for sending complaints concerning the
behaviour of the poster of the article; it SHOULD NOT be used for behaviour of the poster of the article; it SHOULD NOT be used for
matters concerning propagation, protocol problems, etc. which should matters concerning propagation, protocol problems, etc. which should
be addressed to "usenet@" or "news@" the path-identity which was be addressed to "usenet@" or "news@" the path-identity which was
prepended to the Path-header by the injecting agent, in accordance prepended to the Path-header by the injecting agent, in accordance
with section 5.6.2. In the absence of this header, complaints with section 5.6.2. In the absence of this header, complaints
concerning a poster's behaviour MAY be addressed to "abuse@" that concerning a poster's behaviour MAY be addressed to "abuse@" that
path-identity (although section 5.6.2 provides no obligation for that path-identity (although section 5.6.2 provides no obligation for that
address to be mailable at an injecting agent that is not provided for address to be mailable at an injecting agent that is not provided for
skipping to change at page 49, line 4 skipping to change at page 49, line 54
MIME-Version: [RFC 2045] MIME-Version: [RFC 2045]
Content-Type: [RFC 2045],[RFC 2046] Content-Type: [RFC 2045],[RFC 2046]
Content-Transfer-Encoding: [RFC 2045] Content-Transfer-Encoding: [RFC 2045]
Content-ID: [RFC 2045] Content-ID: [RFC 2045]
Content-Description: [RFC 2045] Content-Description: [RFC 2045]
Content-Disposition: [RFC 2183] Content-Disposition: [RFC 2183]
Content-Location: [RFC 2557] Content-Location: [RFC 2557]
Content-Language: [RFC 3282] Content-Language: [RFC 3282]
Content-MD5: [RFC 1864] Content-MD5: [RFC 1864]
News Article Format and Transmission November 2003
The RFCs listed are deemed to be incorporated into this standard to The RFCs listed are deemed to be incorporated into this standard to
the extent necessary to facilitate their usage within Netnews, the extent necessary to facilitate their usage within Netnews,
subject to curtailment of that usage as described in the following subject to curtailment of that usage as described in the following
sections. Moreover, extensions to those standards registered in sections. Moreover, extensions to those standards registered in
accordance with [RFC 2048] are also available for use within Netnews, accordance with [RFC 2048] are also available for use within Netnews,
News Article Format and Transmission May 2004
as indeed is any other header in the Content-* series which has a as indeed is any other header in the Content-* series which has a
sensible interpretation within Netnews. sensible interpretation within Netnews.
Insofar as the syntax for these headers, as given in those RFCs does Insofar as the syntax for these headers, as given in those RFCs does
not specify precisely where whitespace and comments may occur not specify precisely where whitespace and comments may occur
(whether in the form of WSP, FWS or CFWS), the usage defined in this (whether in the form of WSP, FWS or CFWS), the usage defined in this
standard, and failing that in [RFC 2822], and failing that in [RFC standard, and failing that in [RFC 2822], and failing that in [RFC
822] MUST be followed. In particular, there MUST NOT be any WSP 822] MUST be followed. In particular, there MUST NOT be any WSP
between a header-name and the following colon and there MUST be a SP between a header-name and the following colon and there MUST be a SP
following that colon. following that colon.
skipping to change at page 50, line 5 skipping to change at page 50, line 53
so). so).
The Content-Type "message/rfc822" should be used for the The Content-Type "message/rfc822" should be used for the
encapsulation (whether as part of another news article or, more encapsulation (whether as part of another news article or, more
usually, as part of an email message) of complete news articles which usually, as part of an email message) of complete news articles which
have already been posted to Netnews and which are for the information have already been posted to Netnews and which are for the information
of the recipient, and do not constitute a request to repost them of the recipient, and do not constitute a request to repost them
(refer to 6.21.4.2 for the now obsolete "message/news" formerly (refer to 6.21.4.2 for the now obsolete "message/news" formerly
intended for this purpose). intended for this purpose).
News Article Format and Transmission November 2003
6.21.3. Content-Transfer-Encoding 6.21.3. Content-Transfer-Encoding
"Content-Transfer-Encoding: 7bit" is sufficient for article bodies "Content-Transfer-Encoding: 7bit" is sufficient for article bodies
(or parts of multiparts) written in pure US-ASCII (or most other (or parts of multiparts) written in pure US-ASCII (or most other
material representable in 7 bits). Posting agents SHOULD specify material representable in 7 bits). Posting agents SHOULD specify
"Content-Transfer-Encoding: 8bit" for all other cases except where "Content-Transfer-Encoding: 8bit" for all other cases except where
the content is (or might be) "8bit-unsafe", or where some protocol the content is (or might be) "8bit-unsafe", or where some protocol
News Article Format and Transmission May 2004
explicitly disallows it. They MAY use "8bit" encoding even when explicitly disallows it. They MAY use "8bit" encoding even when
"7bit" encoding would have sufficed. "7bit" encoding would have sufficed.
Content is "8bit-unsafe" if it contains octets equivalent to the US- Content is "8bit-unsafe" if it contains octets equivalent to the US-
ASCII characters CR or LF (other than in the combination CRLF) or ASCII characters CR or LF (other than in the combination CRLF) or
NUL. This is often the case with application types (though in many NUL. This is often the case with application types (though in many
cases application types are intended to be human readable, in which cases application types are intended to be human readable, in which
case they will usually be 8bit-safe). It also arises with certain case they will usually be 8bit-safe). It also arises with certain
charsets (as indicated in the Content-Type-header), particularly in charsets (as indicated in the Content-Type-header), particularly in
the case of 16-bit charsets such as UTF-16 ([UNICODE 3.2] or [ISO/IEC the case of 16-bit charsets such as UTF-16 ([UNICODE 3.2] or [ISO/IEC
skipping to change at page 51, line 5 skipping to change at page 51, line 51
6.21.4.1. Application/news-transmission 6.21.4.1. Application/news-transmission
The Content-Type "application/news-transmission" is intended for the The Content-Type "application/news-transmission" is intended for the
encapsulation of complete news articles where the intention is that encapsulation of complete news articles where the intention is that
the recipient should then inject them into Netnews. This Application the recipient should then inject them into Netnews. This Application
type provides one of the methods for mailing articles to moderators type provides one of the methods for mailing articles to moderators
(see 8.2.2) and it is also the preferred method when sending to an (see 8.2.2) and it is also the preferred method when sending to an
email-to-news gateway (see 8.8.2). email-to-news gateway (see 8.8.2).
News Article Format and Transmission November 2003
NOTE: The benefit of such encapsulation is that it removes NOTE: The benefit of such encapsulation is that it removes
possible conflict between news and email headers and it provides possible conflict between news and email headers and it provides
a convenient way of "tunnelling" a news article through a a convenient way of "tunnelling" a news article through a
transport medium that does not support 8bit characters. transport medium that does not support 8bit characters.
The MIME content type definition of "application/news-transmission" The MIME content type definition of "application/news-transmission"
is: is:
MIME type name: application MIME type name: application
News Article Format and Transmission May 2004
MIME subtype name: news-transmission MIME subtype name: news-transmission
Required parameters: none Required parameters: none
Optional parameters: usage=moderate Optional parameters: usage=moderate
usage=inject usage=inject
usage=relay usage=relay
Encoding considerations: A transfer-encoding (such as Quoted- Encoding considerations: A transfer-encoding (such as Quoted-
Printable or Base64) different from that of Printable or Base64) different from that of
the article transmitted MAY be supplied the article transmitted MAY be supplied
(perhaps en route) to ensure correct (perhaps en route) to ensure correct
transmission over some 7bit transport transmission over some 7bit transport
skipping to change at page 52, line 5 skipping to change at page 52, line 52
batch = 1*( batch-header article ) batch = 1*( batch-header article )
batch-header = "#!" SP rnews SP article-size CRLF batch-header = "#!" SP rnews SP article-size CRLF
rnews = %x72.6E.65.77.73 ; case sensitive "rnews" rnews = %x72.6E.65.77.73 ; case sensitive "rnews"
article-size = 1*DIGIT article-size = 1*DIGIT
Thus a batch is a sequence of articles, each prefixed by a header Thus a batch is a sequence of articles, each prefixed by a header
line that includes its size. The article-size is a decimal count of line that includes its size. The article-size is a decimal count of
the octets in the article, counting each CRLF as one octet regardless the octets in the article, counting each CRLF as one octet regardless
of how it is actually represented. of how it is actually represented.
News Article Format and Transmission November 2003
NOTE: Despite the similarity of this format to an executable NOTE: Despite the similarity of this format to an executable
UNIX script, it is EXTREMELY unwise to feed such a batch into a UNIX script, it is EXTREMELY unwise to feed such a batch into a
command interpreter in anticipation of it running a command command interpreter in anticipation of it running a command
named "rnews"; the security implications of so doing would be named "rnews"; the security implications of so doing would be
disastrous. disastrous.
News Article Format and Transmission May 2004
6.21.4.2. Message/news obsoleted 6.21.4.2. Message/news obsoleted
The Content-Type "message/news", as previously registered with IANA, The Content-Type "message/news", as previously registered with IANA,
is hereby declared obsolete. It was never widely implemented, and its is hereby declared obsolete. It was never widely implemented, and its
default treatment as "application/octet-stream" by agents that did default treatment as "application/octet-stream" by agents that did
not recognize it was counter productive. The Content-Type not recognize it was counter productive. The Content-Type
"message/rfc822" SHOULD be used in its place, as already described "message/rfc822" SHOULD be used in its place, as already described
above. above.
6.22. Obsolete Headers 6.22. Obsolete Headers
skipping to change at page 52, line 55 skipping to change at page 53, line 49
unwanted, or even cause it not to propagate where it should, so it unwanted, or even cause it not to propagate where it should, so it
should not be used without good reason). should not be used without good reason).
The descriptions below set out REQUIREMENTS to be followed by sites The descriptions below set out REQUIREMENTS to be followed by sites
that receive control messages and choose to honour them. However, that receive control messages and choose to honour them. However,
nothing in these descriptions should be taken as overriding the right nothing in these descriptions should be taken as overriding the right
of any such site, in accordance with its local policy, to deny any of any such site, in accordance with its local policy, to deny any
particular control message, or to refer it to an administrator for particular control message, or to refer it to an administrator for
approval (either as a class or on a case-by-case basis). approval (either as a class or on a case-by-case basis).
Relaying Agents MUST propagate even control messages that they do not Relaying Agents MUST propagate all control messages regardless of
recognize. whether or not they are recognized or processed locally.
In the following sections, each type of control message is defined In the following sections, each type of control message is defined
syntactically by defining its verb, its arguments, and possibly its syntactically by defining its verb, its arguments, and possibly its
body. body.
News Article Format and Transmission November 2003
7.1. Digital Signature of Headers 7.1. Digital Signature of Headers
It is most desirable that group control messages (7.2) in particular It is most desirable that group control messages (7.2) in particular
be authenticated by incorporating them within some digital signature be authenticated by incorporating them within some digital signature
scheme that encompasses other headers closely associated with them scheme that encompasses other headers closely associated with them
News Article Format and Transmission May 2004
(including at least the Approved-, Message-ID- and Date-headers). At (including at least the Approved-, Message-ID- and Date-headers). At
the time of writing, this is usually done by means of a protocol the time of writing, this is usually done by means of a protocol
known as "PGPverify" ([PGPVERIFY]), and continued usage of this is known as "PGPverify" ([PGPVERIFY]), and continued usage of this is
encouraged at least as an interim measure. encouraged at least as an interim measure.
However, PGPverify is not considered suitable for standardization in However, PGPverify is not considered suitable for standardization in
its present form, for various technical reasons. It is therefore its present form, for various technical reasons. It is therefore
expected that an early extension to this standard will provide a expected that an early extension to this standard will provide a
robust and general purpose digital authentication mechanism with robust and general purpose digital authentication mechanism with
applicability to all situations requiring protection against applicability to all situations requiring protection against
skipping to change at page 54, line 4 skipping to change at page 54, line 55
and vice versa. "Moderated" is the only such flag defined by this and vice versa. "Moderated" is the only such flag defined by this
standard; other flags MAY be defined for use in cooperating subnets, standard; other flags MAY be defined for use in cooperating subnets,
but newgroup messages containing them MUST NOT be acted on outside of but newgroup messages containing them MUST NOT be acted on outside of
those subnets. those subnets.
NOTE: Specifically, some alternative flags such as "y" and "m", NOTE: Specifically, some alternative flags such as "y" and "m",
which are sent and recognized by some current software, are NOT which are sent and recognized by some current software, are NOT
part of this standard. Moreover, some existing implementations part of this standard. Moreover, some existing implementations
treat any flag other than "moderated" as indicating an treat any flag other than "moderated" as indicating an
unmoderated newsgroup. Both of these usages are contrary to this unmoderated newsgroup. Both of these usages are contrary to this
News Article Format and Transmission November 2003
standard and control messages with such non-standard flags standard and control messages with such non-standard flags
should be ignored. should be ignored.
News Article Format and Transmission May 2004
The message body comprises or includes an "application/news- The message body comprises or includes an "application/news-
groupinfo" (7.2.1.2) part containing machine- and human-readable groupinfo" (7.2.1.2) part containing machine- and human-readable
information about the group. information about the group.
The newgroup command is also used to update the newsgroups-line or The newgroup command is also used to update the newsgroups-line or
the moderation status of a group. the moderation status of a group.
7.2.1.1. The Body of the 'newgroup' Control Message 7.2.1.1. The Body of the 'newgroup' Control Message
The body of the newgroup message contains the following subparts, The body of the newgroup message contains the following subparts,
skipping to change at page 55, line 4 skipping to change at page 55, line 57
MIME type name: application MIME type name: application
MIME subtype name: news-groupinfo MIME subtype name: news-groupinfo
Required parameters: none Required parameters: none
Disposition: by default, inline Disposition: by default, inline
Encoding considerations: "7bit" or "8bit" is sufficient and MUST be Encoding considerations: "7bit" or "8bit" is sufficient and MUST be
used to maintain compatibility. used to maintain compatibility.
Security considerations: this type MUST NOT be used except as part Security considerations: this type MUST NOT be used except as part
of a control message for the creation or of a control message for the creation or
modification of a Netnews newsgroup modification of a Netnews newsgroup
Published specification: [USEFOR] Published specification: [USEFOR]
News Article Format and Transmission November 2003
The content of the "application/news-groupinfo" body part is defined The content of the "application/news-groupinfo" body part is defined
as: as:
News Article Format and Transmission May 2004
groupinfo-body = [ newsgroups-tag CRLF ] groupinfo-body = [ newsgroups-tag CRLF ]
newsgroups-line CRLF newsgroups-line CRLF
newsgroups-tag = %x46.6F.72 SP %x79.6F.75.72 SP newsgroups-tag = %x46.6F.72 SP %x79.6F.75.72 SP
%x6E.65.77.73.67.72.6F.75.70.73 SP %x6E.65.77.73.67.72.6F.75.70.73 SP
%x66.69.6C.65.3A %x66.69.6C.65.3A
; case sensitive ; case sensitive
; "For your newsgroups file:" ; "For your newsgroups file:"
newsgroups-line = newsgroup-name newsgroups-line = newsgroup-name
[ 1*HTAB newsgroup-description ] [ 1*HTAB newsgroup-description ]
[ 1*WSP moderation-flag ] [ 1*WSP moderation-flag ]
skipping to change at page 56, line 5 skipping to change at page 57, line 5
Some subparts of a "newgroup" or "mvgroup" control message MAY Some subparts of a "newgroup" or "mvgroup" control message MAY
contain an initial set of articles to be posted to the affected contain an initial set of articles to be posted to the affected
newsgroup(s) as soon as it has been created or modified. These parts newsgroup(s) as soon as it has been created or modified. These parts
are identified by having the Content-Type "application/news- are identified by having the Content-Type "application/news-
transmission", possibly with the parameter "usage=inject". The body transmission", possibly with the parameter "usage=inject". The body
of each such part should be a complete proto-article, ready for of each such part should be a complete proto-article, ready for
posting. This feature is intended for the posting of charters, posting. This feature is intended for the posting of charters,
initial FAQs and the like to the newly formed group(s). initial FAQs and the like to the newly formed group(s).
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
The Newsgroups-header of the proto-article MUST include the The Newsgroups-header of the proto-article MUST include the
newsgroup-name of the newly created or modified group. It MAY include newsgroup-name of the newly created or modified group. It MAY include
other newsgroup-names. If the proto-article includes a Message-ID- other newsgroup-names. If the proto-article includes a Message-ID-
header, the message identifier in it MUST be different from that of header, the message identifier in it MUST be different from that of
any existing article and from that of the control message as a whole. any existing article and from that of the control message as a whole.
Alternatively such a message identifier MAY be derived by the Alternatively such a message identifier MAY be derived by the
injecting agent when the proto-article is posted. The proto-article injecting agent when the proto-article is posted. The proto-article
SHOULD include the header "Distribution: local". SHOULD include the header "Distribution: local".
skipping to change at page 57, line 4 skipping to change at page 58, line 4
For your newsgroups file: For your newsgroups file:
example.admin.info About the example.* groups (Moderated) example.admin.info About the example.* groups (Moderated)
--nxtprt --nxtprt
Content-Type: application/news-transmission Content-Type: application/news-transmission
Newsgroups: example.admin.info Newsgroups: example.admin.info
From: "example.all Administrator" <admin@noc.example> From: "example.all Administrator" <admin@noc.example>
Subject: Charter for example.admin.info Subject: Charter for example.admin.info
Message-ID: <charter-example.admin.info-20020227@noc.example> Message-ID: <charter-example.admin.info-20020227@noc.example>
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
Distribution: local Distribution: local
Content-Type: text/plain; charset=us-ascii Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
The group example.admin.info contains regularly posted The group example.admin.info contains regularly posted
information on the example.* hierarchy. information on the example.* hierarchy.
--nxtprt-- --nxtprt--
skipping to change at page 58, line 4 skipping to change at page 59, line 4
the first (old-)newsgroup-name be moved to that specified by the the first (old-)newsgroup-name be moved to that specified by the
second (new-)newsgroup-name. Thus it is broadly equivalent to a second (new-)newsgroup-name. Thus it is broadly equivalent to a
"newgroup" control message for the second group followed by a "newgroup" control message for the second group followed by a
"rmgroup" control message for the first group. "rmgroup" control message for the first group.
The message body contains an "application/news-groupinfo" part The message body contains an "application/news-groupinfo" part
(7.2.1.2) containing machine- and human-readable information about (7.2.1.2) containing machine- and human-readable information about
the new group, and possibly other subparts as for a "newgroup" the new group, and possibly other subparts as for a "newgroup"
control message. The information conveyed in the "application/news- control message. The information conveyed in the "application/news-
groupinfo" body part, notably its newsgroups-line (7.2.1.2), is groupinfo" body part, notably its newsgroups-line (7.2.1.2), is
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
applied to the new group. applied to the new group.
When this message is received, the new group is created (if it does When this message is received, the new group is created (if it does
not exist already) as for a "newgroup" control message, and MUST in not exist already) as for a "newgroup" control message, and MUST in
any case be made moderated if a newgroup-flag "moderated" is present, any case be made moderated if a newgroup-flag "moderated" is present,
and vice versa. At the same time, arrangements SHOULD be made to and vice versa. At the same time, arrangements SHOULD be made to
remove the old group (as with a "rmgroup" control message), but only remove the old group (as with a "rmgroup" control message), but only
after a suitable overlap period to allow the network to adjust to the after a suitable overlap period to allow the network to adjust to the
new arrangement. new arrangement.
skipping to change at page 59, line 4 skipping to change at page 60, line 4
present when they were injected). On the other hand, the Xref-header present when they were injected). On the other hand, the Xref-header
MAY contain entries for either group (or even both). MAY contain entries for either group (or even both).
NOTE: Some serving agents that use an "active" file permit an NOTE: Some serving agents that use an "active" file permit an
entry of the form "oldgroup xxx yyy =newgroup", which enables entry of the form "oldgroup xxx yyy =newgroup", which enables
any articles arriving for oldgroup to be diverted to newgroup, any articles arriving for oldgroup to be diverted to newgroup,
thus providing a simple implementation of this feature. However, thus providing a simple implementation of this feature. However,
it is known that not all current serving agents will find it is known that not all current serving agents will find
implementation so easy (especially in the short term) which is implementation so easy (especially in the short term) which is
why it is not mandated by this standard. Nevertheless, its why it is not mandated by this standard. Nevertheless, its
News Article Format and Transmission November 2003 News Article Format and Transmission May 2004
eventual implementation in all serving agents is to be eventual implementation in all serving agents is to be
considered highly desirable. considered highly desirable.
On the other hand, it is recognized that this feature would On the other hand, it is recognized that this feature would
likely not be implementable if the new group was already in likely not be implementable if the new group was already in
existence with existing articles in it. This situation should existence with existing articles in it. This situation should
not normally arise except when there is already some confusion not normally arise except when there is already some confusion
as to which groups are, or are not, supposed to exist in that as to which groups are, or are not, supposed to exist in that
hierarchy. Note that the "mvgroup" control message is not really hierarchy. Note that the "mvgroup" control message is not really
skipping to change at page 59, line 42 skipping to change at page 60, line 42
For your newsgroups file: For your newsgroups file:
example.newgroup The new replacement group (Moderated) example.newgroup The new replacement group (Moderated)
--nxt --nxt
The moderated group example.oldgroup is replaced by The moderated group example.oldgroup is replaced by
example.newgroup. Please update your configuration, and please, example.newgroup. Please update your configuration, and please,
if possible, arrange to file articles arriving for if possible, arrange to file articles arriving for
example.oldgroup as if they were in example.newgroup. example.oldgroup as if they were in example.newgroup.
--nxt
Content-Type: application/news-transmission
Newsgroups: example.admin.info
From: "example.all Administrator" <admin@noc.example>
Subject: Charter for example.newgroup
Message-ID: <mvgroup-example.newgroup-20020430@noc.example>
Distribution: local
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
This group (formerly known as example.oldgroup) is for the
discussion of examples.
--nxt-- --nxt--
News Article Format and Transmission May 2004
7.2.4. The 'checkgroups' Control Message 7.2.4. The 'checkgroups' Control Message
The "checkgroups" control message contains a list of all the valid The "checkgroups" control message contains a list of all the valid
groups in a complete hierarchy. groups in a complete hierarchy.
control-message =/ Checkgroup-message control-message =/ Checkgroup-message
Checkgroup-message = "checkgroups" Checkgroup-arguments Checkgroup-message = "checkgroups" Checkgroup-arguments
Checkgroup-arguments= [ chkscope ] [ chksernr ] Checkgroup-arguments= [ chkscope ] [ chksernr ]
chkscope = 1*( CFWS ["!"] newsgroup-name ) chkscope = 1*( CFWS ["!"] newsgroup-name )
chksernr = CFWS "#" 1*DIGIT chksernr = CFWS "#" 1*DIGIT
A "checkgroups" message applies to any (sub-)hierarchy with a prefix A "checkgroups" message applies to any (sub-)hierarchy with a prefix
listed in the chkscope parameter, provided that the rightmost listed in the chkscope parameter, provided that the rightmost
matching newsgroup-name in the list is not immediately preceded by a matching newsgroup-name in the list is not immediately preceded by a
"!". If no chkscope parameter is given, it applies to all "!". If no chkscope parameter is given, it applies to all
hierarchies for which group statements appear in the message. hierarchies for which group statements appear in the message.
News Article Format and Transmission November 2003
NOTE: Some existing software does not support the "chkscope" NOTE: Some existing software does not support the "chkscope"
parameter. Thus a "checkgroups" message SHOULD also contain the parameter. Thus a "checkgroups" message SHOULD also contain the
groups of other subhierarchies the sender is not responsible groups of other subhierarchies the sender is not responsible
for. "New" software MUST ignore groups which do not fall within for. "New" software MUST ignore groups which do not fall within
the chkscope parameter of the "checkgroups" message. the chkscope parameter of the "checkgroups" message.
The chksernr parameter is a serial number, which can be any positive The chksernr parameter is a serial number, which can be any positive
integer (e.g. just numbered or the date in YYYYMMDD). It SHOULD integer (e.g. just numbered or the date in YYYYMMDD). It SHOULD
increase by an arbitrary value with every change to the group list increase by an arbitrary value with every change to the group list
and MUST NOT ever decrease. and MUST NOT ever decrease.
skipping to change at page 60, line 40 skipping to change at page 62, line 5
newsgroups in the specified hierarchies. newsgroups in the specified hierarchies.
NOTE: The checkgroups message is intended to synchronize the NOTE: The checkgroups message is intended to synchronize the
list of newsgroups stored by a serving agent, and their list of newsgroups stored by a serving agent, and their
newsgroup-descriptions, with the lists stored by other serving newsgroup-descriptions, with the lists stored by other serving
agents throughout the network. However, it might be inadvisable agents throughout the network. However, it might be inadvisable
for the serving agent actually to create or delete any for the serving agent actually to create or delete any
newsgroups without first obtaining the approval of its newsgroups without first obtaining the approval of its
administrators for such proposed actions. administrators for such proposed actions.
News Article Format and Transmission May 2004
7.2.4.1. Application/news-checkgroups 7.2.4.1. Application/news-checkgroups
The "application/news-checkgroups" body part contains a complete list The "application/news-checkgroups" body part contains a complete list
of all the newsgroups in a hierarchy, their newsgroup-descriptions of all the newsgroups in a hierarchy, their newsgroup-descriptions
and their moderation status. and their moderation status.
The MIME content type definition of "application/news-checkgroups" The MIME content type definition of "application/news-checkgroups"
is: is:
MIME type name: application MIME type name: application
skipping to change at page 61, line 5 skipping to change at page 62, line 28
Required parameters: none Required parameters: none
Disposition: by default, inline Disposition: by default, inline
Encoding considerations: "7bit" or "8bit" is sufficient and MUST be Encoding considerations: "7bit" or "8bit" is sufficient and MUST be
used to maintain compatibility. used to maintain compatibility.
Security considerations: this type MUST NOT be used except as part Security considerations: this type MUST NOT be used except as part
of a checkgroups control message of a checkgroups control message
The content of the "application/news-checkgroups" body part is The content of the "application/news-checkgroups" body part is
defined as: defined as:
News Article Format and Transmission November 2003
checkgroups-body = *( valid-group CRLF ) checkgroups-body = *( valid-group CRLF )
valid-group = newsgroups-line ; see 7.2.1.2 valid-group = newsgroups-line ; see 7.2.1.2
The "application/news-checkgroups" content type is used in The "application/news-checkgroups" content type is used in
conjunction with the "checkgroups" control message (7.2.4). conjunction with the "checkgroups" control message (7.2.4).
NOTE: The possibility of removing a complete hierarchy by means NOTE: The possibility of removing a complete hierarchy by means
of an "invalidation" line beginning with a '!' is no longer of an "invalidation" line beginning with a '!' is no longer
provided by this standard. The intent of the feature was widely provided by this standard. The intent of the feature was widely
misunderstood and it was misused more often than it was used misunderstood and it was misused more often than it was used
skipping to change at page 61, line 39 skipping to change at page 63, line 4
The argument identifies the article to be cancelled by its message The argument identifies the article to be cancelled by its message
identifier. The body SHOULD contain an indication of why the identifier. The body SHOULD contain an indication of why the
cancellation was requested. The cancel message SHOULD be posted to cancellation was requested. The cancel message SHOULD be posted to
the same newsgroup, with the same distribution, as the article it is the same newsgroup, with the same distribution, as the article it is
attempting to cancel. attempting to cancel.
A serving agent that elects to honour a cancel message SHOULD make A serving agent that elects to honour a cancel message SHOULD make
the article unavailable for relaying or serving (perhaps by deleting the article unavailable for relaying or serving (perhaps by deleting
it completely). If the target article is unavailable, and the it completely). If the target article is unavailable, and the
News Article Format and Transmission May 2004
acceptability of the cancel message cannot be established without it, acceptability of the cancel message cannot be established without it,
activation of the cancel message SHOULD be delayed until the target activation of the cancel message SHOULD be delayed until the target
article has been seen. See also sections 8.3 and 8.4. article has been seen. See also sections 8.3 and 8.4.
NOTE: It is expected that the security extension envisaged in NOTE: It is expected that the security extension envisaged in
section 7.1 will make more detailed provisions for establishing section 7.1 will make more detailed provisions for establishing
whether honouring a particular cancel message is in order. In whether honouring a particular cancel message is in order. In
particular, it is likely that there will be provision for the particular, it is likely that there will be provision for the
digital signature of 3rd party cancels (i.e. those issued other digital signature of 3rd party cancels (i.e. those issued other
than by the sender, the moderator, or the injector). than by the sender, the moderator, or the injector).
skipping to change at page 62, line 4 skipping to change at page 63, line 27
NOTE: A cancel submitted by the poster for an article in a NOTE: A cancel submitted by the poster for an article in a
moderated group will be forwarded to the moderator of that moderated group will be forwarded to the moderator of that
group, and it is up to that moderator to act upon it (8.7). group, and it is up to that moderator to act upon it (8.7).
NOTE: The former requirement [RFC 1036] that the From and/or NOTE: The former requirement [RFC 1036] that the From and/or
Sender-headers of the cancel message should match those of the Sender-headers of the cancel message should match those of the
original article has been removed from this standard, since it original article has been removed from this standard, since it
only encouraged cancel issuers to conceal their true identity, only encouraged cancel issuers to conceal their true identity,
and it was not usually checked or enforced by canceling and it was not usually checked or enforced by canceling
software. Therefore, both the From and/or Sender-headers and software. Therefore, both the From and/or Sender-headers and
News Article Format and Transmission November 2003
any Approved-header should now relate to the entity responsible any Approved-header should now relate to the entity responsible
for issuing the cancel message. for issuing the cancel message.
7.4. Ihave, sendme 7.4. Ihave, sendme
The "ihave" and "sendme" control messages implement a crude batched The "ihave" and "sendme" control messages implement a crude batched
predecessor of the NNTP [NNTP] protocol. They are largely obsolete on predecessor of the NNTP [NNTP] protocol. They are largely obsolete on
the Internet, but still see use in conjunction with some transport the Internet, but still see use in conjunction with some transport
protocols such as UUCP, especially for backup feeds that normally are protocols such as UUCP, especially for backup feeds that normally are
active only when a primary feed path has failed. There is no active only when a primary feed path has failed. There is no
skipping to change at page 62, line 37 skipping to change at page 64, line 4
control-message =/ Sendme-message control-message =/ Sendme-message
Sendme-message = "sendme" Sendme-arguments Sendme-message = "sendme" Sendme-arguments
Sendme-arguments = Ihave-arguments Sendme-arguments = Ihave-arguments
relayer-name = path-identity ; see 5.6.1 relayer-name = path-identity ; see 5.6.1
ihave-body = *( msg-id CRLF ) ihave-body = *( msg-id CRLF )
sendme-body = ihave-body sendme-body = ihave-body
The body of the message consists of a list of msg-ids, one per line. The body of the message consists of a list of msg-ids, one per line.
[RFC 1036] also permitted the list of msg-ids to appear in the Ihave- [RFC 1036] also permitted the list of msg-ids to appear in the Ihave-
or Sendme-arguments with the syntax or Sendme-arguments with the syntax
News Article Format and Transmission May 2004
Ihave-arguments = [FWS] *( msg-id FWS ) [relayer-name] Ihave-arguments = [FWS] *( msg-id FWS ) [relayer-name]
but this form SHOULD NOT now be used, though relaying agents MAY but this form SHOULD NOT now be used, though relaying agents MAY
recognize and process it for backward compatibility. recognize and process it for backward compatibility.
The ihave message states that the named relaying agent has received The ihave message states that the named relaying agent has received
articles with the specified message identifiers, which may be of articles with the specified message identifiers, which may be of
interest to the relaying agents receiving the ihave message. The interest to the relaying agents receiving the ihave message. The
sendme message requests that the agent receiving it send the articles sendme message requests that the agent receiving it send the articles
having the specified message identifiers to the named relaying agent. having the specified message identifiers to the named relaying agent.
skipping to change at page 63, line 5 skipping to change at page 64, line 30
first component of a newsgroup-name). The control message SHOULD then first component of a newsgroup-name). The control message SHOULD then
be delivered ONLY to the relaying agent(s) identified by that be delivered ONLY to the relaying agent(s) identified by that
relayer-name, and any relaying agent receiving such a message which relayer-name, and any relaying agent receiving such a message which
includes its own relayer-name MUST NOT propagate it further. Each includes its own relayer-name MUST NOT propagate it further. Each
pair of relaying agent(s) sending and receiving these messages MUST pair of relaying agent(s) sending and receiving these messages MUST
be immediate neighbors, exchanging news directly with each other. be immediate neighbors, exchanging news directly with each other.
Each relaying agent advertises its new arrivals to the other using Each relaying agent advertises its new arrivals to the other using
ihave messages, and each uses sendme messages to request the articles ihave messages, and each uses sendme messages to request the articles
it lacks. it lacks.
News Article Format and Transmission November 2003
To reduce overhead, ihave and sendme messages SHOULD be sent To reduce overhead, ihave and sendme messages SHOULD be sent
relatively infrequently and SHOULD contain reasonable numbers of relatively infrequently and SHOULD contain reasonable numbers of
message identifiers. If ihave and sendme are being used to implement message identifiers. If ihave and sendme are being used to implement
a backup feed, it may be desirable to insert a delay between a backup feed, it may be desirable to insert a delay between
reception of an ihave and generation of a sendme, so that a slightly reception of an ihave and generation of a sendme, so that a slightly
slow primary feed will not cause large numbers of articles to be slow primary feed will not cause large numbers of articles to be
requested unnecessarily via sendme. requested unnecessarily via sendme.
7.5. Obsolete control messages. 7.5. Obsolete control messages.
skipping to change at page 63, line 37 skipping to change at page 65, line 4
The following section sets out the duties of various agents involved The following section sets out the duties of various agents involved
in the creation, relaying and serving of Usenet articles. Insofar as in the creation, relaying and serving of Usenet articles. Insofar as
these duties are described as sequences of steps to be followed, it these duties are described as sequences of steps to be followed, it
should be understood that it is the effect of these sequences that is should be understood that it is the effect of these sequences that is
important, and implementations may use any method that gives rise to important, and implementations may use any method that gives rise to
that same effect. that same effect.
In this section, the word "trusted", as applied to the source of some In this section, the word "trusted", as applied to the source of some
article, means that an agent processing that article has verified, by article, means that an agent processing that article has verified, by
some means, the identity of that source (which may be another agent some means, the identity of that source (which may be another agent
News Article Format and Transmission May 2004
or a poster). or a poster).
NOTE: In many implementations, a single agent may perform NOTE: In many implementations, a single agent may perform
various combinations of the injecting, relaying and serving various combinations of the injecting, relaying and serving
functions. Its duties are then the union of the various duties functions. Its duties are then the union of the various duties
concerned. concerned.
8.1. General principles to be followed 8.1. General principles to be followed
There are two important principles that news implementors (and There are two important principles that news implementors (and
skipping to change at page 64, line 5 skipping to change at page 65, line 28
Be liberal in what you accept, and conservative in what you Be liberal in what you accept, and conservative in what you
send. send.
However, in the case of news there is an even more important However, in the case of news there is an even more important
principle, derived from a much older code of practice, the principle, derived from a much older code of practice, the
Hippocratic Oath (we may thus call this the Hippocratic Principle): Hippocratic Oath (we may thus call this the Hippocratic Principle):
First, do no harm. First, do no harm.
News Article Format and Transmission November 2003
It is VITAL to realize that decisions which might be merely It is VITAL to realize that decisions which might be merely
suboptimal in a smaller context can become devastating mistakes when suboptimal in a smaller context can become devastating mistakes when
amplified by the actions of thousands of hosts within a few minutes. amplified by the actions of thousands of hosts within a few minutes.
In the case of gateways, the primary corollary to this is: In the case of gateways, the primary corollary to this is:
Cause no loops. Cause no loops.
8.2. Duties of an Injecting Agent 8.2. Duties of an Injecting Agent
An Injecting Agent is responsible for taking a proto-article from a An Injecting Agent is responsible for taking a proto-article from a
posting agent and either forwarding it to a moderator or injecting it posting agent and either forwarding it to a moderator or injecting it
into the relaying system for access by readers. into the relaying system for access by readers.
As such, an injecting agent is considered responsible for ensuring As such, an injecting agent is considered responsible for ensuring
that any article it injects conforms with the rules of this standard. that any article it injects conforms with the rules of this standard.
It is also expected to bear some responsibility towards the rest of It is also expected to bear some responsibility towards the rest of
the network for the behaviour of its posters (and provision is the network for the behaviour of its posters (and provision is
therefore made for it to be easily contactable by email). therefore made for it to be easily contactable by email).
In the normal course of events, an article that has already been
injected into a Netnews network will never pass through another
injecting agent. So, if an injecting agent receives an otherwise
valid article that has already been injected (as evidenced by the
presence of an Injection-Date-header, an Injection-Info-header, or
more thath one '%' path-delimiter in a Path-header) it MAY choose to
reject it, but otherwise SHOULD cause it to be relayed, as it stands,
by a relaying agent (8.3).
In exceptional circumstances (e.g. as part of come complex gatewaying
process, or where a relaying agent considers it essential for
fulfilling its responsibility towards the rest of the network) an
News Article Format and Transmission May 2004
already injected article MAY be "reinjected" into the network. This
standard does not prescribe any such circumstance; rather this is a
matter of policy to be determined by the administrators of each
injecting agent, who have the responsibility to ensure that no harm
arises. In all other circumstances, unintented reinjection is to be
avoided (see 8.8). Nevertheless, in order to preserve the integrity
of the network in those special cases, this standard does set out the
proper way to reinject.
8.2.1. Proto-articles 8.2.1. Proto-articles
A proto-article is one that has been created by a posting agent and A proto-article is one that has been created by a posting agent and
has not yet been injected into the news system by an injecting agent. has not yet been injected into a Netnews system by an injecting
It SHOULD NOT be propagated in that form to other than injecting agent. It SHOULD NOT be propagated in that form to other than
agents. A proto-article has the same format as a normal article injecting agents.
except that some of the following mandatory headers MAY be omitted:
Message-Id-header, Date-header, Path-header (and even From-header if
the particular injecting agent can derive that information from other
sources). These headers MUST NOT contain invalid values; they MUST
either be correct or not present at all.
A proto-article SHOULD NOT contain the '%' path-delimiter in any
Path-header, except in the rare cases where an article gets injected
twice. It MAY contain path-identities with other path-delimiters in
the pre-injection portion of the Path-header (5.6.3).
8.2.2. Procedure to be followed by Injecting Agents A proto-article has the same format as a normal article except that
some of the following mandatory headers MAY be omitted: Message-Id-
header, Date-header, Path-header (and even From-header if the
particular injecting agent can derive that information from other
sources). However, if it is intended to offer the proto-article to
two or more injecting agents in parallel, then it is only the Path-
header that MAY be omitted. The omitted headers MUST NOT contain
invalid values; they MUST either be correct or not present at all.
A injecting agent receives proto-articles from posting and followup NOTE: An article that is offered for reinjection has, by
agents. It verifies them, adds headers where required and then either definition, already been injected once, and is not therefore to
forwards them to a moderator or injects them by passing them to be considered as a proto-article. Hence a genuine proto-article
serving or relaying agents. will not contain any Injection-Date-header nor any '%' path-
delimiter in its Path-header. It MAY contain path-identities
with other path-delimiters in the pre-injection portion of its
Path-header (5.6.3).
If an injecting agent receives an otherwise valid article that has 8.2.2. Procedure to be followed by Injecting Agents
already been injected it SHOULD either act as if it is a relaying
agent or else pass the article on to a relaying agent completely
unaltered. Exceptionally, it MAY reinject the article, perhaps as a
part of some complex gatewaying process (in which case it will add a
second '%' path-delimiter to the Path-header). It MUST NOT forward
an already injected article to a moderator.
News Article Format and Transmission November 2003 An injecting agent receives proto-articles from posting and followup
agents. It verifies them, adds headers where required, and then
either forwards them to a moderator or injects them by passing them
to serving or relaying agents. It MUST NOT forward an already
injected article to a moderator.
An injecting agent processes articles as follows: An injecting agent processes articles as follows:
1. It MUST remove any Injector-Info- or Complaints-To-header already 1. It MUST remove any Injection-Info- or Complaints-To-header already
present (though it might be useful to copy them to suitable X- present (though it might be useful to copy them to suitable X-
headers). It SHOULD likewise remove any NNTP-Posting-Host or other headers). It SHOULD likewise remove any NNTP-Posting-Host, X-Trace
undocumented tracing header. or other undocumented tracing header.
2. It SHOULD verify that the article is from a trusted source. 2. It SHOULD verify that the article is from a trusted source.
However, it MAY allow articles in which headers contain "forged" However, it MAY allow articles in which headers contain unverified
email addresses, that is, addresses which are not valid for the email addresses, that is, addresses which are not known to be
known and trusted source, especially if they end in ".invalid". valid for the trusted source, and notably so if they end in
".invalid".
3. It MUST reject any article whose Date-header is more than 24 hours News Article Format and Transmission May 2004
into the past or into the future (cf. 5.1).
3. It SHOULD reject any article whose Date-header (5.1) is more than
24 hours into the future (and MAY use a margin less than that 24
hours). It MUST, except when reinjecting, reject any article with
an Injection-Date-header already present (and SHOULD do likewise
with any NNTP-Posting-Date-header). It MAY when reinjecting, but
only if there is no Injection-Date-header present, reject any
article whose Date-header appears to be stale (e.g. more than 72
hours into the past).
4. It MUST reject any article that does not have the correct 4. It MUST reject any article that does not have the correct
mandatory headers for a proto-article (5 and 8.2.1) present, or mandatory headers for a proto-article (or, when reinjecting, all
which contains any header that does not have syntactically legal the mandatory headers other than Injection-Date), or which
contents. It SHOULD reject any article which contains any header contains any header that does not have legal contents. It SHOULD
deprecated for Netnews (4.2.1). reject any article which contains any header deprecated for
Netnews (4.2.1).
5. If the article is rejected (for reasons given above, or for other 5. If the article is rejected (for reasons given above, or for other
formatting errors or matters of site policy) the posting agent formatting errors or matters of site policy) the posting agent
SHOULD be informed (such as via an NNTP 44x response code) that SHOULD be informed (such as via an NNTP 44x response code) that
posting has failed and the article MUST NOT then be processed posting has failed and the article MUST NOT then be processed
further. further.
6. The Message-ID and Date-headers (and their contents) MUST be added 6. The Message-ID, Date and From-headers (and their contents) MUST be
when not already present. added when not already present (but that situation could not arise
during reinjection).
7. A Path-header with a tail-entry (5.6.3) MUST be correctly added if 7. A Path-header with a tail-entry (5.6.3) MUST be correctly added if
not already present (except that it SHOULD NOT be added if the not already present (except that it SHOULD NOT be added if the
article is to be forwarded to a moderator). article is to be forwarded to a moderator). During reinjection,
the existing Path-header SHOULD be retained.
8. The path-identity of the injecting agent with a '%' path-delimiter 8. The path-identity of the injecting agent with a '%' path-delimiter
(5.6.2) MUST be prepended to the Path-header; moreover, that (5.6.2) MUST be prepended to the Path-header (which could result
path-identity MUST be an FQDN mailable address (5.6.2). in more that one '%' path-delimiter in the case of reinjection);
moreover, that path-identity MUST be an FQDN mailable address
(5.6.2).
9. An Injector-Info-header (6.19) SHOULD be added, identifying the 9. An Injection-Info-header (6.19) SHOULD be added, identifying the
trusted source of the article, and a suitable Complaints-To-header trusted source of the article, and a suitable Complaints-To-header
(6.20) MAY be added (except that these two headers MUST NOT be (6.20) MAY be added (except that these two headers MUST NOT be
added if the article is to be forwarded to a moderator). added if the article is to be forwarded to a moderator).
10.The injecting agent MUST NOT alter the body of the article in any 10.The injecting agent MUST NOT alter the body of the article in any
way. It MAY add other headers not already provided by the poster, way. It MAY, except when reinjecting, add other headers not
but SHOULD NOT alter, delete, or reorder any existing header, with already provided by the poster, but SHOULD NOT alter, delete, or
the specific exception of "tracing" headers such as Injector-Info reorder any existing header, with the specific exception of
and Complaints-To, which are to be removed as already mentioned. "tracing" headers such as Injection-Info and Complaints-To, which
are to be removed as already mentioned.
11.If the Newsgroups-header contains no moderated groups, or if it 11.If the Newsgroups-header contains no moderated groups, or if it
contains an Approved-header, the injecting agent forwards the contains an Approved-header, the injecting agent MUST then add an
article to one or more relaying or serving agents. Injection-Date-header (5.7) if one is not already present, but it
MUST NOT alter, or remove, an already present Injection-Date-
header (and likewise SHOULD NOT alter, or remove, an already
News Article Format and Transmission May 2004
News Article Format and Transmission November 2003 present NNTP-Posting-Date-header). Finally, it forwards the
article to one or more relaying or serving agents.
12.Otherwise, when the Newsgroups-header contains one or more 12.Otherwise, when the Newsgroups-header contains one or more
moderated groups and the article does NOT contain an Approved- moderated groups and the article does NOT contain an Approved-
header, the injecting agent MUST forward it to the moderator of header, the injecting agent MUST forward it to the moderator of
the first (leftmost) moderated group listed in the Newsgroups- the first (leftmost) moderated group listed in the Newsgroups-
header via email. There are two possibilities for doing this: header via email. There are two possibilities for doing this:
(a) The complete article is encapsulated (headers and all) within (a) The complete article is encapsulated (headers and all) within
the email, preferably using the Content-Type the email, preferably using the Content-Type
"application/news-transmission" (6.21.4.1) with any usage "application/news-transmission" (6.21.4.1) with any usage
skipping to change at page 66, line 58 skipping to change at page 69, line 4
A Relaying Agent accepts injected articles from injecting and other A Relaying Agent accepts injected articles from injecting and other
relaying agents and passes them on to relaying or serving agents relaying agents and passes them on to relaying or serving agents
according to mutually agreed policy. Relaying agents SHOULD accept according to mutually agreed policy. Relaying agents SHOULD accept
articles ONLY from trusted agents. articles ONLY from trusted agents.
A relaying agent processes articles as follows: A relaying agent processes articles as follows:
1. It MUST verify the leftmost entry in the Path-header and then 1. It MUST verify the leftmost entry in the Path-header and then
prepend its own path-identity with a '/' path-delimiter, and prepend its own path-identity with a '/' path-delimiter, and
possibly also the verified path-identity of its source with a '?' possibly also the verified path-identity of its source with a '?'
path-delimiter (5.6.2). News Article Format and Transmission May 2004
News Article Format and Transmission November 2003 path-delimiter (5.6.2).
2. It MUST reject any article whose Date-header is stale (see 5.1). 2. It MUST examine the Injection-Date-header (or, if that is absent,
the Date-header) and reject the article as stale (5.7) if that
predates the earliest articles of which it normally keeps record,
or if it is more than 24 hours into the future (the margin MAY be
less than that 24 hours).
3. It MUST reject any article that does not have the correct 3. It MUST reject any article that does not have the correct
mandatory headers (section 5) present with legal contents. mandatory headers (section 5) present with legal contents.
4. It SHOULD reject any article whose optional headers (section 6) do 4. It SHOULD reject any article whose optional headers (section 6) do
not have legal contents. not have legal contents.
5. It SHOULD reject any article that has already been sent to it (a 5. It SHOULD reject any article that has already been sent to it (a
database of message identifiers of recent messages is usually kept database of message identifiers of recent messages is usually kept
and matched against). and matched against).
skipping to change at page 67, line 53 skipping to change at page 70, line 5
entity has explicitly requested that it be informed of such errors. entity has explicitly requested that it be informed of such errors.
NOTE: In order to prevent overloading, relaying agents should NOTE: In order to prevent overloading, relaying agents should
not routinely query an external entity (such as a DNS-server) in not routinely query an external entity (such as a DNS-server) in
order to verify an article (though a local cache of the required order to verify an article (though a local cache of the required
information might usefully be consulted). information might usefully be consulted).
Relaying agents MUST NOT alter, delete or rearrange any part of an Relaying agents MUST NOT alter, delete or rearrange any part of an
article expect for headers designated as variant (4.2.5.3). article expect for headers designated as variant (4.2.5.3).
News Article Format and Transmission May 2004
8.4. Duties of a Serving Agent 8.4. Duties of a Serving Agent
A Serving Agent takes an article from a relaying or injecting agent A Serving Agent takes an article from a relaying or injecting agent
and files it in a "news database". It also provides an interface for and files it in a "news database". It also provides an interface for
reading agents to access the news database. This database is normally reading agents to access the news database. This database is normally
indexed by newsgroup with articles in each newsgroup identified by an indexed by newsgroup with articles in each newsgroup identified by an
article-locator (usually in the form of a decimal number - see 6.16). article-locator (usually in the form of a decimal number - see 6.16).
News Article Format and Transmission November 2003
NOTE: Since control messages are often of interest, but should NOTE: Since control messages are often of interest, but should
not be displayed as normal articles in regular newsgroups, it is not be displayed as normal articles in regular newsgroups, it is
common for serving agents to make them available in a pseudo- common for serving agents to make them available in a pseudo-
newsgroup named "control" or in a pseudo-newsgroup in a sub- newsgroup named "control" or in a pseudo-newsgroup in a sub-
hierarchy under "control." (e.g. "control.cancel"). hierarchy under "control." (e.g. "control.cancel").
A serving agent processes articles as follows: A serving agent processes articles as follows:
1. It MUST verify the leftmost entry in the Path-header and then 1. It MUST verify the leftmost entry in the Path-header and then
prepend its own path-identity with a '/' path-delimiter, and prepend its own path-identity with a '/' path-delimiter, and
possibly also the verified path-identity of its source with a '?' possibly also the verified path-identity of its source with a '?'
path-delimiter (5.6.2). path-delimiter (5.6.2).
2. It MUST reject any article whose Date-header is stale (see 5.1). 2. It MUST examine the Injection-Date-header (or, if that is absent,
the Date-header) and reject the article as stale (5.7) if that
predates the earliest articles of which it normally keeps record,
or if it is more than 24 hours into the future (the margin MAY be
less than that 24 hours).
3. It MUST reject any article that does not have the correct 3. It MUST reject any article that does not have the correct
mandatory headers (section 5) present, or which contains any mandatory headers (section 5) present, or which contains any
header that does not have legal contents. header that does not have legal contents.
4. It SHOULD reject any article that has already been sent to it (a 4. It SHOULD reject any article that has already been sent to it (a
database of message identifiers of recent messages is usually kept database of message identifiers of recent messages is usually kept
and matched against). and matched against).
5. It SHOULD reject any article that matches an already received 5. It SHOULD reject any article that matches an already received
skipping to change at page 68, line 49 skipping to change at page 71, line 5
7. It MUST remove any Xref-header (6.16) from each article. It then 7. It MUST remove any Xref-header (6.16) from each article. It then
MAY (and usually will) generate a fresh Xref-header. MAY (and usually will) generate a fresh Xref-header.
8. Finally, it stores the article in its news database. 8. Finally, it stores the article in its news database.
8.5. Duties of a Posting Agent 8.5. Duties of a Posting Agent
A Posting Agent is used to assist the poster in creating a valid A Posting Agent is used to assist the poster in creating a valid
proto-article and forwarding it to an injecting agent. proto-article and forwarding it to an injecting agent.
News Article Format and Transmission May 2004
Postings agents SHOULD ensure that proto-articles they create are Postings agents SHOULD ensure that proto-articles they create are
valid news articles according to this standard and other applicable valid according to this standard and other applicable policies. In
policies. particular, they MUST NOT create any Injection-Date-, Injection-Info-
or Complaints-To-header.
Posting agents meant for use by ordinary posters SHOULD reject any Posting agents meant for use by ordinary posters SHOULD reject any
attempt to post an article which cancels or Supersedes another attempt to post an article which cancels or Supersedes another
article of which the poster is not the author. article of which the poster is not the author.
News Article Format and Transmission November 2003
8.6. Duties of a Followup Agent 8.6. Duties of a Followup Agent
A Followup Agent is a special case of a posting agent and as such is A Followup Agent is a special case of a posting agent, and as such is
bound by all the posting agent's requirements. Followup agents MUST bound by all the posting agent's requirements. Followup agents MUST
create valid followups and are subject to the following special create valid followups and are subject to special requirements
requirements involving certain inheritable (4.2.5.2) and other involving certain inheritable (4.2.5.2) and other headers. Wherever
headers. in the following it is stated that, "by default", a header is to be
taken from some header in the precursor, it means that its initial
content (plus its extension-parameters, if any) are to be copied from
those of that precursor header. However, posters MAY then override
that default before posting if they so wish.
1. The Newsgroups-header (5.5) SHOULD be initialized from the NOTE: There is no provision in this standard for a followup to
precursor's Followup-To-header, if present and otherwise from the have more than one precursor (though it might be permitted in
precursor's Newsgroups-header, when preparing a followup; however some future extension).
posters MAY then change this before posting if they wish.
2. The Subject-content (5.4) of the precursor MAY (and usually will) 1. The Newsgroups-header (5.5) SHOULD by default be taken from the
be prepended with the back-reference "Re: " (which is case precursor's Followup-To-header if present, and otherwise from the
sensitive), unless that precursor is itself a followup with "Re: " precursor's Newsgroups-header. However, if the content of that
already present in its Subject-content; however posters MAY then Followup-To-header consists of "poster" (and the user does not
change this before posting if they wish. The prepended "Re: " override it), then the followup MUST NOT be posted but, rather, is
SHOULD NOT be contained within any encoded-word in the new to be emailed to the precursor's poster.
Subject-content.
Followup agents SHOULD NOT use any other string except "Re: " as a 2. The Subject-header SHOULD by default be taken from that of the
back-reference, and specifically NOT a translation of "Re: " into precursor's Subject-header. The case sensitive string "Re: "
a local language, and they SHOULD NOT prepend a "Re: " if one is (known as a "back reference") MAY be prepended to its Subject-
already present. Content unless it already begins with that string.
[The provision of back-references and their allowed forms are still
under discussion in the Usefor Working Group.]
NOTE: "Re" is an abbreviation for the Latin "In re", meaning "in NOTE: The practice of prepending such a "Re: " (which is an
the matter of", and not an abbreviation of "Reference" as is abbreviation for the Latin "In re", meaning "in the matter of",
sometimes erroneously supposed. Reading agents often take note and not an abbreviation of "Reference" as is sometimes
of a single "Re: " at the beginning of a Subject-content (for erroneously supposed) is widespread, but reading agents cannot
example, in order to display a list of articles sorted by rely on all followup Subject-headers using it, nor can it be
Subject). These restrictions ensure that reading agents have no assumed that reading agents will understand any back-reference
need to recognize more than a single occurrence of "Re: ". other than a single "Re: ".
[Shmuel wants something like "... nor that the "Re:" was even intended
as a back-reference."]
3. The Distribution-header (6.6) SHOULD be initialized from the Some reading agents, notably those which choose to use the
precursor's Distribution-header, if any; however posters MAY then Subject-header to enable a simple form of thread sorting, need
change this before posting if they wish. to be able to recognize the presence of a back-reference.
[Various other snippets of text have been suggested for the NOTE,
including the following:
News Article Format and Transmission May 2004
NOTE: Some reading agents expect a single "Re: " at the
beginning of the Subject-content of a followup, and consider
this when sorting articles for display. This is unreliable, and
an intrusion on the unstructured nature of the header, but
widespread.
NOTE: Some reading agents expect this string at the beginning of
the Subject-content of a followup, and consider this when
sorting articles for display. Further, most expect just one
instance of "Re: ", and do not treat any other string in this
manner.
NOTE: Further discussion of this (user interface) issue can be
found in [USEAGE] section x.x.
Although "Re: " is case-sensitive, there has historically been
some disagreement about that, so it is best to check for its
presence with a case-insensitive test.
End of snippets.]
3. The Distribution-header (6.6) SHOULD by default be taken from the
precursor's Distribution-header, if any.
4. If the precursor did not have a References-header (6.10), the 4. If the precursor did not have a References-header (6.10), the
followup's References-content MUST be formed by the message followup's References-content MUST be formed by the message
identifier of the precursor. A followup to an article which had a identifier of the precursor. A followup to an article which had a
References-header MUST have a References-header containing the References-header MUST have a References-header containing the
precursor's References-content (subject to trimming as described precursor's References-content (subject to trimming as described
below) plus the precursor's message identifier appended to the end below) plus the precursor's message identifier appended to the end
of the list (separated from it by CFWS). of the list (separated from it by CFWS).
Followup agents MAY trim References-headers which have grown to Followup agents MAY trim References-headers which have grown to
excessive length, but the first and last message identifiers from excessive length, but the first and last message identifiers from
the precursor MUST NOT be removed. the precursor MUST NOT be removed.
News Article Format and Transmission November 2003 5. If the precursor contains a Mail-Copies-To-header (6.8), the
5. If the precursor contains a Mail-Copies-To-header (6.8), The
actions to be taken, in accordance with the Mail-Copies-To- actions to be taken, in accordance with the Mail-Copies-To-
content, (and subject to manual override by the poster) are as content, (and subject to manual override by the poster) are as
follows: follows:
"nobody" (or when the header is absent) "nobody" (or when the header is absent)
The followup agent SHOULD NOT email a copy of the followup The followup agent SHOULD NOT email a copy of a posted
to the poster of the precursor. followup to the poster of the precursor.
"poster" "poster"
The followup agent SHOULD (if it has the necessary The followup agent SHOULD (if it has the necessary
capability) email a copy of the followup, which MUST then be capability) email a copy of a posted followup, which MUST
sent to the address(es) in the Reply-To-header, and in the then be sent to the address(es) in the Reply-To-header, and
absence of that to the address(es) in the From-header. in the absence of that to the address(es) in the From-
header.
a copy-addr a copy-addr
The followup agent SHOULD likewise email a copy of the The followup agent SHOULD likewise email a copy of a posted
followup, which MUST then be sent to the copy-addr. followup, which MUST then be sent to the copy-addr.
News Article Format and Transmission May 2004
When emailing a copy, the followup agent SHOULD also include a When emailing a copy, the followup agent SHOULD also include a
"Posted-And-Mailed: yes" header (6.9). "Posted-And-Mailed: yes" header (6.9).
Followup agents SHOULD NOT attempt to send email to any address Followup agents SHOULD NOT attempt to send email to any address
ending in ".invalid". ending in ".invalid".
8.7. Duties of a Moderator 8.7. Duties of a Moderator
A Moderator receives news articles by email, decides whether to A Moderator receives news articles by email, decides whether to
accept them and, if so, either injects them into the news stream or accept them and, if so, either injects them into the news stream or
skipping to change at page 71, line 5 skipping to change at page 73, line 43
article is a cancel nessage (7.3) issued by the poster of an article is a cancel nessage (7.3) issued by the poster of an
earlier article, then he is expected to cancel that earlier earlier article, then he is expected to cancel that earlier
article (in which case there is no more to be done). He MAY article (in which case there is no more to be done). He MAY
modify the article if that is in accordance with the applicable modify the article if that is in accordance with the applicable
moderation policy (and in particular he MAY remove redundant moderation policy (and in particular he MAY remove redundant
headers and add Comments and other informational headers). He headers and add Comments and other informational headers). He
also needs to be aware if any change he makes to the article will also needs to be aware if any change he makes to the article will
invalidate some authentication check provided by the poster or by invalidate some authentication check provided by the poster or by
an earlier moderator. an earlier moderator.
News Article Format and Transmission November 2003
If the article is rejected, then it normally fails for all the If the article is rejected, then it normally fails for all the
newsgroups for which it was intended. If it is accepted, the newsgroups for which it was intended. If it is accepted, the
moderator proceeds with the following steps. moderator proceeds with the following steps.
2. If the Newsgroups-header contains further moderated newsgroups for 2. If the Newsgroups-header contains further moderated newsgroups for
which approval has not already been given, he adds an indication which approval has not already been given, he adds an indication
(identifying both himself and the name of the group) that he (identifying both himself and the name of the group) that he
approves the article, and then forwards it to the moderator of the approves the article, and then forwards it to the moderator of the
leftmost unapproved group (which, if this standard has been leftmost unapproved group (which, if this standard has been
followed correctly, will generally be the next moderated group to followed correctly, will generally be the next moderated group to
the right of his own). There are two ways to do this: the right of his own). There are two ways to do this:
(a) He emails it to the submission address of the next moderator (a) He emails it to the submission address of the next moderator
(see section 8.2.2 for the proper method of doing this), or (see section 8.2.2 for the proper method of doing this), or
(b) he rotates the newsgroup-names in the Newsgroups-header to (b) he rotates the newsgroup-names in the Newsgroups-header to
the left so that the targeted group is the leftmost moderated the left so that the targeted group is the leftmost moderated
group in that header, and injects it as below (thus causing group in that header, and injects it as below (thus causing
News Article Format and Transmission May 2004
the injecting agent to email it to the correct moderator). the injecting agent to email it to the correct moderator).
However, he MUST first ensure that the article contains no However, he MUST first ensure that the article contains no
Approved-header. Approved-header.
NOTE: This standard does not prescribe how a moderator's NOTE: This standard does not prescribe how a moderator's
approval is to be indicated (though a future standard may do approval is to be indicated (though a future standard may do
so). Possible methods include adding an Approved header (or a so). Possible methods include adding an Approved header (or a
similar but differently named header if method (b) is being similar but differently named header if method (b) is being
used) listing all the approvals made so far, or adding a used) listing all the approvals made so far, or adding a
separate header for each individual approval (the header X-Auth separate header for each individual approval (the header X-Auth
is sometimes used for this purpose). The approval may also be is sometimes used for this purpose). The approval may also be
confirmed with some form of digital signature (7.1). confirmed with some form of digital signature (7.1).
3. If the Newsgroups-header contains no further unapproved moderated 3. If the Newsgroups-header contains no further unapproved moderated
groups, he adds an Approved-header (6.14) identifying himself and, groups, he adds an Approved-header (6.14) identifying himself and,
insofar as is possible, all the other moderators who have approved insofar as is possible, all the other moderators who have approved
the article. He thus assumes responsibility for having ensured the article. He thus assumes responsibility for having ensured
that the article was acceptable to the moderators of all the that the article was acceptable to the moderators of all the
moderated groups involved. moderated groups involved.
4. The Date-header SHOULD be retained, except that if it is stale 4. The Date-header SHOULD be retained. Any Injection-Date-header
(5.1) for reasons understood by the moderator (e.g. delays in the already present (though there should be none) MUST be removed.
moderation process) he MAY substitute the current date (but must Exceptionally, if it is known that the injecting agent does not
then take responsibility for any loops that ensue). The Message- yet support the Injection-Date-header and the Date-header appears
ID-header SHOULD also be retained unless it is obviously non- to be stale (5.7) for reasons understood by the moderator (e.g.
compliant with this standard. delays in the moderation process) he MAY substitute the current
date. The Message-ID-header SHOULD also be retained unless it is
obviously non-compliant with this standard.
NOTE: A message identifier created by a conforming posting or NOTE: A message identifier created by a conforming posting or
injecting agent, or even by a mail user agent conforming to [RFC injecting agent, or even by a mail user agent conforming to [RFC
2822], may reasonably be supposed to be conformant (and will, in 2822], may reasonably be supposed to be conformant (and will, in
any case, be caught by the injecting agent if it is not). any case, be caught by the injecting agent if it is not).
5. Any variant headers (4.2.5.3) MUST be removed, except that a 5. Any variant headers (4.2.5.3) MUST be removed, except that a
Path-header MAY be truncated to only its pre-injection region Path-header MAY be truncated to only its pre-injection region
(5.6.3). Any Injector-Info-header (6.19) or Complaints-To-header (5.6.3). Any Injection-Date-header (5.7), Injection-Info-header
(6.20) MUST be removed. (6.19) or Complaints-To-header (6.20) MUST be removed (though in
fact there should be none of these).
News Article Format and Transmission November 2003
6. He then causes the article to be injected, having first observed 6. He then causes the article to be injected, having first observed
all the duties of a posting agent. all the duties of a posting agent.
NOTE: This standard does not prescribe how the moderator or NOTE: This standard does not prescribe how the moderator or
moderation policy for each newsgroup is established; rather it moderation policy for each newsgroup is established; rather it
assumes that whatever agencies are responsible for the relevant assumes that whatever agencies are responsible for the relevant
network or hierarchy (1.1) will have made appropriate network or hierarchy (1.1) will have made appropriate
arrangements in that regard. arrangements in that regard.
8.8. Duties of a Gateway 8.8. Duties of a Gateway
A Gateway transforms an article into the native message format of A Gateway transforms an article into the native message format of
another medium, or translates the messages of another medium into another medium, or translates the messages of another medium into
news articles. Encapsulation of a news article into a message of MIME news articles. Encapsulation of a news article into a message of MIME
News Article Format and Transmission May 2004
type application/news-transmission, or the subsequent undoing of that type application/news-transmission, or the subsequent undoing of that
encapsulation, is not gatewaying, since it involves no transformation encapsulation, is not gatewaying, since it involves no transformation
of the article. of the article.
There are two basic types of gateway, the Outgoing Gateway that There are two basic types of gateway, the Outgoing Gateway that
transforms a news article into a different type of message, and the transforms a news article into a different type of message, and the
Incoming Gateway that transforms a message from another medium into a Incoming Gateway that transforms a message from another medium into a
news article and injects it into a news system. These are handled news article and injects it into a news system. These are handled
separately below. separately below.
skipping to change at page 72, line 46 skipping to change at page 75, line 31
chance of discarding or interfering with the protection inherent in chance of discarding or interfering with the protection inherent in
the news system against duplicate articles. The most common problem the news system against duplicate articles. The most common problem
caused by gateways is "spews," gateway loops that cause previously caused by gateways is "spews," gateway loops that cause previously
posted articles to be reinjected repeatedly into Usenet. To prevent posted articles to be reinjected repeatedly into Usenet. To prevent
this, a gateway MUST take precautions against loops, as detailed this, a gateway MUST take precautions against loops, as detailed
below. below.
If bidirectional gatewaying (both an incoming and an outgoing If bidirectional gatewaying (both an incoming and an outgoing
gateway) is being set up between Netnews and some other medium, the gateway) is being set up between Netnews and some other medium, the
incoming and outgoing gateways SHOULD be coordinated to avoid incoming and outgoing gateways SHOULD be coordinated to avoid
reinjection of gated articles. Circular gatewaying (gatewaying a unintended reinjection of gated articles. Circular gatewaying
message into another medium and then back into Netnews) SHOULD NOT be (gatewaying a message into another medium and then back into Netnews)
done; encapsulation of the article SHOULD be used instead where this SHOULD NOT be done; encapsulation of the article SHOULD be used
is necessary. instead where this is necessary.
A second general principal of gatewaying is that the transformations A second general principal of gatewaying is that the transformations
applied to the message SHOULD be as minimal as possible while still applied to the message SHOULD be as minimal as possible while still
accomplishing the gatewaying. Every change made by a gateway accomplishing the gatewaying. Every change made by a gateway
potentially breaks a property of one of the media or loses potentially breaks a property of one of the media or loses
information, and therefore only those transformations made necessary information, and therefore only those transformations made necessary
by the differences between the media should be applied. by the differences between the media should be applied.
It is worth noting that safe bidirectional gatewaying between a It is worth noting that safe bidirectional gatewaying between a
mailing list and a newsgroup is far easier if the newsgroup is mailing list and a newsgroup is far easier if the newsgroup is
moderated. Posts to the moderated group and submissions to the moderated. Posts to the moderated group and submissions to the
News Article Format and Transmission November 2003
mailing list can then go through a single point that does the mailing list can then go through a single point that does the
necessary gatewaying and then sends the message out to both the necessary gatewaying and then sends the message out to both the
newsgroup and the mailing list at the same time, eliminating most of newsgroup and the mailing list at the same time, eliminating most of
the possibility of loops. Bidirectional gatewaying between a mailing the possibility of loops. Bidirectional gatewaying between a mailing
list and an unmoderated newsgroup, in contrast, is difficult to do list and an unmoderated newsgroup, in contrast, is difficult to do
correctly and is far more fragile. correctly and is far more fragile.
Newsgroups intended to be bidirectionally gated to a mailing list Newsgroups intended to be bidirectionally gated to a mailing list
SHOULD therefore be moderated where possible, even if the moderator SHOULD therefore be moderated where possible, even if the moderator
is a simple gateway and injecting agent that correctly handles is a simple gateway and injecting agent that correctly handles
crossposting to other moderated groups and otherwise passes all crossposting to other moderated groups and otherwise passes all
traffic. traffic.
News Article Format and Transmission May 2004
8.8.1. Duties of an Outgoing Gateway 8.8.1. Duties of an Outgoing Gateway
From the perspective of Netnews, an outgoing gateway is just a From the perspective of Netnews, an outgoing gateway is just a
special type of reading agent. The exact nature of what the outgoing special type of reading agent. The exact nature of what the outgoing
gateway will need to do to articles depends on the medium to which gateway will need to do to articles depends on the medium to which
the articles are being gated. The operation of the outgoing gateway the articles are being gated. The operation of the outgoing gateway
is only subject to additional constraints in the presence of one or is only subject to additional constraints in the presence of one or
more corresponding incoming gateways back from that medium to more corresponding incoming gateways back from that medium to
Netnews, since this opens the possibility of loops. Netnews, since this opens the possibility of loops.
In general, the following practices are recommended for all outgoing In general, the following practices are recommended for all outgoing
gateways, regardless of whether there is known to be a related gateways, regardless of whether there is known to be a related
incoming gateway, both as a precautionary measure and as a guideline incoming gateway, both as a precautionary measure and as a guideline
to quality of implementation. to quality of implementation.
1. The message identifier of the news article should be preserved if 1. The message identifier of the news article should be preserved if
at all possible, preferably as or within the corresponding unique at all possible, preferably as or within the corresponding unique
identifier of the other medium, but if not at least as a comment identifier of the other medium, but if not at least as a comment
in the message. This helps greatly with preventing loops. in the message. This helps greatly with preventing loops.
2. The Date of the news article should also be preserved if possible, 2. The Date and Injection-Date of the news article should also be
for similar reasons. preserved if possible, for similar reasons.
3. The message should be tagged in some way so as to prevent its 3. The message should be tagged in some way so as to prevent its
reinjection into Netnews. This may be impossible to do without reinjection into Netnews. This may be impossible to do without
knowledge of potential incoming gateways, but it is better to try knowledge of potential incoming gateways, but it is better to try
to provide some indication even if not successful; at the least, a to provide some indication even if not successful; at the least, a
human-readable indication that the article should not be gated human-readable indication that the article should not be gated
back to Netnews can help locate a human problem. back to Netnews can help locate a human problem.
4. Netnews control messages should not be gated to another medium 4. Netnews control messages should not be gated to another medium
unless they would somehow be meaningful in that medium. unless they would somehow be meaningful in that medium.
8.8.2. Duties of an Incoming Gateway 8.8.2. Duties of an Incoming Gateway
The incoming gateway has the serious responsibility of ensuring that The incoming gateway has the serious responsibility of ensuring that
all of the requirements of this standard are met by the articles that all of the requirements of this standard are met by the articles that
it forms. In addition to its special duties as a gateway, it bears it forms. In addition to its special duties as a gateway, it bears
all of the duties and responsibilities of an injecting agent as well, all of the duties and responsibilities of an injecting agent as well,
and additionally has the same responsibility of a relaying agent to and additionally has the same responsibility of a relaying agent to
reject articles that it has already gatewayed. reject articles that it has already gatewayed.
News Article Format and Transmission November 2003
An incoming gateway MUST NOT gate the same message twice. It may not An incoming gateway MUST NOT gate the same message twice. It may not
be possible to ensure this in the face of mangling or modification of be possible to ensure this in the face of mangling or modification of
the message, but at the very least a gateway, when given a copy of a the message, but at the very least a gateway, when given a copy of a
message it has already gated identical except for trace headers (like message it has already gated identical except for trace headers (like
Received in Email or Path in Netnews) MUST NOT gate the message Received in Email or Path in Netnews) MUST NOT gate the message
again. An incoming gateway SHOULD take precautions against having again. An incoming gateway SHOULD take precautions against having
this rule bypassed by modifications of the message that can be this rule bypassed by modifications of the message that can be
anticipated. anticipated.
News articles prepared by gateways MUST be legal news articles. In News articles prepared by gateways MUST be legal news articles. In
particular, they MUST include all of the mandatory headers, MUST particular, they MUST include all of the mandatory headers, MUST
fully conform to the restrictions on said headers, and SHOULD exclude fully conform to the restrictions on said headers, and SHOULD exclude
News Article Format and Transmission May 2004
any deprecated headers (4.2.1). This often requires that a gateway any deprecated headers (4.2.1). This often requires that a gateway
function not only as a relaying agent, but also partly as a posting function not only as a relaying agent, but also partly as a posting
agent, aiding in the synthesis of a conforming article from non- agent, aiding in the synthesis of a conforming article from non-
conforming input. conforming input.
Incoming gateways MUST NOT pass control messages (articles containing Incoming gateways MUST NOT pass control messages (articles containing
a Control- or Supersedes-header) without removing or renaming that a Control- or Supersedes-header) without removing or renaming that
header. Gateways MAY, however, generate their own cancel messages, header. Gateways MAY, however, generate their own cancel messages,
under the general allowance for injecting agents to cancel their own under the general allowance for injecting agents to cancel their own
messages (7.3). If a gateway receives a message that it can messages (7.3). If a gateway receives a message that it can
skipping to change at page 75, line 4 skipping to change at page 77, line 48
the message identifier of the news article, perhaps with the message identifier of the news article, perhaps with
transformations required to meet the uniqueness requirement of transformations required to meet the uniqueness requirement of
Netnews and with the removal of any comments so as to comply with the Netnews and with the removal of any comments so as to comply with the
syntax in section 5.3. Such transformations SHOULD be designed so syntax in section 5.3. Such transformations SHOULD be designed so
that two messages with the same identifier generate the same that two messages with the same identifier generate the same
Message-ID-header. Message-ID-header.
NOTE: Message identifiers play a central role in the prevention NOTE: Message identifiers play a central role in the prevention
of duplicates, and their correct use by gateways will do much to of duplicates, and their correct use by gateways will do much to
prevent loops. Netnews does, however, require that message prevent loops. Netnews does, however, require that message
News Article Format and Transmission November 2003
identifiers be unique, and therefore message identifiers from identifiers be unique, and therefore message identifiers from
other media may not be suitable for use without modification. A other media may not be suitable for use without modification. A
balance must be struck by the gateway between preserving balance must be struck by the gateway between preserving
information used to prevent loops and generating unique message information used to prevent loops and generating unique message
identifiers. identifiers.
Exceptionally, if there are multiple incoming gateways for a Exceptionally, if there are multiple incoming gateways for a
particular set of messages, each to a different newsgroup(s), each particular set of messages, each to a different newsgroup(s), each
one SHOULD generate a message identifier unique to that gateway. Each one SHOULD generate a message identifier unique to that gateway. Each
incoming gateway nonetheless MUST ensure that it does not gate the incoming gateway nonetheless MUST ensure that it does not gate the
same message twice. same message twice.
News Article Format and Transmission May 2004
NOTE: Consider the example of two gateways of a given mailing NOTE: Consider the example of two gateways of a given mailing
list into the world-wide Usenet newsgroups, both of which list into the world-wide Usenet newsgroups, both of which
preserve the email message identifier. Each newsgroup may then preserve the email message identifier. Each newsgroup may then
receive a portion of the messages (different sites seeing receive a portion of the messages (different sites seeing
different portions). In these cases, where there is no one different portions). In these cases, where there is no one
"official" gateway, some other method of generating message "official" gateway, some other method of generating message
identifiers has to be used to avoid collisions. It would identifiers has to be used to avoid collisions. It would
obviously be preferable for there to be only one gateway which obviously be preferable for there to be only one gateway which
crossposts, but this may not be possible to coordinate. crossposts, but this may not be possible to coordinate.
If no date information is available, the gateway MAY supply a Date- If no date information is available, the gateway MAY supply a Date-
header with the gateway's current date. If only partial information header with the gateway's current date. If no injection-date
is available (e.g. date but not time), this SHOULD be fleshed out to information is available, the gateway MUST supply an Injection-Date-
a full Date-header by adding default values rather than discarding header with whatever date information is available, and otherwise
this information. Only in very exceptional circumstances should Date with the gateway's current date. If only partial information is
information be discarded, as it plays an important role in preventing available (e.g. date but not time), this SHOULD be fleshed out to a
reinjection of old messages. full Date- and/or Injection-Date-header by adding default values
rather than discarding this information. Only in very exceptional
circumstances should Date information be discarded, as it plays an
important role in preventing reinjection of old messages.
An incoming gateway MUST add a Sender-header to the news article it An incoming gateway MUST add a Sender-header to the news article it
forms containing the mailbox of the administrator of the gateway. forms containing the mailbox of the administrator of the gateway.
Problems with the gateway may be reported to this mailbox. The Problems with the gateway may be reported to this mailbox. The
display-name portion of this mailbox SHOULD indicate that the entity display-name portion of this mailbox SHOULD indicate that the entity
responsible for injection of the message is a gateway. If the responsible for injection of the message is a gateway. If the
original message already had a Sender-header, it SHOULD be renamed so original message already had a Sender-header, it SHOULD be renamed so
that its contents can be preserved. that its contents can be preserved.
8.8.3. Example 8.8.3. Example
skipping to change at page 76, line 5 skipping to change at page 78, line 51
University designed to handle bidirectional gatewaying between University designed to handle bidirectional gatewaying between
mailing lists and unmoderated groups. mailing lists and unmoderated groups.
1. The news-to-mail gateway preserves the message identifier of the 1. The news-to-mail gateway preserves the message identifier of the
news article in the generated email message. The mail-to-news news article in the generated email message. The mail-to-news
gateway likewise preserves the email message identifier provided gateway likewise preserves the email message identifier provided
that it is syntactically valid for Netnews. This allows the news that it is syntactically valid for Netnews. This allows the news
system's built-in suppression of duplicates to serve as the first system's built-in suppression of duplicates to serve as the first
line of defense against loops. line of defense against loops.
News Article Format and Transmission November 2003
2. The news-to-mail gateway adds an X-Gateway-header to all messages 2. The news-to-mail gateway adds an X-Gateway-header to all messages
it generates. The mail-to-news gateway discards any incoming it generates. The mail-to-news gateway discards any incoming
messages containing this header. This is robust against mailing messages containing this header. This is robust against mailing
list managers that replace the message identifier, and against any list managers that replace the message identifier, and against any
number of email hops, provided that the other message headers are number of email hops, provided that the other message headers are
preserved. preserved.
3. The mail-to-news gateway inserts the host name from which it 3. The mail-to-news gateway inserts the host name from which it
received the email message in the pre-injection region of the Path received the email message in the pre-injection region of the Path
(5.6.3). The news-to-mail gateway refuses to gateway any message (5.6.3). The news-to-mail gateway refuses to gateway any message
News Article Format and Transmission May 2004
that contains the list server name in the pre-injection region of that contains the list server name in the pre-injection region of
its Path-header. This is robust against any amount of munging of its Path-header. This is robust against any amount of munging of
the message headers by the mailing list, provided that the email the message headers by the mailing list, provided that the email
only goes through one hop. only goes through one hop.
4. The mail-to-news gateway is designed never to generate bounces to 4. The mail-to-news gateway is designed never to generate bounces to
the envelope sender. Instead, articles that are rejected by the the envelope sender. Instead, articles that are rejected by the
news server (for reasons not warranting silent discarding of the news server (for reasons not warranting silent discarding of the
message) result in a bounce message sent to an errors address message) result in a bounce message sent to an errors address
known not to forward to any mailing lists, so that they can be known not to forward to any mailing lists, so that they can be
skipping to change at page 77, line 4 skipping to change at page 79, line 50
be propagated beyond a cooperating subnet. The key security word here be propagated beyond a cooperating subnet. The key security word here
is "cooperating". When a machine is not configured properly, it may is "cooperating". When a machine is not configured properly, it may
become uncooperative and tend to distribute all articles. become uncooperative and tend to distribute all articles.
The flooding algorithm is extremely good at finding any path by which The flooding algorithm is extremely good at finding any path by which
articles can leave a subnet with supposedly restrictive boundaries, articles can leave a subnet with supposedly restrictive boundaries,
and substantial administrative effort is required to avoid this. and substantial administrative effort is required to avoid this.
Organizations wishing to control such leakage are strongly advised to Organizations wishing to control such leakage are strongly advised to
designate a small number of official gateways to handle all news designate a small number of official gateways to handle all news
exchange with the outside world (however, making such gateways too exchange with the outside world (however, making such gateways too
News Article Format and Transmission November 2003
restrictive can also encourage the setting up of unofficial paths restrictive can also encourage the setting up of unofficial paths
which can be exceedingly hard to track down). which can be exceedingly hard to track down).
The sendme control message (7.4), insofar as it is still used, can be The sendme control message (7.4), insofar as it is still used, can be
used to request articles with a given message identifier, even one used to request articles with a given message identifier, even one
that is not supposed to be supplied to the requestor. that is not supposed to be supplied to the requestor.
News Article Format and Transmission May 2004
9.2. Attacks 9.2. Attacks
9.2.1. Denial of Service 9.2.1. Denial of Service
The proper functioning of individual newsgroups can be disrupted by The proper functioning of individual newsgroups can be disrupted by
the massive posting of "noise" articles, by the repeated posting of the massive posting of "noise" articles, by the repeated posting of
identical or near identical articles, by posting followups unrelated identical or near identical articles, by posting followups unrelated
to their precursors, or which quote their precursors in full with the to their precursors, or which quote their precursors in full with the
addition of minimal extra material (especially if this process is addition of minimal extra material (especially if this process is
iterated), and by crossposting to, or setting followups to, totally iterated), and by crossposting to, or setting followups to, totally
skipping to change at page 77, line 57 skipping to change at page 80, line 51
care to take the additional precautions of using more sophisticated care to take the additional precautions of using more sophisticated
anonymity measures, should avoid that violation by the use of anonymity measures, should avoid that violation by the use of
addresses ending in the ".invalid" top-level-domain (see 5.2). addresses ending in the ".invalid" top-level-domain (see 5.2).
A malicious poster may also prevent his article being seen at a A malicious poster may also prevent his article being seen at a
particular site by preloading that site into the Path-header (5.6.1) particular site by preloading that site into the Path-header (5.6.1)
and may thus prevent the true owner of a forged From or Reply-To and may thus prevent the true owner of a forged From or Reply-To
address from ever seeing it. address from ever seeing it.
A malicious complainer may submit a modified copy of an article (e.g. A malicious complainer may submit a modified copy of an article (e.g.
with an altered Injector-Info-header) to the administrator of an with an altered Injection-Info-header) to the administrator of an
injecting agent in an attempt to discredit the author of that article injecting agent in an attempt to discredit the author of that article
and even to have his posting privileges removed. Administrators and even to have his posting privileges removed. Administrators
News Article Format and Transmission November 2003
should therefore obtain a genuine copy of the article from their own should therefore obtain a genuine copy of the article from their own
serving agent before taking such precipitate action. serving agent before taking such precipitate action.
Administrative agencies with responsibility for establishing policies Administrative agencies with responsibility for establishing policies
in particular hierarchies can and should set bounds upon the in particular hierarchies can and should set bounds upon the
behaviour that is considered acceptable within those hierarchies (for behaviour that is considered acceptable within those hierarchies (for
example by promulgating charters for individual newsgroups, and other example by promulgating charters for individual newsgroups, and other
News Article Format and Transmission May 2004
codes of conduct). codes of conduct).
Whilst this standard places an onus upon injecting agents to bear Whilst this standard places an onus upon injecting agents to bear
responsibility for the misdemeanours of their posters (which includes responsibility for the misdemeanours of their posters (which includes
non-adherence to established policies of the relevant hierarchies as non-adherence to established policies of the relevant hierarchies as
provided in section 8.2), and to provide assistance to the rest of provided in section 8.2), and to provide assistance to the rest of
the network by making proper use of the Injector-Info- (6.19) and the network by making proper use of the Injection-Info- (6.19) and
Complaints-To- (6.20) headers, it makes no provision for enforcement, Complaints-To- (6.20) headers, it makes no provision for enforcement,
which may in consequence be patchy. Nevertheless, injecting sites which may in consequence be patchy. Nevertheless, injecting sites
which persistently fail to honour their responsibilities or to comply which persistently fail to honour their responsibilities or to comply
with generally accepted standards of behaviour are likely to find with generally accepted standards of behaviour are likely to find
themselves blacklisted, with their articles refused propagation and themselves blacklisted, with their articles refused propagation and
even subject to cancellation, and other relaying sites would be well even subject to cancellation, and other relaying sites would be well
advised to withdraw peering arrangements from them. advised to withdraw peering arrangements from them.
9.2.2. Compromise of System Integrity 9.2.2. Compromise of System Integrity
skipping to change at page 79, line 4 skipping to change at page 81, line 53
headers (6.15) are effectively cancel messages, and SHOULD be subject headers (6.15) are effectively cancel messages, and SHOULD be subject
to the same checks. Currently, many sites choose to ignore all to the same checks. Currently, many sites choose to ignore all
cancel messages on account of the difficulty of conducting such cancel messages on account of the difficulty of conducting such
checks. checks.
Improperly configured serving agents can allow articles posted to Improperly configured serving agents can allow articles posted to
moderated groups onto the net without first being approved by the moderated groups onto the net without first being approved by the
moderator. Injecting agents SHOULD verify that moderated articles moderator. Injecting agents SHOULD verify that moderated articles
were received from one of the entities given in their Approved- were received from one of the entities given in their Approved-
headers and/or check any digital signatures that may be provided (see headers and/or check any digital signatures that may be provided (see
News Article Format and Transmission November 2003
7.1). 7.1).
The filename parameter of the Archive-header (6.12) can be used to The filename parameter of the Archive-header (6.12) can be used to
attempt to store archived articles in inappropriate locations. attempt to store archived articles in inappropriate locations.
Archiving sites should be suspicious of absolute filename parameters, Archiving sites should be suspicious of absolute filename parameters,
as opposed to those relative to some location of the archiver's as opposed to those relative to some location of the archiver's
choosing. choosing.
News Article Format and Transmission May 2004
There may be weaknesses in particular implementations that are There may be weaknesses in particular implementations that are
subject to malicious exploitation. In particular, it has not been subject to malicious exploitation. In particular, it has not been
unknown for complete shell scripts to be included within Control- unknown for complete shell scripts to be included within Control-
headers. Implementors need to be aware of this. headers. Implementors need to be aware of this.
Reading agents should be chary of acting automatically upon MIME Reading agents should be chary of acting automatically upon MIME
objects with an "application" Content-Type that could change the objects with an "application" Content-Type that could change the
state of that agent, except in contexts where such applications are state of that agent, except in contexts where such applications are
specifically expected (see 6.21). Even the Content-Type "text/html" specifically expected (see 6.21). Even the Content-Type "text/html"
could have unexpected side effects on account of embedded objects, could have unexpected side effects on account of embedded objects,
skipping to change at page 80, line 5 skipping to change at page 82, line 49
Posters also need to be aware that they are responsible if they Posters also need to be aware that they are responsible if they
breach Copyright, Libel, Harassment or other restrictions relating to breach Copyright, Libel, Harassment or other restrictions relating to
material that they post, and that they may possibly find themselves material that they post, and that they may possibly find themselves
liable for such breaches in jurisdictions far from their own. Serving liable for such breaches in jurisdictions far from their own. Serving
agents may also be liable in some jurisdictions, especially if the agents may also be liable in some jurisdictions, especially if the
breach has been explicitly drawn to their attention. breach has been explicitly drawn to their attention.
Users who are concerned about such matters should seek advice from Users who are concerned about such matters should seek advice from
competent legal authorities. competent legal authorities.
News Article Format and Transmission November 2003
10. IANA Considerations 10. IANA Considerations
10.1. Media Types
IANA is requested to register the following media types, described IANA is requested to register the following media types, described
elsewhere in this standard for use with the Content-Type-header, in elsewhere in this standard for use with the Content-Type-header, in
the IETF tree in accordance with the procedures set out in [RFC the IETF tree in accordance with the procedures set out in [RFC
2048]. 2048].
application/news-transmission (6.21.4.1) application/news-transmission (6.21.4.1)
application/news-groupinfo (7.2.1.2) application/news-groupinfo (7.2.1.2)
application/news-checkgroups (7.2.4.1) application/news-checkgroups (7.2.4.1)
News Article Format and Transmission May 2004
IANA is also requested to change the status of the following media IANA is also requested to change the status of the following media
type to "OBSOLETE". type to "OBSOLETE".
message/news (6.21.4.2) message/news (6.21.4.2)
NOTE: "Application/news-transmission" is an update, with NOTE: "Application/news-transmission" is an update, with
clarification and additional optional parameters, to an existing clarification and additional optional parameters, to an existing
registration. "Message/rfc822" should now be used in place of registration. "Message/rfc822" should now be used in place of
the obsoleted "message/news". the obsoleted "message/news".
10.2. Header Field Registry
IANA is requested to register the following headers in the Permanent
Message Header Field Repository, in accordance with the procedures
set out in [KLYNE].
Header field Applicable Status Author/Change Specification
name protocol controller document
Date netnews standard IETF [USEFOR] 5.1
From netnews standard IETF [USEFOR] 5.2
Message-ID netnews standard IETF [USEFOR] 5.3
Subject netnews standard IETF [USEFOR] 5.4
Newsgroups netnews standard IETF [USEFOR] 5.5
Newsgroups mail standard IETF [USEFOR] 5.5
Path netnews standard IETF [USEFOR] 5.6
Reply-To netnews standard IETF [USEFOR] 6.1
Sender netnews standard IETF [USEFOR] 6.2
Organization netnews standard IETF [USEFOR] 6.3
Keywords netnews standard IETF [USEFOR] 6.4
Summary netnews standard IETF [USEFOR] 6.5
Distribution netnews standard IETF [USEFOR] 6.6
Followup-To netnews standard IETF [USEFOR] 6.7
Mail-Copies-To netnews standard IETF [USEFOR] 6.8
Posted-And-Mailed netnews standard IETF [USEFOR] 6.9
References netnews standard IETF [USEFOR] 6.10
Expires netnews standard IETF [USEFOR] 6.11
Archive netnews standard IETF [USEFOR] 6.12
Control netnews standard IETF [USEFOR] 6.13
Approved netnews standard IETF [USEFOR] 6.14
Supersedes netnews standard IETF [USEFOR] 6.15
Xref netnews standard IETF [USEFOR] 6.16
Lines netnews standard IETF [USEFOR] 6.17
User-Agent netnews standard IETF [USEFOR] 6.18
User-Agent mail standard IETF [USEFOR] 6.18
Injection-Info netnews standard IETF [USEFOR] 6.19
NNTP-Posting-Host netnews deprecated IETF [USEFOR] 6.19
NNTP-Posting-Date netnews deprecated IETF [USEFOR] 5.7
Complaints-To netnews standard IETF [USEFOR] 6.20
Also-Control netnews obsoleted IETF [USEFOR] 6.22
See-Also netnews obsoleted IETF [USEFOR] 6.22
Article-Names netnews obsoleted IETF [USEFOR] 6.22
Article-Updates netnews obsoleted IETF [USEFOR] 6.22
News Article Format and Transmission May 2004
11. References 11. References
[ANSI X3.4] "American National Standard for Information Systems - [ANSI X3.4] "American National Standard for Information Systems -
Coded Character Sets - 7-Bit American National Standard Code for Coded Character Sets - 7-Bit American National Standard Code for
Information Interchange (7-Bit ASCII)", ANSI X3.4, 1986. Information Interchange (7-Bit ASCII)", ANSI X3.4, 1986.
[ISO 3166] "Codes for the representation of names of countries and [ISO 3166] "Codes for the representation of names of countries and
their subdivisions -- Part 1: Country codes", ISO 3166, 1997. their subdivisions -- Part 1: Country codes", ISO 3166, 1997.
[ISO/IEC 10646] "International Standard - Information technology - [ISO/IEC 10646] "International Standard - Information technology -
Universal Multiple-Octet Coded Character Set (UCS) - Part 1: Universal Multiple-Octet Coded Character Set (UCS) - Part 1:
Architecture and Basic Multilingual Plane", ISO/IEC 10646- Architecture and Basic Multilingual Plane", ISO/IEC 10646-
1:2000, 2000. 1:2000, 2000.
[KLYNE] G. Klyne and J. Mogul, "Registration procedures for message [KLYNE] G. Klyne, M. Nottingham, and J. Mogul, "Registration
header fields", draft-klyne-msghdr-registry-06.txt. procedures for message header fields", draft-klyne-msghdr-
registry-07.txt.
[NNTP] S. Barber, "Network News Transport Protocol", draft-ietf- [NNTP] S. Barber, "Network News Transport Protocol", draft-ietf-
nntpext-base-*.txt. nntpext-base-*.txt.
[PGPVERIFY] David Lawrence, [PGPVERIFY] David Lawrence,
<ftp://ftp.isc.org/pub/pgpcontrol/README.html>. <ftp://ftp.isc.org/pub/pgpcontrol/README.html>.
[RFC 1034] P. Mockapetris, "Domain Names - Concepts and Facilities", [RFC 1034] P. Mockapetris, "Domain Names - Concepts and Facilities",
RFC 1034, November 1987. RFC 1034, November 1987.
[RFC 1036] M. Horton and R. Adams, "Standard for Interchange of [RFC 1036] M. Horton and R. Adams, "Standard for Interchange of
USENET Messages", RFC 1036, December 1987. USENET Messages", RFC 1036, December 1987.
[RFC 1864] J. Myers and M. Rose, "The Content-MD5 Header Field", RFC [RFC 1864] J. Myers and M. Rose, "The Content-MD5 Header Field", RFC
1864, October 1995. 1864, October 1995.
News Article Format and Transmission November 2003
[RFC 2045] N. Freed and N. Borenstein, "Multipurpose Internet Mail [RFC 2045] N. Freed and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Bodies", Extensions (MIME) Part One: Format of Internet Message Bodies",
RFC 2045, November 1996. RFC 2045, November 1996.
[RFC 2046] N. Freed and N. Borenstein, "Multipurpose Internet Mail [RFC 2046] N. Freed and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part Two: Media Types", RFC 2046, November Extensions (MIME) Part Two: Media Types", RFC 2046, November
1996. 1996.
[RFC 2047] K. Moore, "MIME (Multipurpose Internet Mail Extensions) [RFC 2047] K. Moore, "MIME (Multipurpose Internet Mail Extensions)
Part Three: Message Header Extensions for Non-ASCII Text", RFC Part Three: Message Header Extensions for Non-ASCII Text", RFC
2047, November 1996. 2047, November 1996.
[RFC 2048] N. Freed, J. Klensin, and J. Postel, "Multipurpose [RFC 2048] N. Freed, J. Klensin, and J. Postel, "Multipurpose
Internet Mail Extensions (MIME) Part Four: Registration Internet Mail Extensions (MIME) Part Four: Registration
Procedures", RFC 2048, November 1996. Procedures", RFC 2048, November 1996.
[RFC 2119] S. Bradner, "Key words for use in RFCs to Indicate [RFC 2119] S. Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, March 1997. Requirement Levels", RFC 2119, March 1997.
[RFC 2142] D. Crocker, "Mailbox Names for Common Services, Roles and [RFC 2142] D. Crocker, "Mailbox Names for Common Services, Roles and
News Article Format and Transmission May 2004
Functions", RFC 2142, May 1997. Functions", RFC 2142, May 1997.
[RFC 2156] S. Kille, "MIXER (Mime Internet X.400 Enhanced Relay): [RFC 2156] S. Kille, "MIXER (Mime Internet X.400 Enhanced Relay):
Mapping between X.400 and RFC 822/MIME", RFC 2156, January 1998. Mapping between X.400 and RFC 822/MIME", RFC 2156, January 1998.
[RFC 2183] R. Troost, S. Dorner, and K.Moore, "Communicating [RFC 2183] R. Troost, S. Dorner, and K.Moore, "Communicating
Presentation Information in Internet Messages: The Content- Presentation Information in Internet Messages: The Content-
Disposition Header Field", RFC 2183, August 1997. Disposition Header Field", RFC 2183, August 1997.
[RFC 2231] N. Freed and K. Moore, "MIME Parameter Value and Encoded [RFC 2231] N. Freed and K. Moore, "MIME Parameter Value and Encoded
skipping to change at page 82, line 4 skipping to change at page 85, line 40
1999. 1999.
[RFC 2606] D. Eastlake and A. Panitz, "Reserved Top Level DNS Names", [RFC 2606] D. Eastlake and A. Panitz, "Reserved Top Level DNS Names",
RFC 2606, June 1999. RFC 2606, June 1999.
[RFC 2616] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, [RFC 2616] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter,
P. Leach, and T. Berners-Lee, "Hypertext Transfer Protocol -- P. Leach, and T. Berners-Lee, "Hypertext Transfer Protocol --
HTTP/1.1", RFC 2616, June 1999. HTTP/1.1", RFC 2616, June 1999.
[RFC 2822] P. Resnick, "Internet Message Format", RFC 2822, April [RFC 2822] P. Resnick, "Internet Message Format", RFC 2822, April
News Article Format and Transmission November 2003
2001. 2001.
[RFC 2978] N. Freed and J. Postel, "IANA Charset Registration [RFC 2978] N. Freed and J. Postel, "IANA Charset Registration
Procedures", RFC 2978, October 2000. Procedures", RFC 2978, October 2000.
[RFC 3066] H. Alvestrand, "Tags for the Identification of Languages", [RFC 3066] H. Alvestrand, "Tags for the Identification of Languages",
RFC 3066, January 2001. RFC 3066, January 2001.
[RFC 3156] M. Elkins, D. Del Torto, R. Levien, and T. Roessler, "MIME [RFC 3156] M. Elkins, D. Del Torto, R. Levien, and T. Roessler, "MIME
Security with OpenPGP", RFC 3156, August 2001. Security with OpenPGP", RFC 3156, August 2001.
[RFC 3282] H. Alvestrand, "Content Language Headers", RFC 3282, May [RFC 3282] H. Alvestrand, "Content Language Headers", RFC 3282, May
2002. 2002.
[RFC 822] D. Crocker, "Standard for the Format of ARPA Internet Text [RFC 822] D. Crocker, "Standard for the Format of ARPA Internet Text
Messages.", STD 11, RFC 822, August 1982. Messages.", STD 11, RFC 822, August 1982.
[RFC 850] Mark R. Horton, "Standard for interchange of Usenet [RFC 850] Mark R. Horton, "Standard for interchange of Usenet
messages", RFC 850, June 1983. messages", RFC 850, June 1983.
News Article Format and Transmission May 2004
[RFC 976] Mark R. Horton, "UUCP mail interchange format standard", [RFC 976] Mark R. Horton, "UUCP mail interchange format standard",
RFC 976, February 1986. RFC 976, February 1986.
[RFC Errata] RFC Editor, "RFC Errata", <http"//www/rfc- [RFC Errata] RFC Editor, "RFC Errata", <http"//www/rfc-
editor.org/errata.html>. editor.org/errata.html>.
[Son-of-1036] Henry Spencer, "News article format and transmission", [Son-of-1036] Henry Spencer, "News article format and transmission",
<ftp://ftp.zoo.toronto.edu/pub/news.txt.Z>, June 1994. <ftp://ftp.zoo.toronto.edu/pub/news.txt.Z>, June 1994.
[UNICODE 3.0] The Unicode Consortium, "The Unicode Standard - Version [UNICODE 3.0] The Unicode Consortium, "The Unicode Standard - Version
skipping to change at page 83, line 4 skipping to change at page 86, line 40
12. Acknowledgements 12. Acknowledgements
The editor wishes to thank the following members of the IETF Usenet The editor wishes to thank the following members of the IETF Usenet
Format Working Group who made significant contributions to this Format Working Group who made significant contributions to this
endeavour (however, inclusion in this list does not imply that a endeavour (however, inclusion in this list does not imply that a
person approves of everything contained herein). person approves of everything contained herein).
Per Abrahamsen Brian Kelly Per Abrahamsen Brian Kelly
Peter Alfredsen Evan Kirshenbaum Peter Alfredsen Evan Kirshenbaum
News Article Format and Transmission November 2003
Russ Allbery Brad Knowles Russ Allbery Brad Knowles
Greg Andruk Kent Landfield Greg Andruk Kent Landfield
Ralph Babel David C. Lawrence Ralph Babel David C. Lawrence
Stan Barber Bruce Lilly Stan Barber Bruce Lilly
Dave Barr Simon Lyall Dave Barr Simon Lyall
Ian Bell Todd Michel McComb Ian Bell Todd Michel McComb
G. James Berigan Denis McKeon G. James Berigan Denis McKeon
Terje Bless Seymour J. Metz Terje Bless Seymour J. Metz
Seth Breidbart John Moreno Seth Breidbart John Moreno
Buddha Buck Chris Newman Buddha Buck Chris Newman
Forrest J. Cavalier III Dirk Nimmich Forrest J. Cavalier III Dirk Nimmich
Evan Champion Paul Overell Evan Champion Paul Overell
Maurizio Codogno Jacob Palme Maurizio Codogno Jacob Palme
Don Croyle Brian Palmer Don Croyle Brian Palmer
Matt Curtin Pete Resnick Matt Curtin Pete Resnick
Bill Davidsen Jon Ribbens Bill Davidsen Jon Ribbens
Ian Davis Dan Ritter Ian Davis Dan Ritter
Jean-Marc Desperrier Thomas Roessler Jean-Marc Desperrier Thomas Roessler
Martin J. Duerst Doug Royer Martin J. Duerst Doug Royer
Claus Andre Faerber Frederic Senis Claus Andre Faerber Frederic Senis
News Article Format and Transmission May 2004
Clive D.W. Feather Erland Sommarskog Clive D.W. Feather Erland Sommarskog
David Formosa Henry Spencer David Formosa Henry Spencer
Marty Fouts John Stanley Marty Fouts John Stanley
Benjamin Franz Brad Templeton Benjamin Franz Brad Templeton
Andrew Gierth Florian Weimer Andrew Gierth Florian Weimer
Jonathan Grobe Curt Welch Jonathan Grobe Curt Welch
Thomas Gschwind Curtis Whalen Thomas Gschwind Curtis Whalen
Kai Henningsen Leonid Yegoshin Kai Henningsen Leonid Yegoshin
Lars Magne Ingebrigtsen Jamie Zawinski Lars Magne Ingebrigtsen Jamie Zawinski
skipping to change at page 84, line 4 skipping to change at page 87, line 39
[ [
Working group chairs Working group chairs
Andrew Gierth <andrew@erlenstar.demon.co.uk> Andrew Gierth <andrew@erlenstar.demon.co.uk>
Pete Resnick <presnick@qualcomm.com> Pete Resnick <presnick@qualcomm.com>
] ]
Comments on this draft should preferably be sent to the mailing list Comments on this draft should preferably be sent to the mailing list
of the Usenet Format Working Group at of the Usenet Format Working Group at
News Article Format and Transmission November 2003
usenet-format@landfield.com. usenet-format@landfield.com.
This draft expires six months after the date of publication (see Page This draft expires six months after the date of publication (see Page
1) (i.e. in May 2004). 1) (i.e. in November 2004).
Appendix A.1 - A-News Article Format Appendix A.1 - A-News Article Format
The obsolete "A News" article format consisted of exactly five lines The obsolete "A News" article format consisted of exactly five lines
of header information, followed by the body. For example: of header information, followed by the body. For example:
Aeagle.642 Aeagle.642
news.misc news.misc
cbosgd!mhuxj!mhuxt!eagle!jerry cbosgd!mhuxj!mhuxt!eagle!jerry
Fri Nov 19 16:14:55 1982 Fri Nov 19 16:14:55 1982
Usenet Etiquette - Please Read Usenet Etiquette - Please Read
body body
body body
body body
News Article Format and Transmission May 2004
The first line consisted of an "A" followed by an article ID The first line consisted of an "A" followed by an article ID
(analogous to a message identifier and used for similar purposes). (analogous to a message identifier and used for similar purposes).
The second line was the list of newsgroups. The third line was the The second line was the list of newsgroups. The third line was the
path. The fourth was the date, in the format above (all fields fixed path. The fourth was the date, in the format above (all fields fixed
width), resembling an Internet date but not quite the same. The fifth width), resembling an Internet date but not quite the same. The fifth
was the subject. was the subject.
This format is documented for archeological purposes only. Articles This format is documented for archeological purposes only. Articles
MUST NOT be generated in this format. MUST NOT be generated in this format.
skipping to change at page 85, line 4 skipping to change at page 88, line 41
body body
body body
body body
The From-header contained the information now found in the Path- The From-header contained the information now found in the Path-
header, plus possibly the full name now typically found in the From- header, plus possibly the full name now typically found in the From-
header. The Title-header contained what is now the Subject-content. header. The Title-header contained what is now the Subject-content.
The Posted-header contained what is now the Date-content. The The Posted-header contained what is now the Date-content. The
Article-I.D.-header contained an article ID, analogous to a message Article-I.D.-header contained an article ID, analogous to a message
identifier and used for similar purposes. The Newsgroups- and identifier and used for similar purposes. The Newsgroups- and
News Article Format and Transmission November 2003
Expires-headers were approximately as now. The Received-header Expires-headers were approximately as now. The Received-header
contained the date when the latest relaying agent to process the contained the date when the latest relaying agent to process the
article first saw it. All dates were in the above format, with all article first saw it. All dates were in the above format, with all
fields fixed width, resembling an Internet date but not quite the fields fixed width, resembling an Internet date but not quite the
same. same.
This format is documented for archeological purposes only. Articles This format is documented for archeological purposes only. Articles
MUST NOT be generated in this format. MUST NOT be generated in this format.
Appendix A.3 - Obsolete Headers Appendix A.3 - Obsolete Headers
Early versions of news software following the modern format sometimes Early versions of news software following the modern format sometimes
generated headers like the following: generated headers like the following:
Relay-Version: version B 2.10 2/13/83; site cbosgd.UUCP Relay-Version: version B 2.10 2/13/83; site cbosgd.UUCP
Posting-Version: version B 2.10 2/13/83; site eagle.UUCP Posting-Version: version B 2.10 2/13/83; site eagle.UUCP
Date-Received: Friday, 19-Nov-82 16:59:30 EST Date-Received: Friday, 19-Nov-82 16:59:30 EST
News Article Format and Transmission May 2004
Relay-Version contained version information about the relaying agent Relay-Version contained version information about the relaying agent
that last processed the article. Posting-Version contained version that last processed the article. Posting-Version contained version
information about the posting agent that posted the article. Date- information about the posting agent that posted the article. Date-
Received contained the date when the last relaying agent to process Received contained the date when the last relaying agent to process
the article first saw it (in a slightly nonstandard format). the article first saw it (in a slightly nonstandard format).
In addition, this present standard obsoletes certain headers defined In addition, this present standard obsoletes certain headers defined
in [Son-of-1036] (see 6.22): in [Son-of-1036] (see 6.22):
skipping to change at page 86, line 5 skipping to change at page 89, line 42
This present standard obsoletes certain control messages defined in This present standard obsoletes certain control messages defined in
[RFC 1036] (see 7.5), all of which had the effect of requesting a [RFC 1036] (see 7.5), all of which had the effect of requesting a
description of a relaying or serving agent's software, or its peering description of a relaying or serving agent's software, or its peering
arrangements with neighbouring sites, to be emailed to the article's arrangements with neighbouring sites, to be emailed to the article's
reply address. Whilst of some utility when Usenet was much smaller reply address. Whilst of some utility when Usenet was much smaller
than it is now, they had become no more than a tool for the malicious than it is now, they had become no more than a tool for the malicious
sending of mailbombs. Moreover, many organizations now consider sending of mailbombs. Moreover, many organizations now consider
information about their internal connectivity to be confidential. information about their internal connectivity to be confidential.
News Article Format and Transmission November 2003
version version
sendsys sendsys
whogets whogets
senduuname senduuname
"Version" requested details of the transport software in use at a "Version" requested details of the transport software in use at a
site. "Sendsys" requested the full list of newsgroups taken, and the site. "Sendsys" requested the full list of newsgroups taken, and the
peering arrangements. "Who gets" was similar, but restricted to a peering arrangements. "Who gets" was similar, but restricted to a
named newsgroup. "Senduuname" resembled "sendsys" but restricted to named newsgroup. "Senduuname" resembled "sendsys" but restricted to
the list of peers connected by UUCP. the list of peers connected by UUCP.
Historically, a checkgroups body consisting of one or two lines, the Historically, a checkgroups body consisting of one or two lines, the
first of the form "-n newsgroup", caused check-groups to apply to first of the form "-n newsgroup", caused check-groups to apply to
only that single newsgroup. only that single newsgroup.
Historically, an article posted to a newsgroup whose name had exactly Historically, an article posted to a newsgroup whose name had exactly
three components of which the third was "ctl" signified that article three components of which the third was "ctl" signified that article
was to be taken as a control message. The Subject-header specified was to be taken as a control message. The Subject-header specified
News Article Format and Transmission May 2004
the actions, in the same way the Control-header does now. the actions, in the same way the Control-header does now.
These forms are documented for archeological purposes only; they MUST These forms are documented for archeological purposes only; they MUST
NO LONGER be used. NO LONGER be used.
Appendix B - Collected Syntax Appendix B - Collected Syntax
Appendix B.1 - Characters, Atoms and Folding Appendix B.1 - Characters, Atoms and Folding
In the following syntactic rules, numbers in the left hand margin In the following syntactic rules, numbers in the left hand margin
skipping to change at page 87, line 4 skipping to change at page 90, line 40
%x61-7A ; a-z %x61-7A ; a-z
2 CFWS = *([FWS] comment) ( ([FWS] comment) / FWS ) 2 CFWS = *([FWS] comment) ( ([FWS] comment) / FWS )
4 CR = %x0D ; carriage return 4 CR = %x0D ; carriage return
4 CRLF = CR LF 4 CRLF = CR LF
4 DIGIT = %x30-39 ; 0-9 4 DIGIT = %x30-39 ; 0-9
4 DQUOTE = %d34 ; quote mark 4 DQUOTE = %d34 ; quote mark
2 FWS = ([*WSP CRLF] 1*WSP); folding whitespace 2 FWS = ([*WSP CRLF] 1*WSP); folding whitespace
4 HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" 4 HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
4 HTAB = %x09 ; horizontal tab 4 HTAB = %x09 ; horizontal tab
4 LF = %x0A ; line feed 4 LF = %x0A ; line feed
News Article Format and Transmission November 2003
2 NO-WS-CTL = %d1-8 / ; US-ASCII control characters 2 NO-WS-CTL = %d1-8 / ; US-ASCII control characters
%d11 / ; which do not include the %d11 / ; which do not include the
%d12 / ; carriage return, line feed, %d12 / ; carriage return, line feed,
%d14-31 / ; and whitespace characters %d14-31 / ; and whitespace characters
%d127 %d127
4 SP = %x20 ; space 4 SP = %x20 ; space
4 WSP = SP / HTAB ; whitespace characters 4 WSP = SP / HTAB ; whitespace characters
2 atext = ALPHA / DIGIT / 2 atext = ALPHA / DIGIT /
"!" / "#" / ; Any character except "!" / "#" / ; Any character except
"$" / "%" / ; controls, SP, and specials. "$" / "%" / ; controls, SP, and specials.
"&" / "'" / ; Used for atoms "&" / "'" / ; Used for atoms
"*" / "+" / "*" / "+" /
"-" / "/" / "-" / "/" /
"=" / "?" / "=" / "?" /
"^" / "_" / "^" / "_" /
"`" / "{" / "`" / "{" /
"|" / "}" / "|" / "}" /
"~" "~"
2 atom = [CFWS] 1*atext [CFWS] 2 atom = [CFWS] 1*atext [CFWS]
2* ccontent = ctext / quoted-pair / comment / encoded-word 2* ccontent = ctext / quoted-pair / comment / encoded-word
News Article Format and Transmission May 2004
charset = <registered character set name> charset = <registered character set name>
; [RFC 2978] ; [RFC 2978]
2 comment = "(" *([FWS] ccontent) [FWS] ")" 2 comment = "(" *([FWS] ccontent) [FWS] ")"
2 ctext = NO-WS-CTL / ; all of <text> except 2 ctext = NO-WS-CTL / ; all of <text> except
%d33-39 / ; SP, HTAB, "(", ")" %d33-39 / ; SP, HTAB, "(", ")"
%d42-91 / ; and "\" %d42-91 / ; and "\"
%d93-126 %d93-126
1 encoded-word = "=?" charset ["*" language] "?" encoding 1 encoded-word = "=?" charset ["*" language] "?" encoding
"?" encoded-text "?=" "?" encoded-text "?="
2 dcontent = dtext / quoted-pair 2 dcontent = dtext / quoted-pair
skipping to change at page 88, line 4 skipping to change at page 91, line 38
extended-phrase extended-phrase
2 qcontent = qtext / quoted-pair 2 qcontent = qtext / quoted-pair
2 qtext = NO-WS-CTL / ; all of <text> except 2 qtext = NO-WS-CTL / ; all of <text> except
%d33 / ; SP, HTAB, "\" and DQUOTE %d33 / ; SP, HTAB, "\" and DQUOTE
%d35-91 / %d35-91 /
%d93-126 %d93-126
2 quoted-pair = "\" text 2 quoted-pair = "\" text
2 quoted-string = [CFWS] DQUOTE 2 quoted-string = [CFWS] DQUOTE
*( [FWS] qcontent ) [FWS] *( [FWS] qcontent ) [FWS]
DQUOTE [CFWS] DQUOTE [CFWS]
News Article Format and Transmission November 2003
2 specials = "(" / ")" / ; Special characters used in 2 specials = "(" / ")" / ; Special characters used in
"<" / ">" / ; other parts of the syntax "<" / ">" / ; other parts of the syntax
"[" / "]" / "[" / "]" /
":" / ";" / ":" / ";" /
"@" / "\" / "@" / "\" /
"," / "." / "," / "." /
DQUOTE DQUOTE
2 text = %d1-9 / ; all US-ASCII characters except 2 text = %d1-9 / ; all US-ASCII characters except
%d11-12 / ; NUL, CR and LF %d11-12 / ; NUL, CR and LF
%d14-127 %d14-127
5 tspecials = "(" / ")" / "<" / ">" / "@" / 5 tspecials = "(" / ")" / "<" / ">" / "@" /
"," / ";" / ":" / "\" / DQUOTE / "," / ";" / ":" / "\" / DQUOTE /
"/" / "[" / "]" / "?" / "=" "/" / "[" / "]" / "?" / "="
2* unstructured = 1*( [FWS] ( utext / encoded-word ) ) [FWS] 2* unstructured = 1*( [FWS] ( utext / encoded-word ) ) [FWS]
2 utext = NO-WS-CTL / ; Non white space controls 2 utext = NO-WS-CTL / ; Non white space controls
%d33-126 ; The rest of US-ASCII %d33-126 ; The rest of US-ASCII
2 word = atom / quoted-string 2 word = atom / quoted-string
News Article Format and Transmission May 2004
Appendix B.2 - Basic Forms Appendix B.2 - Basic Forms
2 addr-spec = local-part "@" domain 2 addr-spec = local-part "@" domain
2 address = mailbox / group 2 address = mailbox / group
2 address-list = address *( "," address ) 2 address-list = address *( "," address )
2 angle-addr = [CFWS] "<" addr-spec ">" [CFWS] 2 angle-addr = [CFWS] "<" addr-spec ">" [CFWS]
article = 1*( header CRLF ) separator body article = 1*( header CRLF ) separator body
1 attribute = 1*attribute-char 1 attribute = 1*attribute-char
1 attribute-char = <any (US-ASCII) CHAR except SPACE, CTLs, 1 attribute-char = <any (US-ASCII) CHAR except SPACE, CTLs,
skipping to change at page 89, line 4 skipping to change at page 92, line 42
1* extended-other-values= *( "%" 2HEXDIG / attribute-char ) 1* extended-other-values= *( "%" 2HEXDIG / attribute-char )
1* extended-parameter = ( [CFWS] extended-initial-name [CFWS] 1* extended-parameter = ( [CFWS] extended-initial-name [CFWS]
"=" extended-initial-value ) / "=" extended-initial-value ) /
( [CFWS] extended-other-names [CFWS] ( [CFWS] extended-other-names [CFWS]
"=" extended-other-values ) "=" extended-other-values )
extension-parameter = <a parameter not defined by this standard> extension-parameter = <a parameter not defined by this standard>
2 group = display-name ":" [ mailbox-list / CFWS ] ";" 2 group = display-name ":" [ mailbox-list / CFWS ] ";"
[CFWS] [CFWS]
header-name = 1*name-character *( "-" 1*name-character ) header-name = 1*name-character *( "-" 1*name-character )
2 hour = 2DIGIT 2 hour = 2DIGIT
News Article Format and Transmission November 2003
1 initial-section = "*0" 1 initial-section = "*0"
2 local-part = dot-atom / quoted-string 2 local-part = dot-atom / quoted-string
2 mailbox = name-addr / addr-spec 2 mailbox = name-addr / addr-spec
2 mailbox-list = mailbox *( "," mailbox ) 2 mailbox-list = mailbox *( "," mailbox )
2 minute = 2DIGIT 2 minute = 2DIGIT
2 month = FWS month-name FWS 2 month = FWS month-name FWS
2 month-name = "Jan" / "Feb" / "Mar" / "Apr" / 2 month-name = "Jan" / "Feb" / "Mar" / "Apr" /
"May" / "Jun" / "Jul" / "Aug" / "May" / "Jun" / "Jul" / "Aug" /
"Sep" / "Oct" / "Nov" / "Dec" "Sep" / "Oct" / "Nov" / "Dec"
2 name-addr = [display-name] angle-addr 2 name-addr = [display-name] angle-addr
name-character = ALPHA / DIGIT name-character = ALPHA / DIGIT
other-header = header-name ":" 1*SP other-content other-header = header-name ":" 1*SP other-content
other-content = <the content of a header defined by some other-content = <the content of a header defined by some
other standard> other standard>
other-section = "*" ("1" / "2" / "3" / "4" / "5" / other-section = "*" ("1" / "2" / "3" / "4" / "5" /
"6" / "7" / "8" / "9") *DIGIT "6" / "7" / "8" / "9") *DIGIT
1 parameter = regular-parameter / extended-parameter 1 parameter = regular-parameter / extended-parameter
News Article Format and Transmission May 2004
1* regular-parameter = [CFWS] regular-parameter-name [CFWS] 1* regular-parameter = [CFWS] regular-parameter-name [CFWS]
"=" value "=" value
1 regular-parameter-name 1 regular-parameter-name
= attribute [section] = attribute [section]
2 second = 2DIGIT 2 second = 2DIGIT
1 section = initial-section / other-section 1 section = initial-section / other-section
separator = CRLF separator = CRLF
2 time = time-of-day FWS zone 2 time = time-of-day FWS zone
2 time-of-day = hour ":" minute [ ":" second ] 2 time-of-day = hour ":" minute [ ":" second ]
5 token = 1*<any (US-ASCII) CHAR except SP, CTLs, 5 token = 1*<any (US-ASCII) CHAR except SP, CTLs,
skipping to change at page 89, line 50 skipping to change at page 93, line 33
Appendix B.3.1 - Header outlines Appendix B.3.1 - Header outlines
header = other-header / header = other-header /
Date-header / Date-header /
From-header / From-header /
Message-ID-header / Message-ID-header /
Subject-header / Subject-header /
Newsgroups-header / Newsgroups-header /
Path-header / Path-header /
Injection-Date-header /
Reply-To-header / Reply-To-header /
Sender-header / Sender-header /
Organization-header / Organization-header /
Keywords-header / Keywords-header /
Summary-header / Summary-header /
Distribution-header / Distribution-header /
Followup-To-header / Followup-To-header /
Mail-Copies-To-header / Mail-Copies-To-header /
Posted-And-Mailed-header / Posted-And-Mailed-header /
References-header / References-header /
News Article Format and Transmission November 2003
Expires-header / Expires-header /
Archive-header / Archive-header /
Control-header / Control-header /
Approved-header / Approved-header /
Supersedes-header / Supersedes-header /
Xref-header / Xref-header /
Lines-header / Lines-header /
User-Agent-header / User-Agent-header /
Injector-Info-header / Injection-Info-header /
Complaints-To-header Complaints-To-header
Approved-content = From-content Approved-content = From-content
Approved-header = "Approved" ":" SP Approved-content Approved-header = "Approved" ":" SP Approved-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Archive-content = [CFWS] ("no" / "yes" ) [CFWS] Archive-content = [CFWS] ("no" / "yes" ) [CFWS]
News Article Format and Transmission May 2004
Archive-header = "Archive" ":" SP Archive-content Archive-header = "Archive" ":" SP Archive-content
*( ";" ( Archive-parameter / *( ";" ( Archive-parameter /
extension-parameter ) ) extension-parameter ) )
Archive-parameter = <a parameter with attribute "filename" Archive-parameter = <a parameter with attribute "filename"
and any value> and any value>
Complaints-To-content= address-list Complaints-To-content= address-list
Complaints-To-header = "Complaints-To" ":" SP Complaints-To-content Complaints-To-header = "Complaints-To" ":" SP Complaints-To-content
Control-content = [CFWS] control-message [CFWS] Control-content = [CFWS] control-message [CFWS]
Control-header = "Control" ":" SP Control-content Control-header = "Control" ":" SP Control-content
*( ";" extension-parameter ) *( ";" extension-parameter )
skipping to change at page 90, line 46 skipping to change at page 94, line 31
Expires-content = date-time Expires-content = date-time
Expires-header = "Expires" ":" SP Expires-content Expires-header = "Expires" ":" SP Expires-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Followup-To-content = Newsgroups-content / Followup-To-content = Newsgroups-content /
[FWS] %x70.6F.73.74.65.72 [FWS] [FWS] %x70.6F.73.74.65.72 [FWS]
; which is a case-sensitive "poster" ; which is a case-sensitive "poster"
Followup-To-header = "Followup-To" ":" SP Followup-To-content Followup-To-header = "Followup-To" ":" SP Followup-To-content
*( ";" extension-parameter ) *( ";" extension-parameter )
From-content = mailbox-list From-content = mailbox-list
From-header = "From" ":" SP From-content From-header = "From" ":" SP From-content
Injector-Info-content= [CFWS] path-identity [CFWS] Injection-Date-content
Injector-Info-header = "Injector-Info" ":" SP Injector-Info-content = date-time
*( ";" ( Injector-Info-parameter / Injection-Date-header
= "Injection-Date" ":" SP Injection-Date-content
*( ";" extension-parameter )
Injection-Info-content
= [CFWS] path-identity [CFWS]
Injection-Info-header= "Injection-Info" ":" SP Injection-Info-content
*( ";" ( Injection-Info-parameter /
extension-parameter ) ) extension-parameter ) )
Injector-Info-parameter Injection-Info-parameter
= posting-host-parameter / = posting-host-parameter /
posting-account-parameter / posting-account-parameter /
posting-sender-parameter / posting-sender-parameter /
posting-logging-parameter / posting-logging-parameter
posting-date-parameter
Keywords-content = phrase *( "," phrase ) Keywords-content = phrase *( "," phrase )
Keywords-header = "Keywords" ":" SP Keywords-content Keywords-header = "Keywords" ":" SP Keywords-content
Lines-content = [CFWS] 1*DIGIT [CFWS] Lines-content = [CFWS] 1*DIGIT [CFWS]
News Article Format and Transmission November 2003
Lines-header = "Lines" ":" SP Lines-content Lines-header = "Lines" ":" SP Lines-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Mail-Copies-To-content Mail-Copies-To-content
= copy-addr / [CFWS] ( "nobody" / = copy-addr / [CFWS] ( "nobody" /
"poster" ) [CFWS] "poster" ) [CFWS]
Mail-Copies-To-header= "Mail-Copies-To" ":" SP Mail-Copies-To-content Mail-Copies-To-header= "Mail-Copies-To" ":" SP Mail-Copies-To-content
Message-ID-content = [FWS] msg-id [FWS] Message-ID-content = [FWS] msg-id [FWS]
Message-ID-header = "Message-ID" ":" SP Message-ID-content Message-ID-header = "Message-ID" ":" SP Message-ID-content
Newsgroups-content = [FWS] newsgroup-name Newsgroups-content = [FWS] newsgroup-name
*( [FWS] ng-delim [FWS] newsgroup-name ) *( [FWS] ng-delim [FWS] newsgroup-name )
[FWS] [FWS]
News Article Format and Transmission May 2004
Newsgroups-header = "Newsgroups" ":" SP Newsgroups-content Newsgroups-header = "Newsgroups" ":" SP Newsgroups-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Organization-content = unstructured Organization-content = unstructured
Organization-header = "Organization" ":" SP Organization-content Organization-header = "Organization" ":" SP Organization-content
Path-content = [FWS] *( path-identity [FWS] Path-content = [FWS] *( path-identity [FWS]
path-delimiter [FWS] path-delimiter [FWS]
) tail-entry [FWS] ) tail-entry [FWS]
Path-header = "Path" ":" SP Path-content Path-header = "Path" ":" SP Path-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Posted-And-Mailed-content Posted-And-Mailed-content
skipping to change at page 91, line 38 skipping to change at page 95, line 27
Posted-And-Mailed-header Posted-And-Mailed-header
= "Posted-And-Mailed" ":" SP = "Posted-And-Mailed" ":" SP
Posted-And-Mailed-content Posted-And-Mailed-content
*( ";" extension-parameter ) *( ";" extension-parameter )
References-content = [CFWS] msg-id *( CFWS msg-id ) [CFWS] References-content = [CFWS] msg-id *( CFWS msg-id ) [CFWS]
References-header = "References" ":" SP References-content References-header = "References" ":" SP References-content
Reply-To-content = address-list Reply-To-content = address-list
Reply-To-header = "Reply-To" ":" SP Reply-To-content Reply-To-header = "Reply-To" ":" SP Reply-To-content
Sender-content = mailbox Sender-content = mailbox
Sender-header = "Sender" ":" SP Sender-content Sender-header = "Sender" ":" SP Sender-content
Subject-content = [ [FWS] back-reference ] pure-subject Subject-content = unstructured
Subject-header = "Subject" ":" SP Subject-content Subject-header = "Subject" ":" SP Subject-content
Summary-content = unstructured Summary-content = unstructured
Summary-header = "Summary" ":" SP Summary-content Summary-header = "Summary" ":" SP Summary-content
Supersedes-content = [CFWS] msg-id [CFWS] Supersedes-content = [CFWS] msg-id [CFWS]
Supersedes-header = "Supersedes" ":" SP Supersedes-content Supersedes-header = "Supersedes" ":" SP Supersedes-content
User-Agent-content = product *( CFWS product ) User-Agent-content = product *( CFWS product )
User-Agent-header = "User-Agent" ":" SP User-Agent-content User-Agent-header = "User-Agent" ":" SP User-Agent-content
*( ";" extension-parameter ) *( ";" extension-parameter )
Xref-content = [CFWS] server-name 1*( CFWS location ) [CFWS] Xref-content = [CFWS] server-name 1*( CFWS location ) [CFWS]
Xref-header = "Xref" ":" SP Xref-content Xref-header = "Xref" ":" SP Xref-content
skipping to change at page 92, line 4 skipping to change at page 95, line 49
Appendix B.3.2 - Control-message outlines Appendix B.3.2 - Control-message outlines
control-message = <empty> / control-message = <empty> /
Newgroup-message / Newgroup-message /
Rmgroup-message / Rmgroup-message /
Mvgroup-message / Mvgroup-message /
Checkgroup-message / Checkgroup-message /
Cancel-message / Cancel-message /
Ihave-message / Ihave-message /
News Article Format and Transmission November 2003
Sendme-message Sendme-message
Cancel-arguments = CFWS msg-id [CFWS] Cancel-arguments = CFWS msg-id [CFWS]
Cancel-message = "cancel" Cancel-arguments Cancel-message = "cancel" Cancel-arguments
Checkgroup-arguments = [ chkscope ] [ chksernr ] Checkgroup-arguments = [ chkscope ] [ chksernr ]
Checkgroup-message = "checkgroups" Checkgroup-arguments Checkgroup-message = "checkgroups" Checkgroup-arguments
Ihave-arguments = relayer-name Ihave-arguments = relayer-name
Ihave-message = "ihave" Ihave-arguments Ihave-message = "ihave" Ihave-arguments
Mvgroup-arguments = CFWS newsgroup-name CFWS newsgroup-name Mvgroup-arguments = CFWS newsgroup-name CFWS newsgroup-name
[ CFWS newgroup-flag ] [ CFWS newgroup-flag ]
Mvgroup-message = "mvgroup" Mvgroup-arguments Mvgroup-message = "mvgroup" Mvgroup-arguments
News Article Format and Transmission May 2004
Newgroup-arguments = CFWS newsgroup-name [ CFWS newgroup-flag ] Newgroup-arguments = CFWS newsgroup-name [ CFWS newgroup-flag ]
Newgroup-message = "newgroup" Newgroup-arguments Newgroup-message = "newgroup" Newgroup-arguments
Rmgroup-arguments = CFWS newsgroup-name Rmgroup-arguments = CFWS newsgroup-name
Rmgroup-message = "rmgroup" Rmgroup-arguments Rmgroup-message = "rmgroup" Rmgroup-arguments
Sendme-arguments = Ihave-arguments Sendme-arguments = Ihave-arguments
Sendme-message = "sendme" Sendme-arguments Sendme-message = "sendme" Sendme-arguments
Appendix B.3.3 - Other header rules Appendix B.3.3 - Other header rules
article-locator = 1*( %x21-27 / %x29-3A / %x3C-7E ) article-locator = 1*( %x21-27 / %x29-3A / %x3C-7E )
; US-ASCII printable characters ; US-ASCII printable characters
; except'(' and ';' ; except'(' and ';'
article-size = 1*DIGIT article-size = 1*DIGIT
back-reference = %x52.65.3A.20
; which is a case-sensitive "Re: "
batch = 1*( batch-header article ) batch = 1*( batch-header article )
batch-header = "#!" SP rnews SP article-size CRLF batch-header = "#!" SP rnews SP article-size CRLF
checkgroups-body = *( valid-group CRLF ) checkgroups-body = *( valid-group CRLF )
chkscope = 1*( CFWS ["!"] newsgroup-name ) chkscope = 1*( CFWS ["!"] newsgroup-name )
chksernr = CFWS "#" 1*DIGIT chksernr = CFWS "#" 1*DIGIT
component = 1*component-grapheme component = 1*component-grapheme
component-grapheme = DIGIT / ALPHA / "+" / "-" / "_" component-grapheme = DIGIT / ALPHA / "+" / "-" / "_"
copy-addr = address-list copy-addr = address-list
dist-delim = "," dist-delim = ","
distribution = [FWS] distribution-name [FWS] distribution = [FWS] distribution-name [FWS]
skipping to change at page 93, line 4 skipping to change at page 96, line 47
host-value = dot-atom / host-value = dot-atom /
[ dot-atom ":" ] [ dot-atom ":" ]
( IPv4address / IPv6address ) ( IPv4address / IPv6address )
; see [RFC 2373] ; see [RFC 2373]
2 id-left = dot-atom-text / no-fold-quote 2 id-left = dot-atom-text / no-fold-quote
2 id-right = dot-atom-text / no-fold-literal 2 id-right = dot-atom-text / no-fold-literal
ihave-body = *( msg-id CRLF ) ihave-body = *( msg-id CRLF )
3 IPv4address = 1*3DIGIT "." 1*3DIGIT "." 3 IPv4address = 1*3DIGIT "." 1*3DIGIT "."
1*3DIGIT "." 1*3DIGIT 1*3DIGIT "." 1*3DIGIT
3 IPv6address = hexpart [ ":" IPv4address ] 3 IPv6address = hexpart [ ":" IPv4address ]
News Article Format and Transmission November 2003
location = newsgroup-name ":" article-locator location = newsgroup-name ":" article-locator
mdtext = NO-WS-CTL / ; Non white space controls mdtext = NO-WS-CTL / ; Non white space controls
%d33-61 / ; The rest of the US-ASCII %d33-61 / ; The rest of the US-ASCII
%d63-90 / ; characters not including %d63-90 / ; characters not including
%d94-126 ; ">", "[", "]", or "\" %d94-126 ; ">", "[", "]", or "\"
moderation-flag = %x28.4D.6F.64.65.72.61.74.65.64.29 moderation-flag = %x28.4D.6F.64.65.72.61.74.65.64.29
; case sensitive "(Moderated)" ; case sensitive "(Moderated)"
News Article Format and Transmission May 2004
mqspecial = "(" / ")" / ; same as specials except mqspecial = "(" / ")" / ; same as specials except
"<" / ; "\" and DQUOTE quoted "<" / ; "\" and DQUOTE quoted
"[" / "]" / ; and ">" omitted "[" / "]" / ; and ">" omitted
":" / ";" / ":" / ";" /
"@" / "\\" / "@" / "\\" /
"," / "." / "," / "." /
"\" DQUOTE "\" DQUOTE
mqtext = NO-WS-CTL / ; all of <text> except mqtext = NO-WS-CTL / ; all of <text> except
%d33 / ; SP, HTAB, "\", ">" %d33 / ; SP, HTAB, "\", ">"
%d35-61 / ; and DQUOTE %d35-61 / ; and DQUOTE
skipping to change at page 93, line 51 skipping to change at page 97, line 44
*( mqtext / "\\" / "\" DQUOTE ) *( mqtext / "\\" / "\" DQUOTE )
mqspecial mqspecial
*( mqtext / "\\" / "\" DQUOTE ) *( mqtext / "\\" / "\" DQUOTE )
DQUOTE DQUOTE
path-delimiter = "/" / "?" / "%" / "," / "!" path-delimiter = "/" / "?" / "%" / "," / "!"
path-identity = ( ALPHA / DIGIT ) path-identity = ( ALPHA / DIGIT )
*( ALPHA / DIGIT / "-" / "." / ":" / "_" ) *( ALPHA / DIGIT / "-" / "." / ":" / "_" )
posting-account-parameter posting-account-parameter
= <a parameter with attribute "posting-account" = <a parameter with attribute "posting-account"
and any value> and any value>
posting-date-parameter
= <a parameter with attribute "posting-date"
and value some date-time>
posting-host-parameter posting-host-parameter
= <a parameter with attribute "posting-host" = <a parameter with attribute "posting-host"
and value some host-value> and value some host-value>
posting-logging-parameter posting-logging-parameter
= <a parameter with attribute "logging-data" = <a parameter with attribute "logging-data"
and any value> and any value>
News Article Format and Transmission November 2003
posting-sender-parameter posting-sender-parameter
= <a parameter with attribute "sender" = <a parameter with attribute "sender"
and value some sender-value> and value some sender-value>
product = [CFWS] token [CFWS] [ "/" product-version ] product = [CFWS] token [CFWS] [ "/" product-version ]
product-version = [CFWS] token [CFWS] product-version = [CFWS] token [CFWS]
pure-subject = unstructured
relayer-name = path-identity relayer-name = path-identity
rnews = %x72.6E.65.77.73 ; case sensitive "rnews" rnews = %x72.6E.65.77.73 ; case sensitive "rnews"
sender-value = mailbox / "verified" sender-value = mailbox / "verified"
sendme-body = ihave-body sendme-body = ihave-body
server-name = path-identity server-name = path-identity
News Article Format and Transmission May 2004
tail-entry = path-identity tail-entry = path-identity
valid-group = newsgroups-line valid-group = newsgroups-line
Appendix C - Notices Appendix C - Notices
Intellectual Property Intellectual Property
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
skipping to change at page 95, line 4 skipping to change at page 98, line 49
or assist in its implementation may be prepared, copied, published or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than followed, or as required to translate it into languages other than
News Article Format and Transmission November 2003
English. English.
The limited permissions granted above are perpetual and will not be The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns. revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/