draft-ietf-usefor-article-04.txt   draft-ietf-usefor-article-05.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
April 2001 July 2001
News Article Format News Article Format
<draft-ietf-usefor-article-04.txt> <draft-ietf-usefor-article-05.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
Backward compatibility has been a major goal of this endeavour, but Backward compatibility has been a major goal of this endeavour, but
where this standard and earlier documents or practices conflict, this where this standard and earlier documents or practices conflict, this
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.
[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
when it is accepted as an RFC with the status of a proposed or draft when it is accepted as an RFC with the status of a proposed or draft
standard.] standard.]
News Article Format April 2001 News Article Format July 2001
[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
indicate work yet to be done.] indicate work yet to be done.]
[Please note that this Draft describes "Work in Progress". Much remains [Please note that this Draft describes "Work in Progress". Much remains
to be done, though the material included so far is unlikely to change in to be done, though the material included so far is unlikely to change in
any major way.] any major way.]
Table of Contents Table of Contents
1. Introduction .................................................. 5 1. Introduction .................................................. 5
1.1. Basic Concepts ............................................ 5 1.1. Basic Concepts ............................................ 5
1.2. Objectives ................................................ 6 1.2. Objectives ................................................ 6
1.3. Historical Outline ........................................ 6 1.3. Historical Outline ........................................ 6
1.4. Transport ................................................. 6 1.4. Transport ................................................. 6
2. Definitions, Notations and Conventions ........................ 6 2. Definitions, Notations and Conventions ........................ 6
2.1. Definitions. ............................................. 7 2.1. Definitions ............................................... 7
2.2. Textual Notations ......................................... 8 2.2. Textual Notations ......................................... 8
2.3. Relation To Mail and MIME ................................. 9 2.3. Relation To Mail and MIME ................................. 10
2.4. Syntax Notation ........................................... 10 2.4. Syntax Notation ........................................... 10
2.5. Language .................................................. 12 2.5. Language .................................................. 13
3. Changes to the existing protocols ............................. 13 3. Changes to the existing protocols ............................. 13
3.1. Principal Changes ......................................... 13 3.1. Principal Changes ......................................... 13
3.2. Transitional Arrangements ................................. 13 3.2. Transitional Arrangements ................................. 14
4. Basic Format .................................................. 15 4. Basic Format .................................................. 15
4.1. Syntax of News Articles ................................... 15 4.1. Syntax of News Articles ................................... 15
4.2. Headers ................................................... 16 4.2. Headers ................................................... 16
4.2.1. Names and Contents .................................... 16 4.2.1. Names and Contents .................................... 16
4.2.2. Header Properties ..................................... 17 4.2.2. Header Properties ..................................... 18
4.2.2.1. Experimental Headers .............................. 17 4.2.2.1. Experimental Headers .............................. 18
4.2.2.2. Inheritable Headers ............................... 18 4.2.2.2. Inheritable Headers ............................... 18
4.2.2.3. Local Headers ..................................... 18 4.2.2.3. Variant Headers ................................... 18
4.2.2.4. Variant Headers ................................... 18 4.2.3. White Space and Continuations ......................... 19
4.2.3. White Space and Continuations ......................... 18 4.2.4. Comments .............................................. 20
4.2.4. Comments .............................................. 19
4.2.5. Undesirable Headers ................................... 20 4.2.5. Undesirable Headers ................................... 20
4.3. Body ...................................................... 20 4.3. Body ...................................................... 21
4.3.1. Body Format Issues .................................... 20 4.3.1. Body Format Issues .................................... 21
4.3.2. Body Conventions ...................................... 21 4.3.2. Body Conventions ...................................... 21
4.4. Characters and Character Sets ............................. 22 4.4. Characters and Character Sets ............................. 23
4.4.1. Character Sets within Article Headers ................. 23 4.4.1. Character Sets within Article Headers ................. 23
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 ............................................... 25
4.6. Example ................................................... 25 4.6. Example ................................................... 26
5. Mandatory Headers ............................................. 26 5. Mandatory Headers ............................................. 27
5.1. Date ...................................................... 26 5.1. Date ...................................................... 27
5.1.1. Examples .............................................. 26 5.1.1. Examples .............................................. 28
5.2. From ...................................................... 27 5.2. From ...................................................... 28
5.2.1. Examples: ............................................ 27 5.2.1. Examples: ............................................ 28
5.3. Message-ID ................................................ 28 5.3. Message-ID ................................................ 29
5.4. Subject ................................................... 28 5.4. Subject ................................................... 29
5.4.1. Examples .............................................. 29 5.4.1. Examples .............................................. 30
News Article Format April 2001 5.5. Newsgroups ................................................ 31
News Article Format July 2001
5.5. Newsgroups ................................................ 29 5.5.1. Forbidden newsgroup names ............................. 35
5.5.1. Forbidden newsgroup names ............................. 31 5.6. Path ...................................................... 36
5.6. Path ...................................................... 32 5.6.1. Format ................................................ 36
5.6.1. Format ................................................ 32 5.6.2. Adding a path-identity to the Path header ............. 37
5.6.2. Adding a path-identity to the Path header ............. 33 5.6.3. The tail-entry ........................................ 38
5.6.3. The tail-entry ........................................ 34 5.6.4. Delimiter Summary ..................................... 38
5.6.4. Delimiter Summary ..................................... 35 5.6.5. Suggested Verification Methods ........................ 39
5.6.5. Suggested Verification Methods ........................ 35 5.6.6. Example ............................................... 40
5.6.6. Example ............................................... 36 6. Optional Headers .............................................. 41
6. Optional Headers .............................................. 37 6.1. Reply-To .................................................. 41
6.1. Reply-To .................................................. 37 6.1.1. Examples .............................................. 41
6.1.1. Examples .............................................. 38 6.2. Sender .................................................... 42
6.2. Sender .................................................... 38 6.3. Organization .............................................. 42
6.3. Organization .............................................. 38 6.4. Keywords .................................................. 42
6.4. Keywords .................................................. 38 6.5. Summary ................................................... 42
6.5. Summary ................................................... 39 6.6. Distribution .............................................. 43
6.6. Distribution .............................................. 39 6.7. Followup-To ............................................... 44
6.7. Followup-To ............................................... 40 6.8. Mail-Copies-To ............................................ 44
6.8. Mail-Copies-To ............................................ 41 6.9. Posted-And-Mailed ......................................... 45
6.9. Posted-And-Mailed ......................................... 42 6.10. References ............................................... 46
6.10. References ............................................... 42 6.10.1. Examples ............................................. 46
6.10.1. Examples ............................................. 43 6.11. Expires .................................................. 47
6.11. Expires .................................................. 43 6.12. Archive .................................................. 47
6.12. Archive .................................................. 43 6.13. Control .................................................. 48
6.13. Control .................................................. 44 6.14. Approved ................................................. 48
6.14. Approved ................................................. 44 6.15. Replaces / Supersedes .................................... 49
6.15. Replaces / Supersedes .................................... 45 6.15.1. Syntax and Semantics ................................. 49
6.15.1. Syntax and Semantics ................................. 45 6.15.2. Message-ID version procedure ......................... 50
6.15.2. Message-ID version procedure ......................... 46 6.15.2.1. Message version numbers .......................... 51
6.15.2.1. Message version numbers .......................... 47 6.15.2.2. Implementation and Use Note ...................... 52
6.15.2.2. Implementation and Use Note ...................... 48 6.15.2.3. The Message-Version NNTP extension ............... 54
6.15.2.3. The Message-Version NNTP extension ............... 50 6.15.2.4. Examples ......................................... 54
6.15.2.4. Examples ......................................... 50 6.16. Xref ..................................................... 55
6.16. Xref ..................................................... 51 6.17. Lines .................................................... 57
6.17. Lines .................................................... 53 6.18. User-Agent ............................................... 57
6.18. User-Agent ............................................... 53 6.18.1. Examples ............................................. 58
6.18.1. Examples ............................................. 54 6.19. Injector-Info ............................................ 58
6.19. Injector-Info ............................................ 54 6.19.1. Usage of Injector-Info-header-parameters ............. 60
6.19.1. Usage of Injector-Info-header-parameters ............. 56 6.19.1.1. The posting-host-parameter ....................... 60
6.19.1.1. The posting-host-parameter ....................... 56 6.19.1.2. The posting-account-parameter .................... 61
6.19.1.2. The posting-account-parameter .................... 57 6.19.1.3. The posting-sender-parameter ..................... 61
6.19.1.3. The posting-sender-parameter ..................... 57 6.19.1.4. The posting-logging-parameter .................... 61
6.19.1.4. The posting-logging-parameter .................... 57 6.19.1.5. The posting-date-parameter ....................... 61
6.19.1.5. The posting-date-parameter ....................... 57 6.19.2. Example .............................................. 61
6.19.2. Example .............................................. 57 6.20. Complaints-To ............................................ 61
6.20. Complaints-To ............................................ 57 6.21. MIME headers ............................................. 62
6.21. MIME headers ............................................. 58 6.21.1. Syntax ............................................... 62
6.21.1. Syntax ............................................... 58 6.21.2. Content-Type ......................................... 62
6.21.2. Content-Transfer-Encoding ............................ 58 6.21.2.1. Message/partial .................................. 63
6.21.3. Content-Type ......................................... 59 6.21.2.2. Message/rfc822 ................................... 63
6.21.3.1. Message/partial .................................. 59 6.21.2.3. Message/external-body ............................ 64
6.21.3.2. Message/rfc822 ................................... 60 6.21.2.4. Multipart types .................................. 64
6.21.3.3. Message/external-body ............................ 60 6.21.3. Content-Transfer-Encoding ............................ 65
6.21.3.4. Multipart types .................................. 61 6.21.4. Character Sets ....................................... 66
News Article Format April 2001 News Article Format July 2001
6.21.4. Character Sets ....................................... 61 6.21.5. Content Disposition .................................. 67
6.21.5. Content Disposition .................................. 61 6.21.6. Definition of some new Content-Types ................. 67
6.21.6. Definition of some new Content-Types ................. 61 6.21.6.1. Application/news-transmission .................... 67
6.21.6.1. Application/news-transmission .................... 62 6.21.6.2. Message/news withdrawn ........................... 68
6.21.6.2. Message/news withdrawn ........................... 63 6.22. Obsolete Headers ......................................... 68
6.22. Obsolete Headers ......................................... 63 7. Control Messages .............................................. 69
7. Control Messages .............................................. 63 7.1. The 'newgroup' Control Message ............................ 69
7.1. The 'newgroup' Control Message ............................ 64 7.1.1. The Body of the 'newgroup' Control Message ............ 70
7.1.1. The Body of the 'newgroup' Control Message ............ 65 7.1.2. Application/news-groupinfo ............................ 71
7.1.2. Application/news-groupinfo ............................ 65 7.1.3. Initial Articles ...................................... 72
7.1.3. Initial Articles ...................................... 67 7.1.4. Example ............................................... 73
7.1.4. Example ............................................... 67 7.2. The 'rmgroup' Control Message ............................. 74
7.2. The 'rmgroup' Control Message ............................. 68 7.2.1. Example ............................................... 74
7.2.1. Example ............................................... 69 7.3. The 'mvgroup' Control Message ............................. 74
7.3. The 'mvgroup' Control Message ............................. 69 7.3.1. Single group .......................................... 74
7.3.1. Single group .......................................... 69 7.3.2. Multiple Groups ....................................... 75
7.3.2. Multiple Groups ....................................... 70 7.3.3. Examples .............................................. 76
7.3.3. Examples .............................................. 70 7.4. The 'checkgroups' Control Message ......................... 77
7.4. The 'checkgroups' Control Message ......................... 71 7.4.1. Application/news-checkgroups .......................... 78
7.4.1. Application/news-checkgroups .......................... 72 7.5. Cancel .................................................... 78
7.5. Cancel .................................................... 73 7.6. Ihave, sendme ............................................. 80
7.6. Ihave, sendme ............................................. 74 7.7. Obsolete control messages. ............................... 81
7.7. Obsolete control messages. ............................... 75 8. Duties of Various Agents ...................................... 81
8. Duties of Various Agents ...................................... 76 8.1. General principles to be followed ......................... 81
8.1. General principles to be followed ......................... 76 8.2. Duties of an Injecting Agent .............................. 82
8.2. Duties of an Injecting Agent .............................. 76 8.2.1. Proto-articles ........................................ 82
8.2.1. Proto-articles ........................................ 77 8.2.2. Procedure to be followed by Injecting Agents .......... 82
8.2.2. Procedure to be followed by Injecting Agents .......... 77 8.3. Duties of a Relaying Agent ................................ 84
8.3. Duties of a Relaying Agent ................................ 78 8.4. Duties of a Serving Agent ................................. 85
8.4. Duties of a Serving Agent ................................. 79 8.5. Duties of a Posting Agent ................................. 86
8.5. Duties of a Posting Agent ................................. 80 8.6. Duties of a Followup Agent ................................ 86
8.6. Duties of a Followup Agent ................................ 80 8.7. Duties of a Moderator ..................................... 87
8.7. Duties of a Moderator ..................................... 81 8.8. Duties of a Gateway ....................................... 88
8.8. Duties of a Gateway ....................................... 82 8.8.1. Duties of an Outgoing Gateway ......................... 89
8.8.1. Duties of an Outgoing Gateway ......................... 83 8.8.2. Duties of an Incoming Gateway ......................... 90
8.8.2. Duties of an Incoming Gateway ......................... 84 8.8.3. Example ............................................... 92
8.8.3. Example ............................................... 86 9. Security and Related Considerations ........................... 93
9. Security and Related Considerations ........................... 87 9.1. Leakage ................................................... 93
9.1. Leakage ................................................... 87 9.2. Attacks ................................................... 93
9.2. Attacks ................................................... 87 9.2.1. Denial of Service ..................................... 93
9.2.1. Denial of Service ..................................... 87 9.2.2. Compromise of System Integrity ........................ 94
9.2.2. Compromise of System Integrity ........................ 88 9.3. Liability ................................................. 95
9.3. Liability ................................................. 89 10. References ................................................... 96
10. References ................................................... 90 11. Acknowledgements ............................................. 98
11. Acknowledgements ............................................. 92 12. Contact Addresses ............................................ 98
12. Contact Addresses ............................................ 92 13. Intellectual Property Rights ................................. 99
13. Intellectual Property Rights ................................. 92 Appendix A.1 - A-News Article Format .............................. 100
Appendix A.1 - A-News Article Format .............................. 93 Appendix A.2 - Early B-News Article Format ........................ 100
Appendix A.2 - Early B-News Article Format ........................ 94 Appendix A.3 - Obsolete Headers ................................... 101
Appendix A.3 - Obsolete Headers ................................... 95 Appendix A.4 - Obsolete Control Messages .......................... 101
Appendix A.4 - Obsolete Control Messages .......................... 95 Appendix B - Collected Syntax ..................................... 102
Appendix B - Collected Syntax ..................................... 96 News Article Format July 2001
News Article Format April 2001
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 mail messages) and for retrieving news "articles" (which resemble mail 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
to each newsgroup in which he participates. These protocols most to each newsgroup in which he participates. These protocols most
commonly use a flooding algorithm which propagates copies throughout commonly use a flooding algorithm which propagates copies throughout
a network of participating servers. Typically, only one copy is a network of participating servers. Typically, only one copy is
stored per server, and each server makes it available on demand to stored per server, and each server makes it available on demand to
readers able to access that server. readers able to access that server.
An important characteristic of Netnews is the lack of any requirement An important characteristic of Netnews is the lack of any requirement
for a central administration or for the establishment of any for a central administration or for the establishment of any
controlling host to manage the network. A network which limits controlling host to manage the network. A network which limits
skipping to change at page 6, line 4 skipping to change at page 6, line 4
tolerant of poorly designed interfaces than mere computers, articles tolerant of poorly designed interfaces than mere computers, articles
in breach of established policy can cause considerable annoyance to in breach of established policy can cause considerable annoyance to
their recipients. their recipients.
Policies may well vary from network to network, from hierarchy to Policies may well vary from network to network, from hierarchy to
hierarchy within one network, and even between individual newsgroups hierarchy within one network, and even between individual newsgroups
within one hierarchy. It is assumed, for the purposes of this within one hierarchy. It is assumed, for the purposes of this
standard, that agencies with varying degrees of authority to standard, that agencies with varying degrees of authority to
establish such policies will exist, and that where they do not, establish such policies will exist, and that where they do not,
policy will be established by mutual agreement. For the benefit of policy will be established by mutual agreement. For the benefit of
News Article Format April 2001 News Article Format July 2001
networks and hierarchies without such established agencies, and to networks and hierarchies without such established agencies, and to
provide a basis upon which all agencies can build, this present provide a basis upon which all agencies can build, this present
standard often provides default policy parameters, usually standard often provides default policy parameters, usually
introducing them by a phrase such as "As a matter of policy ...". introducing them by a phrase such as "As a matter of policy ...".
1.2. Objectives 1.2. Objectives
The purpose of this present standard is to define the protocols to be The purpose of this present standard is to define the protocols to be
used for Netnews in general, and for Usenet in particular, and to set used for Netnews in general, and for Usenet in particular, and to set
skipping to change at page 7, line 4 skipping to change at page 7, line 4
As in this standard's predecessors, the exact means used to transmit As in this standard's predecessors, the exact means used to transmit
articles from one host to another is not specified. NNTP [NNTP] is articles from one host to another is not specified. NNTP [NNTP] is
the most common transmission method on the Internet, but much the most common transmission method on the Internet, but much
transmission takes place entirely independent of the Internet. Other transmission takes place entirely independent of the Internet. Other
methods in use include the UUCP protocol [RFC 976] extensively used methods in use include the UUCP protocol [RFC 976] extensively used
in the early days of Usenet, FTP, downloading via satellite, tape in the early days of Usenet, FTP, downloading via satellite, tape
archives, and physically delivered magnetic and optical media. archives, and physically delivered magnetic and optical media.
2. Definitions, Notations and Conventions 2. Definitions, Notations and Conventions
News Article Format April 2001 News Article Format July 2001
2.1. Definitions. 2.1. Definitions
An "article" is the unit of news, analogous to a [MESSFOR] "message". An "article" is the unit of news, analogous to an [RFC 2822]
A "proto-article" is one that has not yet been injected into the news "message". A "proto-article" is one that has not yet been injected
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.
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
skipping to change at page 7, line 37 skipping to change at page 7, line 37
posted directly, but mailed to a "moderator" for consideration and posted directly, but mailed to a "moderator" for consideration and
possible posting. Moderators are typically human but may be possible posting. Moderators are typically human but may be
implemented partially or entirely in software. implemented partially or entirely in software.
A "hierarchy" is the set of all newsgroups whose names share a first A "hierarchy" is the set of all newsgroups whose names share a first
component (as defined in 5.5). The term "sub-hierarchy" is also used component (as defined in 5.5). The term "sub-hierarchy" is also used
where several initial components are shared. where several initial components are shared.
A "poster" is the person or software that composes and submits a A "poster" is the person or software that composes and submits a
possibly compliant article to a "posting agent". The poster is possibly compliant article to a "posting agent". The poster is
analogous to [MESSFOR]'s author(s). analogous to [RFC 2822]'s author(s).
A "posting agent" is the software that assists posters to prepare A "posting agent" is the software that assists posters to prepare
proto-articles, in compliance with this standard. The proto-article proto-articles, in compliance with this standard. The proto-article
is then passed on to an "injecting agent" for final checking and is then passed on to an "injecting agent" for final checking and
injection into the news stream. If the article is not compliant, or injection into the news stream. If the article is not compliant, or
is rejected by the injecting agent, then the posting agent informs is rejected by the injecting agent, then the posting agent informs
the poster with an explanation of the error. the poster with an explanation of the error.
A "reader" is the person or software reading news articles. A "reader" is the person or software reading news articles.
skipping to change at page 8, line 5 skipping to change at page 8, line 5
A "followup" is an article containing a response to the contents of A "followup" is an article containing a response to the contents of
an earlier article (the followup's "precursor"). an earlier article (the followup's "precursor").
A "followup agent" is a combination of reading agent and posting A "followup agent" is a combination of reading agent and posting
agent that aids in the preparation and posting of a followup. agent that aids in the preparation and posting of a followup.
An article's "reply address" is the address to which mailed replies An article's "reply address" is the address to which mailed replies
should be sent. This is the address specified in the article's From should be sent. This is the address specified in the article's From
header (5.2), unless it also has a Reply-To header (6.1). header (5.2), unless it also has a Reply-To header (6.1).
News Article Format April 2001 News Article Format July 2001
A "reply agent" is a combination of reading agent and mailer that A "reply agent" is a combination of reading agent and mailer that
aids in the preparation and posting of an email response to an aids in the preparation and posting of an email response to an
article. article.
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 [MESSFOR]'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.
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.
skipping to change at page 9, line 4 skipping to change at page 9, line 4
the specification. The purpose of the notes is to explain why choices the specification. The purpose of the notes is to explain why choices
were made, to place them in context, or to suggest possible were made, to place them in context, or to suggest possible
implementation techniques. implementation techniques.
NOTE: While such explanatory notes may seem superfluous in NOTE: While such explanatory notes may seem superfluous in
principle, they often help the less-than-omniscient reader grasp principle, they often help the less-than-omniscient reader grasp
the purpose of the specification and the constraints involved. the purpose of the specification and the constraints involved.
Given the limitations of natural language for descriptive Given the limitations of natural language for descriptive
purposes, this improves the probability that implementors and purposes, this improves the probability that implementors and
users will understand the true intent of the specification in users will understand the true intent of the specification in
News Article Format April 2001 News Article Format July 2001
cases where the wording is not entirely clear. cases where the wording is not entirely clear.
"ASCII" is short for "the ANSI X3.4 character set" [ANSI X3.4]. "US-ASCII" is short for "the ANSI X3.4 character set" [ANSI X3.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 "ASCII" means X3.4 and somewhat similar to X3.4, in this standard "US-ASCII" is used to mean
only X3.4. ASCII is a 7 bit character set. Please note that this X3.4 and only X3.4. US-ASCII is a 7 bit character set. Please note
standard requires that all agents be 8 bit clean; that is, they must that this standard requires that all agents be 8 bit clean; that is,
accept and transmit data without changing or omitting the 8th bit. they must accept and transmit data without changing or omitting the
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
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].
In addition, the word "Ought", when applied to a poster, or to In addition, the word "Ought", when applied to a poster, or to
actions of posting and similar agents which a poster may easily actions of posting and similar agents which a poster may easily
override, indicates a recommendation whose violation would do no more override, indicates a recommendation whose violation would do no more
skipping to change at page 9, line 55 skipping to change at page 10, line 5
Throughout this standard we will give examples of various Throughout this standard we will give examples of various
definitions, headers and other specifications. It needs to be definitions, headers and other specifications. It needs to be
remembered that these samples are for the aid of the reader only and remembered that these samples are for the aid of the reader only and
do NOT define any specification themselves. In order to prevent do NOT define any specification themselves. In order to prevent
possible conflict with "Real World" entities and people the top level possible conflict with "Real World" entities and people the top level
domain of ".example" is used in all sample domains and addresses. The domain of ".example" is used in all sample domains and addresses. The
hierarchy of example.* is also used as a sample hierarchy. hierarchy of example.* is also used as a sample hierarchy.
Information on the ".example" top level domain is in [RFC 2606]. Information on the ".example" top level domain is in [RFC 2606].
News Article Format July 2001
2.3. Relation To Mail and MIME 2.3. Relation To Mail and MIME
The primary intent of this standard is to describe the news article The primary intent of this standard is to describe the news article
format. Insofar as news articles are a subset of the Mail message format. Insofar as news articles are a subset of the Mail message
format augmented by some new headers, this standard incorporates many format augmented by some new headers, this standard incorporates many
News Article Format April 2001 (though not all) of the provisions of [RFC 2822], with the aim of
(though not all) of the provisions of [MESSFOR], with the aim of
enabling news articles to pass through mail systems and vice versa, enabling news articles to pass through mail systems and vice versa,
provided only that they contain the minimum headers required for the provided only that they contain the minimum headers required for the
mode of transport being used. Unfortunately, the match is not mode of transport being used. Unfortunately, the match is not
perfect, but it is the intention of this standard that gateways perfect, but it is the intention of this standard that gateways
between Mail and News should be able to operate with the minimum of between Mail and News should be able to operate with the minimum of
tinkering. tinkering.
[This standard has been designed to fit on top of the drafts currently
in preparation for Mail [MESSFOR]. It is expected that those drafts
will have progressed to the RFC stage by the time the present standard
in complete, at which time all references to [MESSFOR] in the present
text will be replaced by references to that RFC.]
Likewise, this standard incorporates many (though not all) of the Likewise, this standard incorporates many (though not all) of the
provisions of the MIME standards [RFC 2045] et seq which, though provisions of the MIME standards [RFC 2045] et seq which, though
designed with Mail in mind, are mostly applicable to News. designed with Mail in mind, are mostly applicable to News.
2.4. Syntax Notation 2.4. 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]. A discussion of this is outside the bounds of this standard, 2234]. A discussion of this is outside the bounds of this standard,
but it is expected that implementors will be able quickly to but it is expected that implementors will be able quickly to
understand it with reference to that defining document. understand it with reference to that defining document.
Much of the syntax of News Articles is based on the corresponding Much of the syntax of News Articles is based on the corresponding
syntax defined in [MESSFOR] or in the Mime specifications [RFC 2045] syntax defined in [RFC 2822] or in the MIME specifications [RFC 2045]
et seq, which is deemed to have been incorporated into this standard et seq, which is deemed to have been incorporated into this standard
as required. However, there are some important differences arising as required. However, there are some important differences arising
from the fact that [MESSFOR] does not recognise anything other than from the fact that [RFC 2822] does not recognise anything other than
US-ASCII characters, that it does not recognise the MIME headers [RFC US-ASCII characters, that it does not recognise the MIME headers [RFC
2045], and that it includes much syntax described as "obsolete". 2045], and that it includes much syntax described as "obsolete".
NOTE: News parsers historically have been much less permissive NOTE: News parsers historically have been much less permissive
than Mail parsers, and this is reflected in the modifications than Mail parsers, and this is reflected in the modifications
referred to, and in some further specific rules. referred to, and in some further specific rules.
The following syntactic forms therefore supersede the corresponding The following syntactic forms therefore supersede the corresponding
rules given in [MESSFOR] and [RFC 2045], thus allowing UTF-8 rules given in [RFC 2822] and [RFC 2045], thus allowing UTF-8
characters [RFC 2044] to appear in certain contexts (the four rules characters [RFC 2279] to appear in certain contexts (the five rules
begining with "strict-" reflect the corresponding original rules from begining with "strict-" reflect the corresponding original rules from
[MESSFOR]). [RFC 2822]).
UTF8-xtra-2-head= %xC2-DF
UTF8-xtra-3-head= %xE0 %xA0-BF / %xE1-EC %x80-BF /
= %xED %x80-9F / %xEE-EF %x80-BF
UTF8-xtra-4-head= %xF0 %x90-BF / %xF1-F7 %x80-BF
UTF8-xtra-5-head= %xF8 %x88-BF / %xF9-FB %x80-BF
UTF8-xtra-6-head= %xFC %x84-BF / %xFD %x80-BF
UTF8-xtra-tail = %x80-BF
UTF8-xtra-char = UTF8-xtra-2-head 1( UTF8-xtra-tail ) /
UTF8-xtra-3-head 1( UTF8-xtra-tail ) /
UTF8-xtra-4-head 2( UTF8-xtra-tail ) /
UTF8-xtra-5-head 3( UTF8-xtra-tail ) /
UTF8-xtra-6-head 4( UTF8-xtra-tail )
News Article Format July 2001
UTF8-xtra-head = %d192-253
UTF8-xtra-tail = %d128-191
UTF8-xtra-char = UTF8-xtra-head 1*UTF8-xtra-tail
text = %d1-9 / ; all UTF-8 characters except text = %d1-9 / ; all UTF-8 characters except
%d11-12 / ; US-ASCII NUL, CR and LF %d11-12 / ; US-ASCII NUL, CR and LF
%d14-127 / %d14-127 /
UTF8-xtra-char UTF8-xtra-char
ctext = NO-WS-CTL / ; all of <text> except 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 /
UTF8-xtra-char UTF8-xtra-char
News Article Format April 2001
qtext = NO-WS-CTL / ; all of <text> except 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 /
UTF8-xtra-char UTF8-xtra-char
utext = NO-WS-CTL / ; Non white space controls utext = NO-WS-CTL / ; Non white space controls
%d33-126 / ; The rest of US-ASCII %d33-126 / ; The rest of US-ASCII
UTF8-xtra-char UTF8-xtra-char
strict-text = %d1-9 / ; text restricted to strict-text = %d1-9 / ; text restricted to
%d11-12 / ; US-ASCII %d11-12 / ; US-ASCII
%d14-127 %d14-127
strict-qtext = NO-WS-CTL / ; qtext restricted to strict-qtext = NO-WS-CTL / ; qtext restricted to
%d33 / ; US-ASCII %d33 / ; US-ASCII
%d35-91 / %d35-91 /
%d93-127 %d93-127
strict-quoted-pair strict-quoted-pair
= "\" strict-text = "\" strict-text
strict-qcontent = strict-qtext / strict-quoted-pair
strict-quoted-string strict-quoted-string
= [CFWS] DQUOTE = [CFWS]
*([FWS] (strict-qtext / strict-quoted-pair)) DQUOTE *([FWS] strict-qcontent) [FWS] DQUOTE
[FWS] DQUOTE [CFWS] [CFWS]
NOTE: There are sequences of octets which cannot legitimately The syntax for UTF8-xtra-char excludes those redundant sequences of
occur in UTF-8, even a few permitted by the above syntax. These octets which cannot occur in UTF-8, as defined by [RFC 2279], either
SHOULD NOT be generated by posting agents but, where they occur because they would not be the shortest possible encodings of some UCS
inadavertently, they SHOULD be passed on untouched by other character, or they would represent one of the characters D800 through
agents. DFFF, disallowed in UCS because of their surrogate use in the UTF-16
encoding. These sequences MUST NOT be generated by posting agents.
Where they occur inadavertently, they MAY be passed on untouched by
other agents, but they MUST NOT ever be interpreted as valid
characters.
Wherever in this standard the syntax is stated to be taken from Wherever in this standard the syntax is stated to be taken from [RFC
[MESSFOR], it is to be understood as the syntax defined by [MESSFOR] 2822], it is to be understood as the syntax defined by [RFC 2822]
after making the above changes, but NOT including any syntax defined after making the above changes, but NOT including any syntax defined
in section 4 ("Obsolete syntax") of [MESSFOR]. Software compliant in section 4 ("Obsolete syntax") of [RFC 2822]. Software compliant
with this standard MUST NOT generate any of the syntactic forms with this standard MUST NOT generate any of the syntactic forms
defined in that Obsolete Syntax, although it MAY accept such defined in that Obsolete Syntax, although it MAY accept such
syntactic forms. Certain syntax from the MIME specifications [RFC syntactic forms. Certain syntax from the MIME specifications [RFC
2045] et seq is also considered a part of this standard (see 6.21). 2045] et seq is also considered a part of this standard (see 6.21).
The following syntactic forms, taken from [RFC 2234] or from The following syntactic forms, taken from [RFC 2234] or from [RFC
[MESSFOR], are repeated here for convenience only: 2822], are repeated here for convenience only:
News Article Format July 2001
ALPHA = %x41-5A / ; A-Z ALPHA = %x41-5A / ; A-Z
%x61-7A ; a-z %x61-7A ; a-z
CR = %x0D ; carriage return CR = %x0D ; carriage return
CRLF = CR LF CRLF = CR LF
DIGIT = %x30-39 ; 0-9 DIGIT = %x30-39 ; 0-9
HTAB = %x09 ; horizontal tab HTAB = %x09 ; horizontal tab
LF = %x0A ; line feed LF = %x0A ; line feed
SP = %x20 ; space SP = %x20 ; space
NO-WS-CTL = %d1-8 / ; US-ASCII control characters 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
specials = "(" / ")" / ; Special characters used in
"<" / ">" / ; other parts of the syntax
"[" / "]" /
":" / ";" /
"@" / "
"," / "." /
DQUOTE
WSP = SP / HTAB ; Whitespace characters WSP = SP / HTAB ; Whitespace characters
News Article Format April 2001
FWS = ([*WSP CRLF] 1*WSP); Folding whitespace FWS = ([*WSP CRLF] 1*WSP); Folding whitespace
ccontent = ctext / quoted-pair / comment
comment = "(" *([FWS] ccontent) [FWS] ")"
CFWS = *([FWS] comment) (([FWS] comment) / FWS )
DQUOTE = %d34 ; quote mark
quoted-pair = "\" text
atext = ALPHA / DIGIT / atext = ALPHA / DIGIT /
"!" / "#" / ; Any character except "!" / "#" / ; Any character except
"$" / "%" / ; controls SP, and specials. "$" / "%" / ; controls, SP, and specials.
"&" / "'" / ; 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]
dot-atom-text = 1*atext *( "." 1*atext ) dot-atom-text = 1*atext *( "." 1*atext )
comment = "(" *([FWS] qcontent = qtext / quoted-pair
(ctext / quoted-pair / comment)) [FWS] ")" quoted-string = [CFWS]
CFWS = *([FWS] comment) (([FWS] comment) / FWS ) DQUOTE *([FWS] qcontent) [FWS] DQUOTE
DQUOTE = %d34 ; quote mark [CFWS]
quoted-pair = "\" text word = atom / quoted-string
quoted-string = [CFWS] DQUOTE phrase = 1*word
*([FWS] (qtext / quoted-pair))
[FWS] DQUOTE [CFWS]
unstructured = *( [FWS] utext ) [FWS] unstructured = *( [FWS] utext ) [FWS]
NOTE: CFWS occurs at many places in the syntax in order to allow NOTE: CFWS occurs at many places in the syntax in order to allow
comments and extra whitespace to be inserted almost anywhere. comments and extra whitespace to be inserted almost anywhere.
The syntax is in fact ambiguous insofar as it may be impossible The syntax is in fact ambiguous insofar as it may be impossible
to tell in which of several possible ways a given comment or WS to tell in which of several possible ways a given comment or WS
was produced. However, this does not lead to semantic ambiguity was produced. However, this does not lead to semantic ambiguity
News Article Format July 2001
because, unless specifically stated otherwise, the presence of because, unless specifically stated otherwise, the presence of
absence of a comment or additional WS has no semantic meaning absence of a comment or additional WS 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.
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
contradistinction to [MESSFOR], the Netnews protocols are contradistinction to [RFC 2822], the Netnews protocols are
sensitive to case in some instances (as in newsgroup names, some sensitive to case in some instances (as in newsgroup names, some
header parameters, etc.). Care has been taken to indicate this header parameters, etc.). Care has been taken to indicate this
explicitly where required. explicitly where required.
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.5. Language 2.5. Language
Various constant strings in this standard, such as header names and Various constant strings in this standard, such as header names and
month names, are derived from English words. Despite their month names, are derived from English words. Despite their
derivation, these words do NOT change when the poster or reader derivation, these words do NOT change when the poster or reader
employing them is interacting in a language other than English. employing them is interacting in a language other than English.
Posting and reading agents MAY translate as appropriate in their Posting and reading agents MAY translate as appropriate in their
interaction with the poster or reader, but the forms that actually interaction with the poster or reader, but the forms that actually
News Article Format April 2001
appear in articles MUST be the English-derived ones defined in this appear in articles MUST be the English-derived ones defined in this
standard. standard.
3. Changes to the existing protocols 3. Changes to the existing protocols
This standard prescribes many changes, clarifications and new This standard prescribes many changes, clarifications and new
features since the protocols described in [RFC 1036] and [Son-of- features since the protocols described in [RFC 1036] and [Son-of-
1036]. It is the intention that they can be assimilated into Usenet 1036]. It is the intention that they can be assimilated into Usenet
as it presently operates without major interruption to the service, as it presently operates without major interruption to the service,
though some of the new features may not begin to show benefit until though some of the new features may not begin to show benefit until
they become widely implemented. This section summarizes the main they become widely implemented. This section summarizes the main
changes, and comments on some features of the transition. changes, and comments on some features of the transition.
3.1. Principal Changes 3.1. Principal Changes
o The [MESSFOR] conventions for parenthesis-enclosed comments in o The [RFC 2822] conventions for parenthesis-enclosed comments in
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 news headers can now be folded. of such headers. Indeed, all news 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 Netnews is firmly established as an 8bit medium. o Netnews is firmly established as an 8bit medium.
o Large parts of MIME are recognised as an integral part of o Large parts of MIME are recognised as an integral part of
Netnews. Netnews.
o The charset for headers is always UTF-8. This will, inter alia, o The charset for headers is always UTF-8. This will, inter alia,
permit newsgroup-names with non-ASCII characters. permit newsgroup-names with non-ASCII characters.
o There is a new Control command 'mvgroup' to facilitate moving a o There is a new Control command '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, such as Replaces and o There are several new headers defined, such as Replaces and
News Article Format July 2001
Author-Ids, leading to increased functionality. Author-Ids, leading to increased functionality.
o There are numerous other small changes, clarifications and o There are numerous other small changes, clarifications and
enhancements. enhancements.
[Doubtless many other changes should be listed, but there is little [Doubtless many other changes should be listed, but there is little
point in doing so until our text is nearing completion. The above gives point in doing so until our text is nearing completion. The above gives
the flavour of what should be said. There should also be references to the flavour of what should be said. There should also be references to
Appendix A.3 and Appendix A.4 ] Appendix A.3 and Appendix A.4 ]
3.2. Transitional Arrangements 3.2. Transitional Arrangements
skipping to change at page 14, line 5 skipping to change at page 14, line 31
enhanced facilities. Fortunately, the number of distinct enhanced facilities. Fortunately, the number of distinct
implementations of such agents is rather small, at least so far as implementations of such agents is rather small, at least so far as
the main "backbone" of Usenet is concerned, and many of the new the main "backbone" of Usenet is concerned, and many of the new
features are already supported. Contrariwise, there are a great features are already supported. Contrariwise, there are a great
number of implementations of user agents, installed on a vastly number of implementations of user agents, installed on a vastly
greater number of small sites. Therefore, the new functionality has greater number of small sites. Therefore, the new functionality has
been designed so that existing agents may continue to be used, been designed so that existing agents may continue to be used,
although the full benefits may not be realised until a substantial although the full benefits may not be realised until a substantial
proportion of them have been upgraded. proportion of them have been upgraded.
News Article Format April 2001
In the list which follows, care has been taken to distinguish the In the list which follows, care has been taken to distinguish the
implications for both kinds of agent. implications for both kinds of agent.
o [MESSFOR] style comments in headers do not affect serving and o [RFC 2822] style comments in headers do not affect serving and
relaying agents (note that the Newsgroups and Path headers do not relaying agents (note that the Newsgroups and Path headers do not
contain them). They are unlikely to hinder their proper display contain them). They are unlikely to hinder their proper display
in existing user agents except in the case of the References in existing user agents except in the case of the References
header in agents which thread articles. Therefore, it is provided header in agents which thread articles. Therefore, it is provided
that they SHOULD NOT be generated except where permitted by the that they SHOULD NOT be generated except where permitted by the
previous standards. previous standards.
o Because of its importance to all serving agents, the extension o Because of its importance to all serving agents, the extension
permitting whitespace and folding in Newsgroup headers SHOULD NOT permitting whitespace and folding in Newsgroup headers SHOULD NOT
be used until it has been widely deployed amongst relaying be used until it has been widely deployed amongst relaying
agents. User agents are unaffected. agents. User agents are unaffected.
skipping to change at page 14, line 36 skipping to change at page 15, line 4
o The vast majority of serving, relaying and transport agents are o The vast majority of serving, relaying and transport agents are
believed to be already 8bit clean (in the slightly restricted believed to be already 8bit clean (in the slightly restricted
sense in which that term is used in the MIME standards). User sense in which that term is used in the MIME standards). User
agents that do not implement MIME may be disadvantaged, but no agents that do not implement MIME may be disadvantaged, but no
more so than at present when faced with 8bit characters (which more so than at present when faced with 8bit characters (which
currently abound in spite of the previous standards). currently abound in spite of the previous standards).
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
News Article Format July 2001
charsets such as ISO-8859-1. Users expecting to read articles charsets such as ISO-8859-1. Users expecting to read articles
using the more exotic charsets will need to acquire suitable using other charsets will need to acquire suitable reading
reading agents. It is not intended, in general, that any single agents. It is not intended, in general, that any single user
user agent will be able to display every charset known to IANA, agent will be able to display every charset known to IANA, but
but all such agents MUST support US-ASCII. Serving and relaying all such agents MUST support US-ASCII. Serving and relaying
agents are not affected. agents are not affected.
o The use of the UTF-8 charset for headers will not affect any o The use of the UTF-8 charset for headers will not affect any
existing usage, since US-ASCII is a strict subset of UTF-8. existing usage, since US-ASCII is a strict subset of UTF-8.
Insofar as newsgroup names containing non-ASCII characters can Insofar as newsgroup names containing non-ASCII characters can
now be expected to arise, support from serving and relaying now be expected to arise, support from serving and relaying
agents will be necessary. It is believed that the customary agents will be necessary. It is believed that the customary
storage structure used by serving agents can already cope storage structure used by serving agents can already cope
(perhaps not ideally) with such names. Note that it is not (perhaps not ideally) with such names. Note that it is not
necessary for serving and relaying agents to understand all the necessary for serving and relaying agents to understand all the
characters available in UTF-8, though it is desirable for them to characters available in UTF-8, though it is desirable for them to
be displayable for diagnostic purposes via some escape mechanism be displayable for diagnostic purposes via some escape mechanism
using, for example, the visible subset of US-ASCII. For users using, for example, the visible subset of US-ASCII. For users
expecting to use the more exotic charsets available under UTF-8, expecting to use the more exotic possibilities available under
the remarks already made in connection with MIME will apply. UTF-8, the remarks already made in connection with MIME will
apply.
o The new Control: mvgroup command will need to be implemented in o The new Control: mvgroup command will need to be implemented in
serving agents. It SHOULD be used in conjunction with pairs of serving agents. It SHOULD be used in conjunction with pairs of
matching rmgroup and newgroup commands (injected shortly after matching rmgroup and newgroup commands (injected shortly after
the mvgroup) until such time as mvgroup is widely implemented. the mvgroup) until such time as mvgroup is widely implemented.
The new Replaces header is also effectively a Control command, The new Replaces header is also effectively a Control command,
and transitional arrangements are provided which should be used and transitional arrangements are provided which should be used
News Article Format April 2001
in the meantime. User agents are unaffected. in the meantime. User agents are unaffected.
o The headers newly introduced by this standard can safely be o 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 15, line 33 skipping to change at page 16, line 4
other-header-content other-header-content
USENET-header-content USENET-header-content
= <the header-content defined in this standard = <the header-content defined in this standard
(or an extension of it) for a specific (or an extension of it) for a specific
USENET header> USENET header>
other-header-content other-header-content
= <a header-content defined (explicitly or = <a header-content defined (explicitly or
implicitly) by some other standard> implicitly) by some other standard>
header-parameter = USENET-header-parameter / header-parameter = USENET-header-parameter /
other-header-parameter other-header-parameter
News Article Format July 2001
USENET-header-parameter USENET-header-parameter
= <an other-header-parameter defined in = <an other-header-parameter defined in
this standard for use in conjunction with this standard for use in conjunction with
a specific USENET-header-content> a specific USENET-header-content>
other-header-parameter other-header-parameter
= attribute "=" value = attribute "=" value
attribute = USENET-token / iana-token / x-token attribute = USENET-token / iana-token / x-token
value = token / quoted-string value = token / quoted-string
USENET-token = <A token defined in this standard for USENET-token = <A token defined in this standard for
use in conjunction with a specific use in conjunction with a specific
skipping to change at page 16, line 4 skipping to change at page 16, line 33
or tspecials> or tspecials>
tspecials = "(" / ")" / "<" / ">" / "@" / tspecials = "(" / ")" / "<" / ">" / "@" /
"," / ";" / ":" / "\" / DQUOTE / "," / ";" / ":" / "\" / DQUOTE /
"/" / "[" / "]" / "?" / "=" "/" / "[" / "]" / "?" / "="
separator = CRLF separator = CRLF
body = *( *998text CRLF ) body = *( *998text CRLF )
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. The headers contain structured information about separates the two. The headers contain structured information about
the article and its transmission. A header begins with a header-name the article and its transmission. A header begins with a header-name
News Article Format April 2001
identifying it, and can be continued onto subsequent lines as identifying it, and can be continued onto subsequent lines as
described in section 4.2.3. The body is largely unstructured text described in section 4.2.3. The body is largely unstructured text
significant only to the poster and the readers. significant only to the 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 [MESSFOR] 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.
NOTE: The syntax above defines the canonical form of a news NOTE: The syntax above defines the canonical form of a news
article as a sequence of lines each terminated by CRLF. This article as a sequence of lines each terminated by CRLF. This
does not prevent serving agents or transport agents from storing does not prevent serving agents or transport agents from storing
or handling the article in other formats (e.g. using a single LF or handling the article in other formats (e.g. using a single LF
in place of CRLF) so long as the overall effects achieved are as in place of CRLF) so long as the overall effects achieved are as
defined by this standard when operating on the canonical form. defined by this standard when operating on the canonical form.
4.2. Headers 4.2. Headers
4.2.1. Names and Contents 4.2.1. Names and Contents
Despite the restrictions on header-name syntax imposed by the Despite the restrictions on header-name syntax imposed by the
grammar, relayers and reading agents SHOULD tolerate header names grammar, relayers and reading agents SHOULD tolerate header names
containing any US-ASCII printable character other than colon (":", containing any US-ASCII printable character other than colon (":",
ASCII 58). US-ASCII 58).
[To bring it into line with <optional-field> as given in [MESSFOR].]
News Article Format July 2001
Header-names SHOULD be either those for which a USENET-header-content Header-names SHOULD be either those for which a USENET-header-content
is defined in this standard, or those defined in [MESSFOR], or those is established by this standard, or by [RFC 2822], or by any
defined in any extension to either of these standards including, in extension to either of these standards including, in particular, the
particular, the Mime standards [RFC 2045] et seq., or experimental MIME standards [RFC 2045] et seq., or else experimental headers
headers beginning with "X-" (as defined in 4.2.2.1). Software SHOULD beginning with "X-" (as defined in 4.2.2.1). Software SHOULD NOT
NOT attempt to interpret headers not described in this standard or in attempt to interpret headers not described in this standard or in its
its extensions, but relaying agents MUST pass them on unaltered and extensions, but relaying agents MUST pass them on unaltered and
reading agents MUST enable them to be displayed, at least optionally. reading agents MUST enable them to be displayed, at least optionally.
The possibility of allowing header-parameters to appear in all The possibility of allowing header-parameters to appear in all
headers is provided mainly for the purpose of allowing future headers is provided mainly for the purpose of allowing future
extensions to existing headers, since only a very few USENET-header- extensions to existing headers, since only a very few USENET-header-
parameters are actually defined in this standard. Observe that such parameters are actually defined in this standard. Observe that such
header-parameters do not, in general, occur in headers defined in header-parameters do not, in general, occur in headers defined in
other standards, except for the Mime standards [RFC 2045] et seq. and other standards, except for the MIME standards [RFC 2045] et seq. and
their extensions. Nevertheless, compliant software MUST accept all their extensions. Nevertheless, compliant software MUST accept all
such header-parameters in headers defined by this standard and its such header-parameters in headers defined by this standard and its
extensions (ignoring them if their meaning is unknown) and SHOULD extensions (ignoring them if their meaning is unknown) and SHOULD
accept (and ignore) them in all headers. accept (and ignore) them in all headers.
[but what about [but what about
address = mailbox / group address = mailbox / group
group = phrase ":" [mailbox-list] ";" group = phrase ":" [mailbox-list] ";"
Does the following NOTE cover the situation?] Does the following NOTE cover the situation?]
News Article Format April 2001
NOTE: The presence of a ";" in a header-content does not NOTE: The presence of a ";" in a header-content does not
indicate the presence of a header-parameter in the few indicate the presence of a header-parameter in the few
situations where it can be parsed as part of some USENET- situations where it can be parsed as part of some USENET-
header-content or other-header-content. header-content or other-header-content.
On the other hand, posting agents SHOULD NOT generate them (even On the other hand, posting agents SHOULD NOT generate header-
those using x-tokens) except in those headers for which a USENET- parameters (even those using x-tokens) except in those headers for
header-parameter has been defined, or where that usage is permitted which a USENET-header-parameter has been defined, or where that usage
by some other standard (notably one of the Mime standards). This is permitted by some other standard (notably one of the MIME
restriction is likely to removed in a future version of this standards). This restriction is likely to removed in a future version
standard. of this standard.
NOTE: The given syntax is ambiguous insofar as a USENET-header- NOTE: The given syntax is ambiguous insofar as a USENET-header-
content that is defined to be <unstructured> could contain, content that is defined to be <unstructured> could contain,
within that <unstructured>, text of the form <*(";" header- within that <unstructured>, text of the form <*(";" header-
parameter)>. The intention is therefore that any such apparent parameter)>. The intention is therefore that any such apparent
header-parameters are to be regarded as part of the header-parameters are to be regarded as part of the
<unstructured>. This standard therefore does not (and extensions <unstructured>. This standard therefore does not (and extensions
to it SHOULD NOT) define any USENET-header-parameter to be to it SHOULD NOT) define any USENET-header-parameter to be
associated with such an unstructured USENET-header-content. associated with such an unstructured USENET-header-content.
The order of headers in an article is not significant. However, The order of headers in an article is not significant. However,
posting agents are encouraged to put mandatory headers (section 5) posting agents are encouraged to put mandatory headers (section 5)
first, followed by optional headers (section 6), followed by first, followed by optional headers (section 6), followed by
experimental headers and headers not defined in this standard or its experimental headers and headers not defined in this standard or its
extensions. Relaying agents MUST NOT change the order of the headers extensions. Relaying agents MUST NOT change the order of the headers
in an article, though they MAY add additional headers (notablt local in an article.
headers (4.2.2.3), preferably either before or after all the existing
ones. News Article Format July 2001
Header-names are case-insensitive. There is a preferred case Header-names are case-insensitive. There is a preferred case
convention, which posters and posting agents SHOULD use: each convention, which posters and posting agents Ought to use: each
hyphen-separated "word" has its initial letter (if any) in uppercase hyphen-separated "word" has its initial letter (if any) in uppercase
and the rest in lowercase, except that some abbreviations have all and the rest in lowercase, except that some abbreviations have all
letters uppercase (e.g. "Message-ID" and "MIME-Version"). The forms letters uppercase (e.g. "Message-ID" and "MIME-Version"). The forms
used in this standard are the preferred forms for the headers used in this standard are the preferred forms for the headers
described herein. Relaying and reading agents MUST, however, tolerate described herein. Relaying and reading agents MUST, however, tolerate
articles not obeying this convention. articles not obeying this convention.
4.2.2. Header Properties 4.2.2. Header Properties
There are four special properties that may apply to particular There are three special properties that may apply to particular
headers, namely: "experimental", "inheritable", "local", and headers, namely: "experimental", "inheritable", and "variant". When a
"variant". When a header is defined, in this (or any future) header is defined, in this (or any future) standard, as having one
standard, as having one (or possibly more) of these properties, it is (or possibly more) of these properties, it is subject to special
subject to special treatment, as indicated below. treatment, as indicated below.
4.2.2.1. Experimental Headers 4.2.2.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. There enabling additional material to be propagated with an article. There
are no established headers that are considered experimental headers; are no established headers (see 4.2.1) that are considered
an established header cannot be experimental. experimental headers; an established header cannot be experimental.
News Article Format April 2001
NOTE: Some such headers may eventually be adopted as standard by NOTE: Some such headers may eventually be adopted as standard by
some extension to this standard, at which point they will lose some extension to this standard, at which point they will lose
their "X-" prefix. their "X-" prefix.
4.2.2.2. Inheritable Headers 4.2.2.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
skipping to change at page 18, line 29 skipping to change at page 18, line 54
Followup-To header. Followup-To header.
o Subject (5.4) - modified by prefixing with "Re: ", but otherwise o Subject (5.4) - modified by prefixing with "Re: ", but otherwise
copied from the precursor. copied from the precursor.
o References (6.10) - copied from the precursor, with the addition o References (6.10) - copied from the precursor, with the addition
of the precursor's Message-ID. of the precursor's Message-ID.
o Distribution (6.6) - copied from the precursor. o Distribution (6.6) - copied from the precursor.
NOTE: The Keywords header is not inheritable, though some older NOTE: The Keywords header is not inheritable, though some older
newsreaders treated it as such. newsreaders treated it as such.
4.2.2.3. Local Headers 4.2.2.3. Variant Headers
Headers with the local property are significant only to a particular
serving agent (or perhaps a cooperating group of such agents). They
MAY be removed by relaying agents before propagation, and MUST be
removed (and replaced as necessary) by serving agents when received.
The replaced header MAY be placed anywhere within the headers (though
placing it first is recommended). The principle example is:
o Xref (6.16) - used to keep track of the article locators of
crossposted articles so that newsreaders can mark such articles
as read.
4.2.2.4. Variant Headers Headers with the variant property may differ between (or even be
completely absent from) copies of the same article as stored or
relayed throughout a Netnews system. The manner of the difference (or
absence) MUST be as specified in this (or any future) standard.
Typically, these headers are modified as articles are propagated, or
News Article Format July 2001
Headers with the variant property are modified as articles are they reflect the status of the article on a particular serving agent,
propagated. The modified header MAY be placed anywhere within the or cooperating group of such agents. The variant header MAY be placed
headers (though placing it first is recommended). The principle anywhere within the headers (though placing it first is recommended).
example is: The principle examples are:
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
crossposted articles so that newsreaders serviced by a particular
serving agent can mark such articles as read.
4.2.3. White Space and Continuations 4.2.3. White Space and Continuations
[The following text is taken from [MESSFOR], adapted to the different
terminology used for this standard.]
Each header is logically a single line of characters comprising the Each header is logically a single line of characters comprising the
header-name, the colon with its following SP, and the header-content. header-name, the colon with its following SP, and the header-content.
For convenience, however, the header-content can be split into a For convenience, however, the header-content can be split into a
multiple line representation; this is called "folding". The general multiple line representation; this is called "folding". The general
rule is that wherever this standard allows for FWS or CFWS (but not rule is that wherever this standard allows for FWS or CFWS (but not
simply SP or HTAB) a CRLF may be inserted before any WSP. For simply SP or HTAB) a CRLF may be inserted before any WSP. For
News Article Format April 2001
example, the header: example, the header:
Approved: modname@modsite.example (Moderator of comp.foo.bar) Approved: modname@modsite.example (Moderator of comp.foo.bar)
can be represented as: can be represented as:
Approved: modname@modsite.example Approved: modname@modsite.example
(Moderator of comp.foo.bar) (Moderator of comp.foo.bar)
NOTE: Though header-contents are defined in such a way that NOTE: Though header-contents are defined in such a way that
folding can take place between many of the lexical tokens (and folding can take place between many of the lexical tokens (and
even within some of them), folding SHOULD be limited to placing even within some of them), folding SHOULD be limited to placing
the CRLF at higher-level syntactic breaks, and SHOULD also avoid the CRLF at higher-level syntactic breaks, and SHOULD also avoid
skipping to change at page 19, line 32 skipping to change at page 19, line 50
header is made up entirely of WSP characters and nothing else. header is made up entirely of WSP characters and nothing else.
The colon following the header name on the first line MUST be The colon following the header name on the first line MUST be
followed by a WSP, even if the header is empty. If the header is not followed by a WSP, even if the header is empty. If the header is not
empty, at least some of the content MUST appear on the first line empty, at least some of the content MUST appear on the first line
(this is to avoid the possibility of harm by any non-compliant agent (this is to avoid the possibility of harm by any non-compliant agent
that might eliminate a trailing SP). Posting agents MUST enforce that might eliminate a trailing SP). Posting agents MUST enforce
these restrictions, but relaying agents SHOULD accept even articles these restrictions, but relaying agents SHOULD accept even articles
that violate them. that violate them.
NOTE: This standard differs from [MESSFOR] in requiring that WSP NOTE: This standard differs from [RFC 2822] in requiring that
followng the colon (it was also an [RFC 1036] requirement). WSP followng the colon (it was also an [RFC 1036] requirement).
Posters and posting agents SHOULD use SP, not HTAB, where white space Posters and posting agents SHOULD use SP, not HTAB, where white space
is desired in headers (some existing software expects this), and MUST is desired in headers (some existing software expects this), and MUST
use SP immediately following the colon after a header-name. Relaying use SP immediately following the colon after a header-name. Relaying
agents SHOULD accept HTAB in all such cases, however. agents SHOULD accept HTAB in all such cases, however.
News Article Format July 2001
Since the white space beginning a continuation line remains a part of Since the white space beginning a continuation line remains a part of
the logical line, headers can be "broken" into multiple lines only at the logical line, headers can be "broken" into multiple lines only at
FWS or CFWS. Posting agents Ought Not to break headers unnecessarily FWS or CFWS. Posting agents Ought Not to break headers unnecessarily
(but see 4.5 (but see 4.5).
4.2.4. Comments 4.2.4. Comments
Strings of characters which are treated as comments may be included Strings of characters which are treated as comments may be included
in header-contents wherever the syntactic element CFWS occurs. They in header-contents wherever the syntactic element CFWS occurs. They
consist of characters enclosed in parentheses. Such strings are consist of characters enclosed in parentheses. Such strings are
considered comments so long as they do not appear within a quoted- considered comments so long as they do not appear within a quoted-
string. Comments may be nested. string. Comments may be nested.
A comment is normally used to provide some human readable A comment is normally used to provide some human readable
informational text, except at the end of an address which contains no informational text, except at the end of an address which contains no
phrase, as in phrase, as in
fred@foo.bar.example (Fred Bloggs) fred@foo.bar.example (Fred Bloggs)
as opposed to as opposed to
"Fred Bloggs" <fred@foo.bar.example> . "Fred Bloggs" <fred@foo.bar.example> .
News Article Format April 2001
The former is a deprecated, but commonly encountered, usage and The former is a deprecated, but commonly encountered, usage and
reading agents SHOULD take special note of such comments as reading agents SHOULD take special note of such comments as
indicating the name of the person whose address it is. In all other indicating the name of the person whose address it is. In all other
situations a comment is semantically interpreted as a single SP. situations a comment is semantically interpreted as a single SP.
Since a comment is allowed to contain FWS, folding is permitted Since a comment is allowed to contain FWS, folding is permitted
within it as well as immediately preceding and immediately following within it as well as immediately preceding and immediately following
it. Also note that, since quoted-pair is allowed in a comment, the it. Also note that, since quoted-pair is allowed in a comment, the
parenthesis and backslash characters may appear in a comment so long parenthesis and backslash characters may appear in a comment so long
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 comment content; the content is what parentheses are not part of the comment content; the content is what
skipping to change at page 20, line 37 skipping to change at page 20, line 57
A header whose content is empty is said to be an empty header. A header whose content is empty is said to be an empty header.
Relaying and reading agents SHOULD NOT consider presence or absence Relaying and reading agents SHOULD NOT consider presence or absence
of an empty header to alter the semantics of an article (although of an empty header to alter the semantics of an article (although
syntactic rules, such as requirements that certain header names syntactic rules, such as requirements that certain header names
appear at most once in an article, MUST still be satisfied). Posting appear at most once in an article, MUST still be satisfied). Posting
and injecting agents SHOULD delete empty headers from articles before and injecting agents SHOULD delete empty headers from articles before
posting them; relaying agents MUST pass them untouched. posting them; relaying agents MUST pass them untouched.
Headers that merely state defaults explicitly (e.g., a Followup-To Headers that merely state defaults explicitly (e.g., a Followup-To
header with the same content as the Newsgroups header, or a Mime header with the same content as the Newsgroups header, or a MIME
Content-Type header with contents "text/plain; charset=us-ascii") or Content-Type header with contents "text/plain; charset=us-ascii") or
state information that reading agents can typically determine easily state information that reading agents can typically determine easily
themselves (e.g. the length of the body in octets) are redundant and themselves (e.g. the length of the body in octets) are redundant and
News Article Format July 2001
posters and posting agents Ought Not to include them. posters and posting agents Ought Not to include them.
4.3. Body 4.3. Body
4.3.1. Body Format Issues 4.3.1. Body Format Issues
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.
NOTE: Some existing news software is known to react badly to NOTE: Some existing news software is known to react badly to
body-less articles, hence the request for posting and injecting body-less articles, hence the request for posting and injecting
agents to insert a body in such cases. The sentence "This agents to insert a body in such cases. The sentence "This
article was probably generated by a buggy news reader" has article was probably generated by a buggy news reader" has
traditionally been used is this situation. traditionally been used is this situation.
News Article Format April 2001
Note that an article body is a sequence of lines terminated by CRLFs, Note that an article body is a sequence of lines terminated by CRLFs,
not arbitrary binary data, and in particular it MUST end with a CRLF. not arbitrary binary data, and in particular it MUST end with a CRLF.
However, relaying agents SHOULD treat the body of an article as an However, relaying agents SHOULD treat the body of an article as an
uninterpreted sequence of octets (except as mandated by changes of uninterpreted sequence of octets (except as mandated by changes of
CRLF representation and by control-message processing) and SHOULD CRLF representation and by control-message processing) and SHOULD
avoid imposing constraints on it. See also section 4.5. avoid imposing constraints on it. See also section 4.5.
Posters SHOULD avoid using control characters and escape sequences Posters SHOULD avoid using control characters and escape sequences
except for tab (ASCII 9), formfeed (ASCII 12) and, possibly, except for tab (US-ASCII 9), formfeed (US-ASCII 12) and, possibly,
backspace (ASCII 8). Tab signifies sufficient horizontal white space backspace (US-ASCII 8). Tab signifies sufficient horizontal white
to reach the next of a set of fixed positions; posters are warned space to reach the next of a set of fixed positions; posters are
that there is no standard set of positions, so tabs should be avoided warned that there is no standard set of positions, so tabs should be
if precise spacing is essential. Formfeed (which is sometimes avoided if precise spacing is essential. Formfeed (which is sometimes
referred to as the "spoiler character") signifies a point at which a referred to as the "spoiler character") signifies a point at which a
reading agent Ought to pause and await reader interaction before reading agent Ought to pause and await reader interaction before
displaying further text. Reading agents MUST NOT pass other control displaying further text.
characters or escape sequences unaltered to an output device.
NOTE: Passing other control characters or escape sequences
unaltered to a display or printing device is likely to have
unpredictable results, except in the case of a device adapted to
the special needs of some particular character set.
NOTE: Backspace was historically used for underlining, done by NOTE: Backspace was historically used for underlining, done by
an underscore (ASCII 95), a backspace, and a character, repeated an underscore (US-ASCII 95), a backspace, and a character,
for each character that should be underlined. Posters are warned repeated for each character that should be underlined. Posters
that underlining is not available on all output devices or are warned that underlining is not available on all output
supported by all reading agents and is best not relied on for devices or supported by all reading agents and is best not
essential meaning. relied on for essential meaning.
4.3.2. Body Conventions 4.3.2. Body Conventions
A body is by default an uninterpreted sequence of octets for most of A body is by default an uninterpreted sequence of octets for most of
the purposes of this standard. However, a Mime Content-Type header the purposes of this standard. However, a MIME Content-Type header
may impose some structure or intended interpretation upon it, and may may impose some structure or intended interpretation upon it, and may
also specify the character set in accordance with which the octets also specify the character set in accordance with which the octets
are to be interpreted. are to be interpreted.
News Article Format July 2001
It is a common practice for followup agents to enable the It is a common practice for followup agents to enable the
incorporation of the followed-up article (the "precursor") as a incorporation of the followed-up article (the "precursor") as a
quotation. This SHOULD be done by prefacing each line of the quoted quotation. This SHOULD be done by prefacing each line of the quoted
text (even if it is empty) with the character ">" (or perhaps with text (even if it is empty) with the character ">" (or perhaps with
"> " in the case of a previously unquoted line). This will result in "> " in the case of a previously unquoted line). This will result in
multiple levels of ">" when quoted content itself contains quoted multiple levels of ">" when quoted content itself contains quoted
content, and it will also facilitate the automatic analysis of content, and it will also facilitate the automatic analysis of
articles. articles.
NOTE: Posters should edit quoted context to trim it down to the NOTE: Posters should edit quoted context to trim it down to the
skipping to change at page 22, line 4 skipping to change at page 22, line 28
to enforce this beyond issuing a warning (past attempts to do so to enforce this beyond issuing a warning (past attempts to do so
have been found to be notably counter-productive). have been found to be notably counter-productive).
The followup agent SHOULD also precede the quoted content by an The followup agent SHOULD also precede the quoted content by an
"attribution line" (however, readers are warned not to assume that "attribution line" (however, readers are warned not to assume that
they are accurate, especially within multiply nested quotations). The they are accurate, especially within multiply nested quotations). The
following convention for such lines, whilst not mandated by this following convention for such lines, whilst not mandated by this
standard, is intended to facilitate their automatic recognition and standard, is intended to facilitate their automatic recognition and
processing by sophisticated reading agents. The attribution SHOULD processing by sophisticated reading agents. The attribution SHOULD
contain the name or the email address of the precursor's poster, as contain the name or the email address of the precursor's poster, as
News Article Format April 2001
in in
Joe D. Bloggs <jdbloggs@foo.example> wrote: Joe D. Bloggs <jdbloggs@foo.example> wrote:
or or
Helmut Schmidt <helmut@bar.example> schrieb: Helmut Schmidt <helmut@bar.example> schrieb:
The attribution MAY contain also a single Newsgroup name (the one The attribution MAY contain also a single Newsgroup name (the one
from which the followup is being made), the precursor's Message-ID from which the followup is being made), the precursor's Message-ID
and/or the precursor's Date and Time. Any of these that are present, and/or the precursor's Date and Time. Any of these that are present,
SHOULD precede the name and/or email address. However, the inclusion SHOULD precede the name and/or email address. However, the inclusion
or not of such fields Ought always to be under the control of the or not of such fields Ought always to be under the control of the
skipping to change at page 22, line 37 skipping to change at page 23, line 5
may be folded in the same way as headers, but attributions SHOULD may be folded in the same way as headers, but attributions SHOULD
always be terminated by a ":" followed by CRLF. always be terminated by a ":" followed by CRLF.
Further examples: Further examples:
On comp.foo in <1234@bar.example> on 24 Dec 1997 16:40:20 +0000, On comp.foo in <1234@bar.example> on 24 Dec 1997 16:40:20 +0000,
Joe D. Bloggs <jdbloggs@bar.example> wrote: Joe D. Bloggs <jdbloggs@bar.example> wrote:
Am 24. Dez 1997 schrieb Helmut Schmidt <helmut@bar.example>: Am 24. Dez 1997 schrieb Helmut Schmidt <helmut@bar.example>:
News Article Format July 2001
A "personal signature" is a short closing text automatically added to A "personal signature" is a short closing text automatically added to
the end of articles by posting agents, identifying the poster and the end of articles by posting agents, identifying the poster and
giving his network addresses, etc. If a poster or posting agent does giving his network addresses, etc. If a poster or posting agent does
append such a signature to an article, it MUST be preceded with a append such a signature to an article, it MUST be preceded with a
delimiter line containing (only) two hyphens (ASCII 45) followed by delimiter line containing (only) two hyphens (US-ASCII 45) followed
one SP (ASCII 32). The signature is considered to extend from the by one SP (US-ASCII 32). The signature is considered to extend from
last occurrence of that delimiter up to the end of the article (or up the last occurrence of that delimiter up to the end of the article
to the end of the part in the case of a multipart Mime body). (or up to the end of the part in the case of a multipart MIME body).
Followup agents, when incorporating quoted text from a precursor, Followup agents, when incorporating quoted text from a precursor,
Ought Not to include the signature in the quotation. Posting agents Ought Not to include the signature in the quotation. Posting agents
Ought to discourage (at least with a warning) signatures of excessive Ought to discourage (at least with a warning) signatures of excessive
length (4 lines is a commonly accepted limit). length (4 lines is a commonly accepted limit).
4.4. Characters and Character Sets 4.4. Characters and Character Sets
Transmission paths for news articles MUST treat news articles as Transmission paths for news articles MUST treat news articles as
uninterpreted sequences of octets, excluding the values 0 (ASCII NUL) uninterpreted sequences of octets, excluding the values 0 (US-ASCII
and 13 and 10 (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 correspponds to the range of octets permitted for NOTE: this correspponds to the range of octets permitted for
Mime "8bit data" [RFC 2045]. Thus raw binary data cannot be MIME "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-
News Article Format April 2001
Transfer-Encoding such as base64. Transfer-Encoding such as base64.
Character data is represented by octets in accordance with some Character data is represented by octets in accordance with some
encoding scheme (UTF-8 for headers, and determined by the Content- encoding scheme (UTF-8 for headers, and determined by the Content-
Type and Content-Transfer-Encoding headers for bodies). Type and Content-Transfer-Encoding headers for bodies).
If it comes to a relaying agent's attention that it is being asked to If it comes to a relaying agent's attention that it is being asked to
pass an article using the Content-Transfer-Encoding "8bit" to a pass an article using the Content-Transfer-Encoding "8bit" to a
relaying agent that does not support it, it SHOULD report this error relaying agent that does not support it, it SHOULD report this error
to its administrator. It MUST refuse to pass the article and MUST NOT to its administrator. It MUST refuse to pass the article and MUST NOT
re-encode it with different Mime encodings. re-encode it with different MIME encodings.
NOTE: This strategy will do little harm. The target relaying NOTE: This strategy will do little harm. The target relaying
agent is unlikely to be able to make use of the article on its agent is unlikely to be able to make use of the article on its
own servers, and the usual flooding algorithm will likely find own servers, and the usual flooding algorithm will likely find
some alternative route to get the article to destinations where some alternative route to get the article to destinations where
it is needed. it is needed.
4.4.1. Character Sets within Article Headers 4.4.1. Character Sets within Article Headers
Within article headers, characters are represented as octets Within article headers, characters are represented as octets
according to the UTF-8 encoding scheme [ISO 10646] or [RFC 2279] and according to the UTF-8 encoding scheme [RFC 2279] or [ISO/IEC 10646],
hence all the characters in the Universal Multiple-Octet Coded and hence all the characters in Unicode [UNICODE 3.1] or in the
Character Set (UCS) [ISO 10646] (which is essentially a superset of Universal Multiple-Octet Coded Character Set (UCS) [ISO/IEC 10646]
Unicode [UNICODE] and expected to remain so) are potentially (which is essentially a superset of Unicode and expected to remain
available. However, interpreting the octets directly as US-ASCII so) are potentially available. However, processing all octets in the
characters should ensure correct behaviour in most situations. same manner as US-ASCII characters should ensure correct behaviour in
most situations.
News Article Format July 2001
NOTE: UTF-8 is an encoding for 16bit (and even 32bit) character NOTE: UTF-8 is an encoding for 16bit (and even 32bit) character
sets with the property that any octet less than 128 immediately sets with the property that any octet less than 128 immediately
represents the corresponding US-ASCII character, thus ensuring represents the corresponding US-ASCII character, thus ensuring
upwards compatibility with previous practice. Non-ASCII upwards compatibility with previous practice. Non-ASCII
characters from UCS are represented by sequences of octets characters from Unicode are represented by sequences of octets
satisfying the syntax of a UTF8-xtra-char (2.4). Only those satisfying the syntax of a UTF8-xtra-char (2.4), which excludes
octet sequences explicitly permitted by [RFC 2044] shall be certain octet sequences not explicitly permitted by [RFC 2279].
used. UCS includes all characters from the ISO-8859 series of Unicode includes all characters from the ISO-8859 series of
characters sets [ISO 8859] (which includes all Greek and Arabic characters sets [ISO 8859] (which includes all Cyrillic, Greek
characters) as well as the more elaborate characters used in and Arabic characters) together with the more elaborate
Japan and China. See the following section for the appropriate characters used in Asian countries. See the following section
treatment of UCS characters by reading agents. for the appropriate treatment of Unicode characters by reading
agents.
Notwithstanding the great flexibility permitted by UTF-8, there is Notwithstanding the great flexibility permitted by UTF-8, there is
need for restraint in its use in order that the essential components need for restraint in its use in order that the essential components
of headers may be discerned using reading agents that cannot present of headers may be discerned using reading agents that cannot present
the full UCS range. In particular, header-names and tokens MUST be in the full Unicode range. In particular, header-names and tokens MUST
US-ASCII, and certain other components of headers, as defined be in US-ASCII, and certain other components of headers, as defined
elsewhere in this standard - notably msg-ids, date-times, dot-atoms, elsewhere in this standard - notably msg-ids, date-times, dot-atoms,
domains and path-identities - MUST be in US-ASCII. Comments, phrases domains and path-identities - MUST be in US-ASCII. Comments, phrases
(as in addresses) and unstructureds (as in Subject headers) MAY use (as in addresses) and unstructureds (as in Subject headers) MAY use
the full range of UTF-8 characters. For newsgroup-names see 5.5. the full range of UTF-8 characters, but SHOULD nevertheless be
invariant under Unicode normalization NFC [UNICODE 3.1].
NOTE: The effect of normalization NFC is to place composite
characters (made by overlaying one character with another) into
a canonical form (usually represented by a single character
where one is available - thus E-acute is preferred over E
followed by a non-spacing acute accent), and to make a
consistent choice among equivalent forms (e.g. the Angstrom sign
is replaced by A-ring). At least for the main European
languages, for which all the needed composites are already
available as single characters, it is unlikely that posting
agents will need to take any special steps to ensure
normalization.
In the particular case of newsgroup-names (see 5.5) there are more
stringent requirements regarding the use of UTF-8 and Unicode.
Where the use of non-ASCII characters, encoded in UTF-8, is permitted Where the use of non-ASCII characters, encoded in UTF-8, is permitted
as above, they MAY also be encoded using the Mime mechanism defined as above, they MAY also be encoded using the MIME mechanism defined
in [RFC 2047], but this usage is deprecated within news articles in [RFC 2047], but this usage is deprecated within news articles
News Article Format April 2001
(even though it is required in mail messages) since it is less (even though it is required in mail messages) since it is less
legible in older reading agents which support neither it nor UTF-8. legible in older reading agents which support neither it nor UTF-8.
Nevertheless, reading agents SHOULD support this usage, but only in Nevertheless, reading agents SHOULD support this usage, but only in
those contexts explicitly mentioned in [RFC 2047]. those contexts explicitly mentioned in [RFC 2047].
4.4.2. Character Sets within Article Bodies 4.4.2. Character Sets within Article Bodies
Within article bodies, characters are represented as octets according Within article bodies, characters are represented as octets according
to the encoding scheme implied by any Content-Transfer-Encoding and to the encoding scheme implied by any Content-Transfer-Encoding and
Content-Type headers [RFC 2045]. In the absence of such headers, Content-Type headers [RFC 2045]. In the absence of such headers,
reading agents cannot be relied upon to display correctly more than reading agents cannot be relied upon to display correctly more than
News Article Format July 2001
the US-ASCII characters. the US-ASCII characters.
NOTE: Observe that reading agents are not forbidden to "guess", NOTE: Observe that reading agents are not forbidden to "guess",
or to interpret as UTF-8 regardless, which would be the simplest or to interpret as UTF-8 regardless, which would be the simplest
course for them to take. course for them to take.
NOTE: It is not expected that reading agents will necessarily be NOTE: It is not expected that reading agents will necessarily be
able to present characters in all possible character sets, able to present characters in all possible character sets,
although they MUST be able to present all US-ASCII characters. although they MUST be able to present all US-ASCII characters.
For example, a reading agent might be able to present only the For example, a reading agent might be able to present only the
ISO-8859-1 (Latin 1) characters [ISO 8859], in which case it ISO-8859-1 (Latin 1) characters [ISO 8859], in which case it
Ought to present undisplayable characters using some distinctive Ought to present undisplayable characters using some distinctive
glyph, or by exhibiting a suitable warning. Older reading agents glyph, or by exhibiting a suitable warning. Older reading agents
that do not understand Mime headers or UTF-8 should be able to that do not understand MIME headers or UTF-8 should be able to
display bodies in US-ASCII (with some loss of human display bodies in US-ASCII (with some loss of human
comprehensibility) except possibly when the Content-Transfer- comprehensibility) except possibly when the Content-Transfer-
Encoding is "8bit". Encoding is "8bit".
Followup agents MUST be careful to apply appropriate encodings to the Followup agents MUST be careful to apply appropriate encodings to the
outbound followup. A followup to an article containing non-ASCII outbound followup. A followup to an article containing non-ASCII
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
skipping to change at page 25, line 4 skipping to change at page 25, line 49
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).
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 lines of at least that length, both in headers standard MUST support lines of at least that length, both in headers
and in bodies, and all such software SHOULD support lines of and in bodies, and all such software SHOULD support lines of
News Article Format April 2001
arbitrary length. In particular, relaying agents MUST transmit lines arbitrary length. In particular, relaying agents MUST transmit lines
of arbitrary length without truncation or any other modification. of arbitrary length 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 [MESSFOR]. corresponding limit in [RFC 2822].
[RFC8222? now expresses it as 1000 incl. CRLF]
In plain-text messages (those with no Mime headers, or those with a In plain-text messages (those with no MIME headers, or those with a
Mime Content-Type of text/plain) posting agents Ought to endeavour to MIME Content-Type of text/plain) posting agents Ought to endeavour to
keep the length of body lines within some reasonable limit. The size keep the length of body lines within some reasonable limit. The size
of this limit is a matter of policy, the default being to keep within of this limit is a matter of policy, the default being to keep within
79 characters at most, and preferably within 72 characters (to allow 79 characters at most, and preferably within 72 characters (to allow
News Article Format July 2001
room for quoting in followups). Exceptionally, posting agents Ought room for quoting in followups). Exceptionally, posting agents Ought
Not to adjust the length of quoted lines in followups unless they are Not to adjust the length of quoted lines in followups unless they are
able to reformat them in a consistent manner. Moreover, posting able to reformat them in a consistent manner. Moreover, posting
agents MUST permit the poster to include longer lines if he so agents MUST permit the poster to include longer lines if he so
insists. insists.
NOTE: Plain-text messages are intended to be displayed "as-is" NOTE: Plain-text messages are intended to be displayed "as-is"
without any special action (such as automatic line splitting) on without any special action (such as automatic line splitting) on
the part of the recipient. The policy limit (e.g. 72 or 79) the part of the recipient. The policy limit (e.g. 72 or 79)
should be expressed as a number of characters (as they will be should be expressed as a number of characters (as they will be
skipping to change at page 26, line 4 skipping to change at page 26, line 47
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: Wed, 22 Apr 1998 12:12:50 -0700 Expires: Wed, 22 Apr 1998 12:12:50 -0700
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.
Just a quick announcemnt that a new standard example article has Just a quick announcemnt that a new standard example article has
News Article Format April 2001
been released; it is in the new USEFOR draft obtainable from been released; it is in the new USEFOR draft obtainable from
ftp.ietf.org. ftp.ietf.org.
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.
News Article Format July 2001
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. In control messages, specific values are required for mandatory. In control messages, specific values are required for
certain headers. certain headers.
skipping to change at page 26, line 38 skipping to change at page 27, line 31
content>. content>.
A proto-article (see 8.2.1) may lack some of these mandatory headers, A proto-article (see 8.2.1) may lack some of these mandatory headers,
but they MUST then be supplied by the injecting agent. but they MUST then be supplied by the injecting agent.
5.1. Date 5.1. Date
The Date header contains the date and time that the article was The Date header contains the date and time that the article was
prepared by the poster ready for transmission and SHOULD express the prepared by the poster ready for transmission and SHOULD express the
poster's local time. The content syntax makes use of syntax defined poster's local time. The content syntax makes use of syntax defined
in [MESSFOR]. in [RFC 2822], subject to the following revised definition of zone.
Date-content = date-time Date-content = date-time
zone = (( "+" / "-" ) 4DIGIT) / "UT" / "GMT"
NOTE: It is a useful convention to follow the date-time with a The forms "UT" and "GMT" (indicating universal time) are to be
comment containing the time zone in human-readable form. The use regarded as obsolete synonyms for "+0000". They MUST be be accepted,
of folding in a date-time is deprecated, even though permitted and passed on unchanged, by all agents, but they MUST NOT be
by [MESSFOR]. generated as part of new articles by posting and injecting agents.
[There is a specific RECOMMENDED about this in MESSFOR now.] Although folding white space is permitted throughout the date-time
syntax, it is RECOMMENDED that a single space be used in each place
that FWS appears (whether it is required or optional).
NOTE: A convention that is sometimes followed is to add a
comment, after the date-time, containing the time zone in
human-readable form, but many of the abbreviations commonly used
for this purpose are ambiguous. The value given by the <zone> is
the only definitive form.
In order to prevent the reinjection of expired articles into the news In order to prevent the reinjection of expired articles into the news
stream, relaying and serving agents MUST refuse articles whose Date stream, relaying and serving agents MUST refuse articles whose Date
header predates the earliest articles of which they normally keep header predates the earliest articles of which they normally keep
record, or which is more than 24 hours into the future (though they record, or which is more than 24 hours into the future (though they
MAY use a margin less than that 24 hours). Relaying agents MUST NOT MAY use a margin less than that 24 hours). Relaying agents MUST NOT
modify the Date header in transit. modify the Date header in transit.
News Article Format July 2001
5.1.1. Examples 5.1.1. Examples
Date: Fri, 2 Apr 1999 20:20:51 -0500 (EST) Date: Fri, 2 Apr 1999 20:20:51 -0500 (EST)
Date: 26 May 1999 16:13 +0000 Date: 26 May 1999 16:13 +0000
News Article Format April 2001 Date: 26 May 1999 16:13 GMT (Obsolete)
5.2. From 5.2. From
The From header contains the electronic address(es), and possibly the The From header contains the electronic address(es), and possibly the
full name, of the article's author(s). The content syntax makes use full name, of the article's poster(s). The content syntax makes use
of syntax defined in [MESSFOR], subject to the following revised of syntax defined in [RFC 2822], subject to the following revised
definition of local-part. definition of local-part.
From-content = mailbox-list From-content = mailbox-list
addr-spec = local-part "@" domain addr-spec = local-part "@" domain
local-part = dot-atom / strict-quoted-string local-part = dot-atom / strict-quoted-string
NOTE: This syntax ensures that the local-part of an addr-spec is NOTE: This syntax ensures that the local-part of an addr-spec is
restricted to pure US-ASCII (and is thus in strict compliance restricted to pure US-ASCII (and is thus in strict compliance
with [MESSFOR]), whilst allowing any UTF-8 character to be used with [RFC 2822]), whilst allowing any UTF-8 character to be used
in a preceding quoted-string containing the author's full name. in a preceding quoted-string containing the poster's full name.
If some future extension to the Mail protocols should relax this If some future extension to the Mail protocols should relax this
restriction, one would expect the Netnews protocols to follow. restriction, one would expect the Netnews protocols to follow.
The mailbox in the From-content SHOULD be a valid address, belonging The mailbox in the From-content SHOULD be a valid address, belonging
to the poster(s) of the article, or person or agent on whose behalf to the poster(s) of the article, or person or agent on whose behalf
the post is being sent (see the Sender header, 6.2). When, for the post is being sent (see the Sender header, 6.2). When, for
whatever reason, the poster does not wish to include such an whatever reason, the poster does not wish to include such an
adddress, the From-content SHOULD then be an address which ends in adddress, the From-content SHOULD then be an address which ends in
the top level domain of ".invalid" [RFC 2606]. the top level domain of ".invalid" [RFC 2606].
skipping to change at page 27, line 52 skipping to change at page 29, line 4
5.2.1. Examples: 5.2.1. Examples:
From: John Smith <jsmith@site.example> From: John Smith <jsmith@site.example>
From: "John Smith" <jsmith@site.example>, dave@isp.example From: "John Smith" <jsmith@site.example>, dave@isp.example
From: "John D. Smith" <jsmith@site.example>, andrew@isp.example, From: "John D. Smith" <jsmith@site.example>, andrew@isp.example,
fred@site2.example fred@site2.example
From: Jan Jones <jan@please_setup_your_system_correctly.invalid> From: Jan Jones <jan@please_setup_your_system_correctly.invalid>
From: Jan Jones <joe@guess-where.invalid> From: Jan Jones <joe@guess-where.invalid>
From: dave@isp.example (Dave Smith) From: dave@isp.example (Dave Smith)
News Article Format July 2001
NOTE: the last example shows a now deprecated convention of NOTE: the last example shows a now deprecated convention of
putting an author's full name in a comment following the putting a poster's full name in a comment following the mailbox,
mailbox, rather than in a phrase at the start of that mailbox. rather than in a phrase at the start of that mailbox. Observe
Observe that the quotes around the "John D. Smith" example were that the quotes around the "John D. Smith" example were
required, on account of the '.' character, and they would also required, on account of the '.' character, and they would also
have been required had any UTF8-xtra-char been present. have been required had any UTF8-xtra-char been present.
News Article Format April 2001
5.3. Message-ID 5.3. Message-ID
The Message-ID header contains the article's message identifier, a The Message-ID header contains the article's message identifier, a
unique identifier distinguishing the article from every other unique identifier distinguishing the article from every other
article. The content syntax makes use of syntax defined in [MESSFOR], article. The content syntax makes use of syntax defined in [RFC
subject to the following revised definition of no-fold-quote. 2822], subject to the following revised definition of no-fold-quote
and no-fold-literal.
Message-ID-content = msg-id Message-ID-content = msg-id
id-left = dot-atom-text / no-fold-quote id-left = dot-atom-text / no-fold-quote
id-right = dot-atom-text / no-fold-literal
no-fold-quote = DQUOTE *( strict-qtext / strict-quoted-pair ) no-fold-quote = DQUOTE *( strict-qtext / strict-quoted-pair )
DQUOTE DQUOTE
no-fold-literal = DQUOTE *( dtext / strict-quoted-pair ) DQUOTE
The msg-id MUST NOT be more than 250 octets in length. A msg-id MUST NOT contain any SP within any strict-quoted-pair. The
msg-id MUST NOT be more than 250 octets in length.
NOTE: The syntax ensures that a msg-id is restricted to pure NOTE: The syntax ensures that a msg-id is restricted to pure
US-ASCII (and is thus in strict compliance with [MESSFOR]). The US-ASCII, and is thus a strict subset of that defined by [RFC
length restriction ensures that systems which accept message 2822]. The exclusion of SP is to ensure compatibility with
identifiers as a parameter when retrieving an article (e.g. existing software. The length restriction ensures that systems
[NNTP]) can rely on a bounded length. Observe that msg-id which accept message identifiers as a parameter when retrieving
includes the '<' and '>'. an article (e.g. [NNTP]) can rely on a bounded length. Observe
[Do something about whitespace in dot-atom-text and no-fold-quote.] that msg-id includes the '<' and '>'.
Following the provisions of [MESSFOR], an agent generating an Following the provisions of [RFC 2822], an agent generating an
article's message identifier MUST ensure that it is unique and that article's message identifier MUST ensure that it is unique and that
it is NEVER reused (either in Netnews or email). Moreover, even it is NEVER reused (either in Netnews or email). Moreover, even
though commonly derived from the domain name of the originating site though commonly derived from the domain name of the originating site
(and domain names are case-insensitive), a message identifier MUST (and domain names are case-insensitive), a message identifier MUST
NOT be altered in any way during transport, or when copied (as into a NOT be altered in any way during transport, or when copied (as into a
References header), and thus a simple (case-sensitive) comparison of References header), and thus a simple (case-sensitive) comparison of
octets will always suffice to recognise that same message identifier octets will always suffice to recognise that same message identifier
wherever it subsequently reappears. wherever it subsequently reappears.
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.2.2) to be copied the message. This is an inheritable header (4.2.2.2) to be copied
into the Subject header of any followup, in which case the new into the Subject header of any followup, in which case the new
header-content SHOULD then default to the string "Re: " (a "back header-content SHOULD then default to the string "Re: " (a "back
News Article Format July 2001
reference") followed by the contents of the pure-subject of the reference") followed by the contents of the pure-subject of the
precursor. Any leading "Re: " in the pure-subject MUST be stripped. precursor. Any leading "Re: " in the pure-subject MUST be stripped.
Subject-content = [ back-reference ] pure-subject Subject-content = [ back-reference ] pure-subject
pure-subject = 1*( [FWS] utext ) pure-subject = 1*( [FWS] utext )
back-reference = %x52.65.3A.20 back-reference = %x52.65.3A.20
; which is a case-sensitive "Re: " ; which is a case-sensitive "Re: "
The pure-subject MUST NOT begin with "Re: ". The pure-subject MUST NOT begin with "Re: ".
News Article Format April 2001 NOTE: The given syntax differs from that prescribed in [RFC
2822] insofar as it does not permit a header content to be
NOTE: The given syntax differs from that prescribed in [MESSFOR] completely empty, or to consist of WSP only (see remarks in
insofar as it does not permit a header content to be completely 4.2.5 concerning undesirable headers).
empty, or to consist of WSP only (see remarks in 4.2.5
concerning undesirable headers).
Followup agents MAY remove instances of non-standard back-reference Followup agents MAY remove strings that are known to be used
(such as "Re(2): ", "Re:", "RE: ", or "Sv: ") from the Subject- erroneously as back-reference (such as "Re(2): ", "Re:", "RE: ", or
content when composing the subject of a followup and add a correct "Sv: ") from the Subject-content when composing the subject of a
back-reference in front of the result. followup and add a correct back-reference in front of the result.
NOTE: that would be "SHOULD remove instances" except that we NOTE: that would be "SHOULD remove instances" except that we
cannot find a sufficiently robust and simple algorithm to do the cannot find a sufficiently robust and simple algorithm to do the
necessary natural language processing. necessary natural language processing.
Followup agents MUST NOT use any other string except "Re: " as a back Followup agents MUST NOT use any other string except "Re: " as a back
reference. Specifically, a translation of "Re: " into a local reference. Specifically, a translation of "Re: " into a local
language or usage MUST NOT be used. language or usage MUST NOT be used.
NOTE: "Re" is an abbreviation for the Latin "In re", meaning "in NOTE: "Re" is an abbreviation for the Latin "In re", meaning "in
skipping to change at page 29, line 48 skipping to change at page 31, line 4
In the following examples, please note that only "Re: " is mandated In the following examples, please note that only "Re: " is mandated
by this standard. "was: " is a convention used by many English- by this standard. "was: " is a convention used by many English-
speaking posters to signal a change in subject matter. Software speaking posters to signal a change in subject matter. Software
should be able to deduce this information from References. should be able to deduce this information from References.
Subject: Film at 11 Subject: Film at 11
Subject: Re: Film at 11 Subject: Re: Film at 11
Subject: Godwin's law considered harmful (was: Film at 11) Subject: Godwin's law considered harmful (was: Film at 11)
Subject: Godwin's law (was: Film at 11) Subject: Godwin's law (was: Film at 11)
Subject: Re: Godwin's law (was: Film at 11) Subject: Re: Godwin's law (was: Film at 11)
News Article Format July 2001
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.2.2) which then becomes the default Newsgroups header of any (4.2.2.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. otherwise.
References to "Unicode" or "the latest version of the Unicode
Standard" mean [UNICODE 3.1] contains guarantees of strict future
upwards compatibility (e.g. no character will be removed or change
classification). Implementors should be aware that currently
unassigned code points (Unicode category Cn) may become valid
characters in future versions of Unicode. Since the poster of an
article might have access to a newer version of that standard,
relaying and serving agents MUST accept such characters, but posting
agents (and indeed all agents) MUST NOT generate them.
Newsgroups-content = newsgroup-name Newsgroups-content = newsgroup-name
*( *FWS ng-delim *FWS newsgroup-name ) *( *FWS ng-delim *FWS newsgroup-name )
*FWS *FWS
newsgroup-name = component *( "." component ) newsgroup-name = component *( "." component )
News Article Format April 2001 component = 1*component-glyph
component = component-start
*( component-start / component-other )
component-start = Un-lowercase / Un-digit
Un-lowercase = <Unicode Letter, Lowercase> /
<Unicode Letter, Other>
Un-digit = <Unicode Number, Decimal Digit> /
<Unicode Number, Other>
component-other = "+" / "-" / "_"
ng-delim = "," ng-delim = ","
where the <Unicode ...> items are as described in [UNICODE]. component-glyph = combiner-base *combiner-mark
combiner-base = combiner-ASCII / combiner-extended
combiner-ASCII = "0"-"9" / %x41-5A / %x61-7A / "+" / "-" / "_"
combiner-extended = <any character with a Unicode code value of
0080 or greater and a combining class of 0,
but excluding any character in Unicode
categories Cc, Cf, Cs, Zs, Zl, and Zp>
combiner-mark = <any character with a Unicode code value of
0080 or greater and a combining class other
than 0>
The inclusion of folding white space within a Newsgroups-content is a NOTE: the excluded characters are control characters (Cc),
newly introduced feature in this standard. It MUST be accepted by all format control characters (Cf), surrogates (Cs), and separators
conforming implementations (relaying agents, serving agents and (Zs, Zl, Zp). In particular, this excludes all whitespace
reading agents). Posting agents should be aware that such postings characters.
may be rejected by overly-critical old-style relaying agents. When a
sufficient number of relaying agents are in conformance, posting
agents SHOULD generate such whitespace in the form of <CRLF WS> so as
to keep the length of lines in the relevant headers (notably
Newsgroups and Followup-To) to no more than than 79 characters (or
other agreed policy limit - see 4.5). Before such critical mass
occurs, injecting agents MAY reformat such headers by removing
whitespace inserted by the posting agent, but relaying agents MUST
NOT do so.
A newsgroup-name consists of one or more components. Components MAY Each component MUST be invariant under Unicode normalization NFKC
contain non-ASCII letters, but these MUST be encoded in UTF-8 and not (cf. the weaker normalization requirement for other headers in
according to [RFC 2047]. A component MUST contain at least one section 4.4.1 which specified no more than normalization NFC).
letter (and MUST, according to the syntax, begin with a letter or
digit). Components SHOULD begin with a letter. Composite characters
(made by overlaying one character with another) and format
characters, as allowed in certain parts of Unicode and needed by
certain languages, must use whatever canonical conventions apply to
those parts of Unicode (such conventions are not defined in this
Standard). The use of "_" in a component is deprecated. Serving
agents MAY refuse to accept newsgroups using such a component.
NOTE: Components composed entirely of digits would cause NOTE: Alternatively, this restriction could have been expressed
problems for the commonly used implementation technique of using by saying:
the component as the name of a directory, whilst also using o All characters with a compatibility decomposition are
sequential numbers to distinguish the articles within a group. forbidden;
Components containing other non-permitted characters could cause or else
problems when newsgroup-names appear in URLs [RFC 1738] (for o All characters with property NFKC-NO are forbidden.
example an '@' character would prevent distinguishing between The effect is to exclude variant forms of characters, such as
newsgroup-names and message identifiers). superscripts and subscripts, wide and narrow forms, font
variants, encircled forms, ligatures, and so on, as their use
could cause confusion.
NOTE: According to the syntax, uppercase letters cannot occur in News Article Format July 2001
newsgroup-names, but this standard imposes no requirement on
software to check this condition, since it would be unreasonable
to expect it to do so in parts of Unicode for which it was not
configured (in general, a table lookup is required). Rather, it
is the responsibility of those creating new newsgroups (7.1) not
to violate it. It is, moreover, to be expected that a newsgroup
created in violation of this condition will not be propagated
News Article Format April 2001
particularly well. As a result of of this restriction, a name has only one valid
form. Implementations can assume that a straight comparison of
characters or octets is sufficient to compare two newsgroup-
names.
Whilst there is no longer any technical reason to limit the length of NOTE: An implementation is not required to apply NFKC, or any
a component (formerly, it was limited to 14 characters) nor to limit other normalization, to newsgroup names. Only agencies that
the total length of a newsgroup-name, it should be noted that these create new groups need to be careful to obey this restriction
names are also used in the newsgroups line (7.1.2) where an overall (7.1). However, if a posting agent neglects to normalize a
policy limit applies, and moreover excessively long names can be newsgroup-name entered manually, this may lead to the user
exceedingly inconvenient in practical use. Agencies responsible for posting to a non-existent group without understanding why.
individual hierarchies Ought therefore, as a matter of policy, to set
reasonable limits for the length of a component and of a newsgroup- Newsgroup-names containing non-ASCII characters MUST be encoded in
name. In the absence of such explicit policies, the default limits UTF-8 and not according to [RFC 2047].
are 30 characters and 71 characters respectively.
[If the checkpolicies proposal is included in the Standard, there should Components beginning with underline ("_") are reserved for use by
be a reference to it here.] future versions of this standard and MUST NOT occur in newsgroup
names (whether in Newsgroup headers or in newgroup control messages
(7.1)). However, such names MUST be accepted.
Components beginning with "+" or "-" are reserved for use by
implementations and MUST NOT occur in newsgroup names (whether in
Newsgroup headers or in newgroup control messages). Implementors may
assume that this rule will not change in any future version of this
standard.
NOTE: For example, implementors may safely use leading "+" and
"-" to "escape" other entities within something that looks like
a newsgroup-name.
Agencies responsible for the administration of particular hierarchies
Ought to place additional restrictions on the characters they allow
in newsgroup-names within those hierarchies (such as to accord with
the languages commonly used within those hierarchies, or to avoid
perceived ambiguities pertinent to those languages). Where there is
no such specific policy, the following restrictions SHOULD be applied
to newsgroup names.
NOTE: These restrictions are intended to reflect existing
practice, with some additions to accomodate foreseeable
enhancements, and are intended both to avoid certain technical
difficulties and to avoid unnecessary confusion. It may well be
that experience will allow future extensions to this standard to
relax some or all of these restrictions.
The specific restrictions (to be applied in the absence of
established policies to the contrary) are:
1. The following characters are forbidden, subject to the comments
and notes at the end of the list:
characters in category Cn (Other, Not assigned) [1]
characters in category Co (Other, Private Use) [2]
characters in category Lt (Letter, Titlecase) [3]
News Article Format July 2001
characters in category Lu (Letter, Uppercase) [3]
characters in category Me (Mark, Enclosing) [4]
characters in category Pd (Punctuation, Dash) [4][5]
characters in category Pe (Punctuation, Close) [4]
characters in category Pf (Punctuation, Final quote) [4]
characters in category Pi (Punctuation, Initial quote) [4]
characters in category Po (Punctuation, Other) [4]
characters in category Ps (Punctuation, Open) [4]
characters in category Sc (Symbol, Currency) [4]
characters in category Sk (Symbol, Modifier) [4]
characters in category Sm (Symbol, Math) [4][5]
characters in category So (Symbol, Other) [4]
[1] As new characters are added to Unicode, the code point moves
from category Cn to some other category. As stated above,
implementors should be prepared for this.
[2] Specific private use characters can be used within a hierarchy
or co-operating subnet that has agreed meanings for them.
[3] Traditionally, newsgroup-names have been written in lowercase.
Posting agents MAY convert these characters to the
corresponding lowercase forms.
[That may be better left unsaid, or rewritten]
[4] Traditionally newsgroup names have only used letters, digits,
and the three special characters "+", "-" and "_". These
categories correspond to characters outside that set.
[5] Although the characters "+" and "-" are within categories Pd
and Sm, they are not forbidden.
2. A component name is forbidden to consist entirely of digits.
NOTE: This requirement was in [RFC 1036] but nevertheless
several such groups have appeared in practice and implementors
should be prepared for them. A common implementation technique
uses each component as the name of a directory and uses numeric
filenames for each article within a group. Such an
implementation needs to be careful when this could cause a clash
(e.g. between article 123 of group xxx.yyy and the directory for
group xxx.yyy.123).
[Open issue a number of people think this should not be a default
requirement but simply be a NOTE; wording for such is further down.]
3. A component is limited to 30 component-glyphs and a newsgroup-name
to 71 component-glyphs. Whilst there is no longer any technical
reason to limit the length of a component (formerly, it was
limited to 14 octets) nor of a newsgroup-name, it should be noted
that these names are also used in the newsgroups line (7.1.2)
where an overall policy limit applies and, moreover, excessively
long names can be exceedingly inconvenient in practical use.
News Article Format July 2001
NOTE: To all intents and purposes, a component-glyph is what a
user might regard as a single "character" as displayed on his
screen, though it might be transmitted as several actual
characters (e.g. q-circumflex is two characters).
Serving and relaying agents MUST accept any newsgroup-name that meets
the above requirements, even if they violate one or more of the
policy restrictions. Posting and injecting agents MAY reject articles
containing newsgroup-names that do not meet these restrictions, and
posting agents MAY attempt to correct them (e.g. by lowercasing).
However, because of the large and changing tables required to do
these checks and corrections throughout the whole of Unicode, this
standard does not require them to do so. Rather, the onus is placed
on those who create new newsgroups (7.1) to check the mandatory
requirements, to consider the effects of relaxing the other
restrictions, and to consider how all this may affect propagation of
the group.
Since future extensions to this standard and the Unicode standard,
plus any relaxations of the default restrictions introduced by
specific hierarchies, might invalidate some such checks, warnings,
and adjustments, implementations MUST incorporate means to disable
them. In particular, implementations must be prepared for a
relaxation of the normalization requirements (e.g. from NFKC down to
NFC), which have been made rather stringent due to a lack of
practical experience in this area.
[Alternative text for Open issue]
NOTE: Components composed entirely of digits were forbidden by
[RFC 1036] but have nevertheless been used in practice, and are
therefore permitted by this specification. A common
implementation technique uses each component as the name of a
directory and uses numeric filenames for each article within a
group. Such an implementation needs to be careful when this
could cause a clash (e.g. between article 123 of group xxx.yyy
and the directory for group xxx.yyy.123).
[Open issue: delete the above text if we retain the default requirement
above.]
NOTE: The newsgroup-name as encoded in UTF-8 should be regarded NOTE: The newsgroup-name as encoded in UTF-8 should be regarded
as the canonical form. Reading agents may convert it to whatever as the canonical form. Reading agents may convert it to whatever
character set they are able to display (see 4.4.1) and serving character set they are able to display (see 4.4.1) and serving
agents may possibly need to convert it to some form more agents may possibly need to convert it to some form more
suitable as a filename. Simple algorithms for both kinds of suitable as a filename. Simple algorithms for both kinds of
conversion are readily available. Observe that the syntax does conversion are readily available. Observe that the syntax does
not allow comments within the Newsgroups header; this is to not allow comments within the Newsgroups header; this is to
simplify processing by relaying and serving agents which have a simplify processing by relaying and serving agents which have a
requirement to process this header extremely rapidly. requirement to process this header extremely rapidly.
The inclusion of folding white space within a Newsgroups-content is a
newly introduced feature in this standard. It MUST be accepted by all
conforming implementations (relaying agents, serving agents and
reading agents). Posting agents should be aware that such postings
News Article Format July 2001
may be rejected by overly-critical old-style relaying agents. When a
sufficient number of relaying agents are in conformance, posting
agents SHOULD generate such whitespace in the form of <CRLF WS> so as
to keep the length of lines in the relevant headers (notably
Newsgroups and Followup-To) to no more than than 79 characters (or
other agreed policy limit - see 4.5). Before such critical mass
occurs, injecting agents MAY reformat such headers by removing
whitespace inserted by the posting agent, but relaying agents MUST
NOT do so.
Posters SHOULD use only the names of existing newsgroups in the Posters SHOULD use only the names of existing newsgroups in the
Newsgroups header. However, it is legitimate to cross-post to Newsgroups header. However, it is legitimate to cross-post to
newsgroup(s) which do not exist on the posting agent's host, provided newsgroup(s) which do not exist on the posting agent's host, provided
that at least one of the newsgroups DOES exist there, and followup that at least one of the newsgroups DOES exist there, and followup
agents SHOULD accept this (posting agents MAY accept it, but Ought at agents SHOULD accept this (posting agents MAY accept it, but Ought at
least to alert the poster to the situation and request confirmation). least to alert the poster to the situation and request confirmation).
Relaying agents MUST NOT rewrite Newsgroups headers in any way, even Relaying agents MUST NOT rewrite Newsgroups headers in any way, even
if some or all of the newsgroups do not exist on the relaying agent's if some or all of the newsgroups do not exist on the relaying agent's
host. Serving agents MUST NOT create new newsgroups simply because an host. Serving agents MUST NOT create new newsgroups simply because an
unrecognised newsgroup-name occurs in a Newsgroups header (see 7.1 unrecognised newsgroup-name occurs in a Newsgroups header (see 7.1
skipping to change at page 32, line 5 skipping to change at page 35, line 44
newsgroup-name contains any non-ASCII character, it MAY be encoded newsgroup-name contains any non-ASCII character, it MAY be encoded
using the mechanism defined in [RFC 2047] when sent by mail but, if using the mechanism defined in [RFC 2047] when sent by mail but, if
it is subsequently returned to the Netnews environment, it MUST then it is subsequently returned to the Netnews environment, it MUST then
be re-encoded into UTF-8. be re-encoded into UTF-8.
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:
News Article Format April 2001
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
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), "control" (likewise), "junk" (often used by serving agents), "control" (likewise),
"revise" and "repost" (which have special meanings in the Xref "revise" and "repost" (which have special meanings in the Xref
header - see 6.16) header - see 6.16)
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.6, and for test ihave/sendme protocol described in section 7.6, and for test
messages sent on an essentially point-to-point basis) messages sent on an essentially point-to-point basis)
News Article Format July 2001
o Any newsgroup-name beginning with "example." (reserved for
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)
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 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 a message since its entry
into the Netnews system. It is a variant header (4.2.2.4), each agent into the Netnews system. It is a variant header (4.2.2.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 '%' delimiter in the Path header can be Finally the presence of a '%' delimiter in the Path header can be
used to identify an article injected in conformance with this used to identify an article injected in conformance with this
standard. standard.
5.6.1. Format 5.6.1. Format
skipping to change at page 33, line 5 skipping to change at page 36, line 46
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 April 2001
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 July 2001
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 delimiter to the MUST prepend its own path-identity followed by a delimiter to the
beginning of the Path-content. In addition, it SHOULD then add CRLF 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 and WSP if it would otherwise result in a line longer than 79
characters. characters.
skipping to change at page 33, line 48 skipping to change at page 37, line 33
construction of a valid E-mail address of the form "usenet@<FQDN>" construction of a valid E-mail address of the form "usenet@<FQDN>"
or "news@<FQDN>" [RFC 2142] whereby the administrators of that or "news@<FQDN>" [RFC 2142] whereby the administrators of that
agent may be reached. agent may be reached.
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 then enable the DNS service) with an MX record which MUST then enable the
construction of a valid E-mail address of the form "usenet@<FQDN>" construction of a valid E-mail address of the form "usenet@<FQDN>"
or "news@<FQDN>" whereby the administrators of that agent may be or "news@<FQDN>" whereby the administrators of that agent may be
reached. reached.
3. A name registered previously in the UUCP maps database (found in 3. An arbitrary name believed to be unique and registered at least
the newsgroup comp.mail.maps), containing no '.' character. with all sites immediately downstream from the given site.
4. An encoding of an IP address - <dotted-quad> [RFC 820] or <ipv6- 4. An encoding of an IP address - <dotted-quad> [RFC 820] or <ipv6-
numeric> [RFC 2373] (the requirement to be able to use an <ipv6- numeric> [RFC 2373] (the requirement to be able to use an <ipv6-
numeric> is the reason for including ':' as an allowed character numeric> is the reason for including ':' as an allowed character
within a path-identity). within a path-identity).
5. A '.' followed by an arbitrary name not in the UUCP maps database,
but believed to be unique and registered at least with all sites
immediately downstream from the given site.
News Article Format April 2001
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 mailable address in the sense defined under option case, be an FQDN mailable address in the sense defined under option
1, or with an associated MX record as in option 2. 1, or with an associated MX record as in option 2.
The injecting agent's path-identity MUST be followed by the special The injecting agent's path-identity MUST be followed by the special
delimiter '%' which serves to separate the pre-injection and post- delimiter '%' which serves to separate the pre-injection and post-
injection regions of the Path-content (see 5.6.3). injection regions of the Path-content (see 5.6.3).
In the case of a relaying or serving agent, the delimiter is chosen In the case of a relaying or serving agent, the delimiter is chosen
as follows. When such an agent receives an article, it MUST 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 delimiter when prepending the agent's own path-identity. used as the delimiter when prepending the agent's own path-identity.
If it does not match then the agent should prepend two entries to the If it does not match then the agent should prepend two entries to the
Path-content; firstly the true established path-identity of the Path-content; firstly the true established path-identity of the
source followed by a '?' delimiter, and then, to the left of that, source followed by a '?' delimiter, and then, to the left of that,
the agent's own path-identity followed by a '/' delimiter as usual. the agent's own path-identity followed by a '/' delimiter as usual.
News Article Format July 2001
This prepending of two entries SHOULD NOT be done if the provided and This prepending of two entries SHOULD NOT be done if the provided and
established identities match. 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
(but see 5.6.5 below), with the consideration that, in the event of (but see 5.6.5 below), with the consideration that, in the event of
problems, the agent concerned may be called upon to justify it. problems, the agent concerned may be called upon to justify it.
NOTE: The use of the '%' delimiter marks the position of the NOTE: The use of the '%' delimiter marks the position of the
injecting agent in the chain. In normal circumstances there injecting agent in the chain. In normal circumstances there
should therefore be only one `%` delimiter present, and should therefore be only one `%` delimiter present, and
skipping to change at page 35, line 4 skipping to change at page 38, line 42
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 the Injector-Info header (6.19) is absent). machine (especially if the Injector-Info header (6.19) is absent).
Any such inclusion SHOULD NOT conflict with any genuine site Any such inclusion SHOULD NOT conflict with any genuine site
identifier. The '!' delimiter may be used freely within the pre- identifier. The '!' delimiter may be used freely within the pre-
News Article Format April 2001
injection region, although '/' and '?' are also appropriate if used injection region, although '/' and '?' are also appropriate if used
correctly. correctly.
5.6.4. Delimiter Summary 5.6.4. Delimiter Summary
A summary of the various delimiters. The name immediately to the left A summary of the various delimiters. The name immediately to the left
of the delimiter is always that of the machine which added the of the delimiter is always that of the machine which added the
delimiter. 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 July 2001
'%' 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). double-injection (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.
skipping to change at page 36, line 5 skipping to change at page 39, line 42
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. Suggested Verification Methods 5.6.5. Suggested Verification Methods
The following approaches for common transports are suggested in order The following approaches for common transports are suggested in order
to meet a site's verification obligations. They are not required, but to meet a site's verification obligations. They are not required, but
following them should avoid the necessity for wasteful double-entry following them should avoid the necessity for wasteful double-entry
Path additions. Path additions.
News Article Format April 2001
If the incoming article arrives through some TCP/IP protocol such as If the incoming article arrives through some TCP/IP protocol such as
NNTP, the IP address of the source will be known, and will likely NNTP, the IP address of the source will be known, and will likely
already have been checked against a list of known FQDNs or IP already have been checked against a list of known FQDNs or IP
addresses that the receiving site has agreed to peer with (this will addresses that the receiving site has agreed to peer with (this will
have involved a DNS lookup of a known FQDN, following CNAME chains as have involved a DNS lookup of a known FQDN, following CNAME chains as
required, to find an A record containing that source IP). required, to find an A record containing that source IP).
1. Where the path-identity is an FQDN (or even an arbitrary name 1. Where the path-identity is an FQDN (or even an arbitrary name
starting with a '.') it is now a simple matter to check that it is starting with a '.') it is now a simple matter to check that it is
the proper FQDN for the source, or some known registered alias the proper FQDN for the source, or some known registered alias
thereof. Alternatively, where the FQDN in the path-identity has an thereof. Alternatively, where the FQDN in the path-identity has an
associated A record, an immediate DNS lookup as above can be used associated A record, an immediate DNS lookup as above can be used
to verify it. to verify it.
2. Where the path-identity is an encoding of an IP address which does 2. Where the path-identity is an encoding of an IP address which does
not immediately match the known IP address of the source, a not immediately match the known IP address of the source, a
reverse-DNS (in-addr.arpa PTR record) lookup may be done on the reverse-DNS (in-addr.arpa PTR record) lookup may be done on the
provided address, followed by a regular DNS "A" record lookup on provided address, followed by a regular DNS "A" record lookup on
the returned name. There may be A records for several IP the returned name. There may be A records for several IP
News Article Format July 2001
addresses, of which one should match the path-identity and another addresses, of which one should match the path-identity and another
should match the source. should match the source.
3. If the path-identity fails to match any known alias for the source 3. If the path-identity fails to match any known alias for the source
(requiring the insertion of an extra path-identity for the true (requiring the insertion of an extra path-identity for the true
source followed by a '?'), simply doing a reverse DNS (PTR) lookup source followed by a '?'), simply doing a reverse DNS (PTR) lookup
on the source IP address is not sufficient to generate the true on the source IP address is not sufficient to generate the true
FQDN. The returned name must be mapped back to A records to assure FQDN. The returned name must be mapped back to A records to assure
it matches the source's IP address. it matches the source's IP address.
skipping to change at page 36, line 49 skipping to change at page 40, line 29
a unique login name and password, and that login name (or some alias a unique login name and password, and that login name (or some alias
registered for it) would be expected as the path-identity. registered for it) would be expected as the path-identity.
[The above description may still contain more detail that we would wish. [The above description may still contain more detail that we would wish.
My aim so far was to retain everything in Brad's original, but expressed My aim so far was to retain everything in Brad's original, but expressed
in a more palatable manner. We can now decide how much of it we want to in a more palatable manner. We can now decide how much of it we want to
keep.] keep.]
5.6.6. Example 5.6.6. 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
usenet@baz.isp.example). The injector has taken care to record usenet@baz.isp.example). The injector has taken care to record
that it got it from dialup123.baz.isp.example. "x" is the that it got it from dialup123.baz.isp.example. "x" is the
default tail entry, though sometimes a real userid is put there. default tail entry, though sometimes a real userid is put there.
News Article Format April 2001 The article was relayed, perhaps by UUCP, to the machine known,
at least to its downstream, as "barbaz".
The article was relayed, perhaps by UUCP, to the machine known
in the UUCP maps database 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 '!' delimiter). So one conform to this standard (hence the '!' 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 '/' delimiter) address [10.123.12.2], and claiming (by using the '/' delimiter)
to have verified that it came from old.site.example. 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
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 (observe the News Article Format July 2001
presence of the '.') within the complex site of many machines
run by foo.isp.example, so the latter should have no problem "foo-server" is a locally significant name within the complex
recognizing .foo-server and using a '/' delimiter. Presumably site of many machines run by foo.isp.example, so the latter
foo.isp.example then delivered the article to its direct should have no problem recognizing foo-server and using a '/'
clients. delimiter. Presumably foo.isp.example then delivered the
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.
6. Optional Headers 6. Optional Headers
The headers appearing in this section have established meanings and The headers appearing in this section have established meanings and
MUST be interpreted according to the definitions given here. None of MUST be interpreted according to the definitions given here. None of
them is required to appear in every article but some of them are them is required to appear in every article but some of them are
required in certain types of article, such as followups. Any header required in certain types of article, such as followups. Any header
defined in this (or any other) standard MUST NOT appear more than defined in this (or any other) standard MUST NOT appear more than
once in an article unless specifically stated otherwise. once in an article unless specifically stated otherwise.
Experimental headers (4.2.2.1) and headers defined by cooperating Experimental headers (4.2.2.1) and headers defined by cooperating
subnets are exempt from this requirement. See section 8 "Duties of subnets are exempt from this requirement. See section 8 "Duties of
Various Agents" for the full picture. Various Agents" for the full picture.
6.1. Reply-To 6.1. Reply-To
The Reply-To header specifies a reply address(es) to be used for The Reply-To header specifies a reply address(es) to be used for
personal replies for the author(s) of the article when this is personal replies for the poster(s) of the article when this is
different from the author's address(es) given in the From header. The different from the poster's address(es) given in the From header. The
content syntax makes use of syntax defined in [MESSFOR], but subject content syntax makes use of syntax defined in [RFC 2822], but subject
to the revised definition of local-part given in section 5.2. to the revised definition of local-part given in section 5.2.
Reply-To-content = From-content ; see 5.2 Reply-To-content = From-content ; see 5.2
News Article Format April 2001
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. For this reason a Reply-To SHOULD NOT be included in the From header. For this reason a Reply-To SHOULD NOT be included
if it just duplicates the From header. if it just duplicates the From header.
NOTE: Use of a Reply-To header is preferable to including a NOTE: Use of a Reply-To header is preferable to including a
similar request in the article body, because reply agents can similar request in the article body, because reply agents can
take account of Reply-To automatically. take account of Reply-To automatically.
An address of "<>" in the Reply-To header MAY be used to indicate An address of "<>" in the Reply-To header MAY be used to indicate
that the poster does not wish to recieve email replies. that the poster does not wish to recieve email replies.
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
Reply-To: Please do not reply <> Reply-To: Please do not reply <>
News Article Format July 2001
6.2. Sender 6.2. Sender
The Sender header specifies the mailbox of the entity which actually The Sender header specifies the mailbox of the entity which actually
sent this article, if that entity is different from that given in the sent this article, if that entity is different from that given in the
From header or if more than one address appears in the From header. From header or if more than one address appears in the From header.
This header SHOULD NOT appear in an article unless the sender is This header SHOULD NOT appear in an article unless the sender is
different from the author. This header is appropriate for use by different from the poster. This header is appropriate for use by
automatic article posters. The content syntax makes use of syntax automatic article posters. The content syntax makes use of syntax
defined in [MESSFOR]. defined in [RFC 2822].
Sender-content = mailbox Sender-content = mailbox
6.3. Organization 6.3. Organization
The Organization header is a short phrase identifying the author's The Organization header is a short phrase identifying the poster's
organization. organization.
Organization-content= 1*( [FWS] utext ) Organization-content= 1*( [FWS] utext )
NOTE: Posting and injecting agents are discouraged from NOTE: Posting and injecting agents are discouraged from
providing a default value for this header unless it is providing a default value for this header unless it is
acceptable to all posters using those agents. Unless this header acceptable to all posters using those agents. Unless this header
contains useful information (including some indication of the contains useful information (including some indication of the
authors physical location) posters are discouraged from posters physical location) posters are discouraged from
including it. including it.
6.4. Keywords 6.4. Keywords
The Keywords field contains a comma separated list of important words The Keywords field contains a comma separated list of important words
and phrases intended to describe some aspect of the content of the and phrases intended to describe some aspect of the content of the
article. The content syntax makes use of syntax defined in [MESSFOR]. article. The content syntax makes use of syntax defined in [RFC
2822].
Keywords-content = phrase *( "," phrase ) Keywords-content = phrase *( "," phrase )
News Article Format April 2001
NOTE: The list is comma separated NOT space separated. NOTE: The list is comma separated NOT space separated.
6.5. Summary 6.5. Summary
The Summary header is a short phrase summarizing the article's The Summary header is a short phrase summarizing the article's
content. content.
Summary-content = 1*( [FWS] utext ) Summary-content = 1*( [FWS] utext )
The summary should be terse. Authors Ought to avoid trying to cram The summary should be terse. Authors Ought to avoid trying to cram
their entire article into the headers; even the simplest query their entire article into the headers; even the simplest query
usually benefits from a sentence or two of elaboration and context, usually benefits from a sentence or two of elaboration and context,
and not all reading agents display all headers. On the other hand the and not all reading agents display all headers. On the other hand the
summary should give more detail than the Subject. summary should give more detail than the Subject.
News Article Format July 2001
6.6. Distribution 6.6. Distribution
The Distribution header is an inheritable header (see 4.2.2.2) which The Distribution header is an inheritable header (see 4.2.2.2) which
specifies geographical or organizational limits to an article's specifies geographical or organizational limits to an article's
propagation. propagation.
Distribution-content= distribution *( dist-delim distribution ) Distribution-content= distribution *( dist-delim distribution )
dist-delim = "," dist-delim = ","
distribution = positive-distribution / distribution = positive-distribution /
negative-distribution negative-distribution
positive-distribution positive-distribution
= *FWS distribution-name *FWS = *FWS distribution-name *FWS
negative-distribution negative-distribution
= *FWS "!" distribution-name *FWS = *FWS "!" distribution-name *FWS
distribution-name = letter 1*distribution-rest distribution-name = ALPHA 1*distribution-rest
distribution-rest = letter / "+" / "-" / "_" distribution-rest = ALPHA / "+" / "-" / "_"
NOTE: The use of ALPHA in the syntax ensures that distribution
names are always in US-ASCII.
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 BOTH of receiving agent to receive BOTH of
(a) at least one of the newsgroups in the article's Newsgroups (a) at least one of the newsgroups in the article's Newsgroups
header, and header, and
(b) at least one of the positive-distributions (if any) in the (b) at least one of the positive-distributions (if any) in the
article's Distribution header and none of the negative- article's Distribution header and none of the negative-
distributions. distributions.
Additionally, reading agents MAY be configured so that unwanted Additionally, reading agents MAY be configured so that unwanted
skipping to change at page 40, line 4 skipping to change at page 43, line 49
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
have been reluctant, historically speaking, to apply such have been reluctant, historically speaking, to apply such
filters (except to ensure that distributions local to their own filters (except to ensure that distributions local to their own
site or cooperating subnet did not escape); moreover they tended site or cooperating subnet did not escape); moreover they tended
to configure their filters on an "all but those listed" basis, to configure their filters on an "all but those listed" basis,
so that new and hitherto unheard of distributions would not be so that new and hitherto unheard of distributions would not be
caught. Indeed many "hub" sites actually wanted to receive all caught. Indeed many "hub" sites actually wanted to receive all
possible distributions so that they could feed on to their possible distributions so that they could feed on to their
clients in all possible geographical (or organizational) clients in all possible geographical (or organizational)
News Article Format April 2001
regions. regions.
Therefore, it is desirable to provide facilities for rejecting Therefore, it is desirable to provide facilities for rejecting
unwanted distributions at the receiving end. Indeed, it may be unwanted distributions at the receiving end. Indeed, it may be
simpler to do so locally than to inform each sending site of simpler to do so locally than to inform each sending site of
what is required, especially in the case of specialized what is required, especially in the case of specialized
distributions (for example for control messages, such as cancels distributions (for example for control messages, such as cancels
from certain issuers) which might need to be added at short from certain issuers) which might need to be added at short
notice. Tha possibility for reading agents to filter notice. Tha possibility for reading agents to filter
distributions has been provided for the same reason. distributions has been provided for the same reason.
News Article Format July 2001
Exceptionally, ALL relaying agents are deemed willing to supply or Exceptionally, ALL relaying agents are deemed willing to supply or
accept the distribution "world", and NO relaying agent should supply accept the distribution "world", and NO relaying agent should supply
or accept the distribution "local". However, "world" SHOULD NEVER be or accept the distribution "local". However, "world" SHOULD NEVER be
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).
skipping to change at page 40, line 50 skipping to change at page 44, line 40
Followup-To-content = Newsgroups-content / "poster" Followup-To-content = Newsgroups-content / "poster"
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
exception that the magic word "poster" is allowed. In the absence of exception that the magic word "poster" is allowed. In the absence of
a Followup-To header, the default newsgroup(s) for a followup are a Followup-To header, the default newsgroup(s) for a followup are
those in the Newsgroups header, and for this reason the Followup-To those in the Newsgroups header, and for this reason the Followup-To
header SHOULD NOT be included if it just duplicates the Newsgroups header SHOULD NOT be included if it just duplicates the Newsgroups
header. header.
A Followup-To header consisting of the magic word "poster" indicates A Followup-To header consisting of the magic word "poster" indicates
that the author 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.
NOTE: An author who wishes both a personal reply and a followup NOTE: A poster who wishes both a personal reply and a followup
post should include a Mail-Copies-To header (6.8). post should include a Mail-Copies-To header (6.8).
News Article Format April 2001
6.8. Mail-Copies-To 6.8. Mail-Copies-To
The Mail-Copies-To header indicates whether or not the poster wishes The Mail-Copies-To header indicates whether or not the poster wishes
to have followups to an article emailed in addition to being posted to have followups to an article emailed in addition to being posted
to Netnews and, if so, establishes the address to which they should to Netnews and, if so, establishes the address to which they should
be sent. be sent.
The content syntax makes use of syntax defined in [MESSFOR], but The content syntax makes use of syntax defined in [RFC 2822], but
subject to the revised definition of local-part given in section 5.2. subject to the revised definition of local-part given in section 5.2.
Mail-Copies-To-content = copy-addr / "nobody" / "poster" Mail-Copies-To-content = copy-addr / "nobody" / "poster"
copy-addr = mailbox copy-addr = mailbox
News Article Format July 2001
The keyword "nobody" indicates that the author does not wish copies The keyword "nobody" indicates that the poster does not wish copies
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 author 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 author 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.
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. deprecated, but followup agents MAY observe them.
The automatic actions of a followup agent in the various cases The automatic actions of a followup agent in the various cases
(subject to manual override by the user) are as follows: (subject to manual override by the user) are as follows:
nobody (or when the header is absent) nobody (or when the header is absent)
skipping to change at page 41, line 54 skipping to change at page 45, line 40
The followup agent Ought, by default, to email a copy, which MUST The followup agent Ought, by default, to email a copy, which MUST
then be sent to the address in the Reply-To header, and in the then be sent to the address in the Reply-To header, and in the
absence of that to the address(es) in the From header. absence of that to the address(es) in the From header.
copy-addr copy-addr
The followup agent Ought, by default, to email a copy, which MUST The followup agent Ought, by default, to email a copy, which MUST
then be sent to the copy-addr. then be sent to the copy-addr.
NOTE: This header is only relevant when posting followups to NOTE: This header is only relevant when posting followups to
Netnews articles, and is to be ignored when sending pure email Netnews articles, and is to be ignored when sending pure email
replies to the author, which are handled as prescribed under the replies to the poster, which are handled as prescribed under the
Reply-To header (6.1). Whether or not this header will also Reply-To header (6.1). Whether or not this header will also
find similar usage for replies to messages sent to mailing lists find similar usage for replies to messages sent to mailing lists
falls outside the scope of this standard. falls outside the scope of this standard.
News Article Format April 2001
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).
NOTE: In addition to the Posted-And-Mailed header, some followup NOTE: In addition to the Posted-And-Mailed header, some followup
agents also include within the body a mention that the article agents also include within the body a mention that the article
is both posted and mailed, for the benefit of reading agents is both posted and mailed, for the benefit of reading agents
that do not normally show that header. that do not normally show that header.
6.9. Posted-And-Mailed 6.9. Posted-And-Mailed
Posted-And-Mailed-content = "yes" / "no" Posted-And-Mailed-content = "yes" / "no"
This header, when used with the "yes" keyword, indicates that the This header, when used with the "yes" keyword, indicates that the
article has been both posted to the specified newgroups and emailed. article has been both posted to the specified newsgroups and emailed.
It SHOULD be used when replying to the author of an article to which It SHOULD be used when replying to the poster of an article to which
News Article Format July 2001
this one is a followup (see the Mail-Copies-To header in section 6.8) this one is a followup (see the Mail-Copies-To header in section 6.8)
and it MAY be used when any article is also mailed to a recipient(s) and it MAY be used when any article is also mailed to a recipient(s)
identified in a To and/or Cc header that is also present. The "no" identified in a To and/or Cc header that is also present. The "no"
keyword is included for the sake of completeness; it MAY be used to keyword is included for the sake of completeness; it MAY be used to
indicate the opposite state, but is redundant insofar as it only indicate the opposite state, but is redundant insofar as it only
describes the default state when this header is absent. describes the default state when this header is absent.
This header, if present, MUST be included in both the posted and This header, if present, MUST be included in both the posted and
emailed versions of the article. The Newsgroups header of the posted emailed versions of the article. The Newsgroups header of the posted
article SHOULD be included in the email version as recommended in article SHOULD be included in the email version as recommended in
section 5.5. All other headers defined in this standard (excluding section 5.5. All other headers defined in this standard (excluding
variant and local headers, but including specifically the Message-ID variant headers, but including specifically the Message-ID header)
header) MUST be identical in both the posted and mailed versions of MUST be identical in both the posted and mailed versions of the
the article, and so MUST the body. article, and so MUST the body.
NOTE: This leaves open the question of whether a To or a Cc NOTE: This leaves open the question of whether a To or a Cc
header should appear in the posted version. Naturally, a Bcc header should appear in the posted version. Naturally, a Bcc
header should not appear, except in a form which indicates that header should not appear, except in a form which indicates that
there are additional unspecified recipients. there are additional unspecified recipients.
6.10. References 6.10. References
The References header lists optionally CFWS-separated message The References header lists optionally CFWS-separated message
identifiers of precursors. The content syntax makes use of syntax identifiers of precursors. The content syntax makes use of syntax
defined in [MESSFOR]. defined in [RFC 2822].
References-content = msg-id *( CFWS msg-id ) References-content = msg-id *( CFWS msg-id )
NOTE: This differs from the syntax of [MESSFOR] by requiring at NOTE: This differs from the syntax of [RFC 2822] by requiring at
least one CFWS between the msg-ids (this was an [RFC 1036] least one CFWS between the msg-ids (this was an [RFC 1036]
requirement). 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. In a followup, if the a followup MUST NOT have a References header. In a followup, if the
precursor did not have a References header, the followup's precursor did not have a References header, the followup's
References-content MUST be formed by the message identifier of the References-content MUST be formed by the message identifier of the
precursor. A followup to an article which had a References header precursor. A followup to an article which had a References header
MUST have a References header containing the precursor's References- MUST have a References header containing the precursor's References-
content (subject to trimming as described below) plus the precursor's content (subject to trimming as described below) plus the precursor's
News Article Format April 2001
message identifier appended to the end of the list (separated from it message identifier appended to the end of the list (separated from it
by CFWS). by CFWS).
Followup agents SHOULD NOT trim message identifiers out of a Followup agents SHOULD NOT trim message identifiers out of a
References header unless the number of message identifiers exceeds References header unless the number of message identifiers exceeds
21, at which time trimming SHOULD be done by removing sufficient 21, at which time trimming SHOULD be done by removing sufficient
identifiers starting with the second so as to bring the total down to identifiers starting with the second so as to bring the total down to
21. However, it would be wrong to assume that References headers 21. However, it would be wrong to assume that References headers
containing more than 21 message identifiers will not occur. containing more than 21 message identifiers will not occur.
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>
News Article Format July 2001
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>
6.11. Expires 6.11. Expires
The Expires header specifies a date and time when the article is The Expires header specifies a date and time when the article is
deemed to be no longer relevant and could usefully be removed deemed to be no longer relevant and could usefully be removed
("expired"). The content syntax makes use of syntax defined in ("expired"). The content syntax makes use of syntax defined in [RFC
[MESSFOR]. 2822].
Expires-content = date-time Expires-content = date-time
An Expires header should only be used in an article if the requested An Expires header should only be used in an article if the requested
expiry time is earlier or later than the time typically to be expiry time is earlier or later than the time typically to be
expected for such articles. Local policy for each serving agent will expected for such articles. Local policy for each serving agent will
dictate whether and when this header is obeyed and authors SHOULD NOT dictate whether and when this header is obeyed and posters SHOULD NOT
depend on it being completely followed. depend on it being completely followed.
6.12. Archive 6.12. Archive
This optional header is a signal to automatic archival agents on This optional header provides an indication of the poster's intent
whether this article is available for long-term storage. regarding preservation of the article in publicly accessible long-
term or permanent storage.
Archive-content = [CFWS] ("no" | "yes" ) [CFWS] Archive-content = [CFWS] ("no" | "yes" ) [CFWS]
Archive-header-parameter Archive-header-parameter
= Filename-token "=" value = Filename-token "=" value
; for USENET-header-parameters see 4.1 ; for USENET-header-parameters see 4.1
Filename-token = [CFWS] "filename" [CFWS] Filename-token = [CFWS] "filename" [CFWS]
Agents which see "Archive: no" MUST NOT keep the article past the The presence of an "Archive: no" header in an article indicates that
date when it would otherwise have expired. "Archive: yes" merely the poster does not permit redistribution from publicly accessible
confirms what is already the default state. The optional Filename long-term or permanent archives. The absence of this header, or an
parameter MAY then be used to suggest a filename under which the explicit "Archive: yes", indicates that the poster is willing for
article should be archived. Further extensions to this standard may such redistribution to take place. The optional Filename parameter
provide additional parameters for administration of the archiving can then be used to suggest a filename under which the article should
process. be stored. Further extensions to this standard may provide additional
parameters for administration of the archiving process.
News Article Format April 2001 NOTE: This standard does not attempt to define the length of
"long-term", since it is dependent on many factors, including
the retention policies of individual sites, and the customs or
policies established for particular newsgroup or hierarchies.
NOTE: Posters are cautioned that some sites may not implement
the "no" option of the Archive header correctly. In some
jurisdictions non-compliance with this header may constitute a
breach of copyright or of other legal provisions. Moreover,
even if this header prevents the poster's words from being
archived publicly, it does nothing to prevent the archiving of a
followup in which those words are quoted.
News Article Format July 2001
6.13. Control 6.13. Control
The Control header marks the article as a control message, and The Control header marks the article as a control message, and
specifies the desired actions (other than the usual ones of storing specifies the desired actions (other than the usual ones of storing
and/or relaying the article). and/or relaying the article).
Control-content = CONTROL-verb CONTROL-argument Control-content = CONTROL-verb CONTROL-argument
CONTROL-verb = <the verb defined in this standard CONTROL-verb = <the verb defined in this standard
(or an extension of it) for a specific (or an extension of it) for a specific
CONTROL message> CONTROL message>
verb = token verb = token
CONTROL-arguments = <the argument defined in this standard CONTROL-arguments = <the argument defined in this standard
(or an extension of it) for a specific (or an extension of it) for a specific
CONTROL message> CONTROL message>
arguments = *( CFWS value ) ; see 4.1 arguments = *( CFWS value ) ; see 4.1
[Observe that <value> reqires the use of a quoted-string if any [Observe that <value> reqires the use of a quoted-string if any
tspecials or NON-ASCII characters are involved. This is a restriction on tspecials or non-ASCII characters are involved. This is a restriction on
present usage, but follows Mime practice.] present usage, but follows MIME practice.]
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. Section 7 describes all of the standard verbs. also contain details. Section 7 describes all of the standard verbs.
An article with a Control header MUST NOT also have a Replaces or An article with a Control header MUST NOT also have a Replaces or
Supersedes header. Supersedes 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-content MUST NOT be construed, "cmsg " and followed by a Control-content MUST NOT be construed,
skipping to change at page 45, line 5 skipping to change at page 49, line 5
a TOSSable offence to put a dummy or invalid address in here. Later, a TOSSable offence to put a dummy or invalid address in here. Later,
when we have some form of authentication, I would hope to be able to say when we have some form of authentication, I would hope to be able to say
more.] more.]
An Approved header is required in all postings to moderated An Approved header is required in all postings to moderated
newsgroups. If this header is not present in such postings, then newsgroups. If this header is not present in such postings, then
relaying and serving agents MUST reject the article. Please see relaying and serving agents MUST reject the article. Please see
section 8.2.2 for how injecting agents should treat postings to section 8.2.2 for how injecting agents should treat postings to
moderated groups that do not contain this header. moderated groups that do not contain this header.
News Article Format April 2001 News Article Format July 2001
An Approved header is also required in certain control messages, to An Approved header is also required in certain control messages, to
reduce the risk of accidental posting of same; see the relevant parts reduce the risk of accidental posting of same; see the relevant parts
of section 7. of section 7.
6.15. Replaces / Supersedes 6.15. Replaces / Supersedes
These two headers contain one or more message identifiers that the These two headers contain one or more message identifiers that the
current article is expected to replace or supersede. All listed current article is expected to replace or supersede. All listed
articles MUST be treated as though a "cancel" control message had articles MUST be treated as though a "cancel" control message had
arrived for the article (but observe that a site MAY choose not to arrived for the article (but observe that a site MAY choose not to
honour a "cancel" message, especially if its authenticity is in honour a "cancel" message, especially if its authenticity is in
doubt). doubt).
6.15.1. Syntax and Semantics 6.15.1. Syntax and Semantics
The Replaces and Supersedes headers specify articles to be cancelled The Replaces and Supersedes headers specify articles to be cancelled
on arrival of this one. The content syntax makes use of syntax on arrival of this one. The content syntax makes use of syntax
defined in [MESSFOR]. defined in [RFC 2822].
Replaces-content = msg-id *( CFWS msg-id ) Replaces-content = msg-id *( CFWS msg-id )
Replaces-header-parameter Replaces-header-parameter
= Disposition-token "=" [CFWS] = Disposition-token "=" [CFWS]
( Disposition-value / ( Disposition-value /
DQUOTE Disposition-value DQUOTE ) DQUOTE Disposition-value DQUOTE )
[CFWS] [CFWS]
; for USENET-header-parameters see 4.1 ; for USENET-header-parameters see 4.1
Disposition-token = [CFWS] "disposition" [CFWS] Disposition-token = [CFWS] "disposition" [CFWS]
Disposition-value = "replace" / "revise" / "repost" Disposition-value = "replace" / "revise" / "repost"
skipping to change at page 46, line 4 skipping to change at page 50, line 4
Moreover, if a Disposition-value is "revise" or "repost", serving Moreover, if a Disposition-value is "revise" or "repost", serving
agents that generate a local Xref header MUST then include additional agents that generate a local Xref header MUST then include additional
"revise" or "repost" information as set out in section 6.16. "revise" or "repost" information as set out in section 6.16.
NOTE: A replacement with "disposition=replace" is intended to be NOTE: A replacement with "disposition=replace" is intended to be
used in the case of an article that is sufficiently different used in the case of an article that is sufficiently different
from its predecessors that it is advisable for readers to see it from its predecessors that it is advisable for readers to see it
again. A replacement with "disposition=revise" is intended to again. A replacement with "disposition=revise" is intended to
be used in the case of a minor change, unworthy of being brought be used in the case of a minor change, unworthy of being brought
News Article Format April 2001 News Article Format July 2001
to the attention of a reader who has already read one of its to the attention of a reader who has already read one of its
predecessors. A replacement with "disposition=repost" is predecessors. A replacement with "disposition=repost" is
intended to be used in the case of an article identical to the intended to be used in the case of an article identical to the
one replaced (but possibly being reposted because the earlier one replaced (but possibly being reposted because the earlier
one had likely expired). one had likely expired).
NOTE: A reader who elects to ignore all the articles available NOTE: A reader who elects to ignore all the articles available
in a newsgroup (perhaps on the occasion of accessing that in a newsgroup (perhaps on the occasion of accessing that
newsgroup for the first time) will likely have them all marked newsgroup for the first time) will likely have them all marked
skipping to change at page 47, line 4 skipping to change at page 51, line 4
6.15.2. Message-ID version procedure 6.15.2. Message-ID version procedure
Whilst this procedure is not essential for the operation of Netnews, Whilst this procedure is not essential for the operation of Netnews,
it SHOULD be supported by all serving agents. However, for the it SHOULD be supported by all serving agents. However, for the
procedure to work, all the msg-ids in the Replaces-content MUST be procedure to work, all the msg-ids in the Replaces-content MUST be
those of successive replacements of the same original article, and those of successive replacements of the same original article, and
all be generated as described below. all be generated as described below.
[Whilst the procedure about to be described will undoubtedly work, it [Whilst the procedure about to be described will undoubtedly work, it
must be pointed out that life would be much simpler if there was only a must be pointed out that life would be much simpler if there was only a
single msg-id allowed in a Replaces-content.] single msg-id allowed in a Replaces-content.]
News Article Format April 2001 News Article Format July 2001
6.15.2.1. Message version numbers 6.15.2.1. Message version numbers
According to [MESSFOR], and omitting the obsolete forms, the syntax According to [MESSFOR], and omitting the obsolete forms, the syntax
of the left hand side of a msg-id (the part before the "@") is given of the left hand side of a msg-id (the part before the "@") is given
by: by:
id-left-side = dot-atom-text / no-fold-quote id-left-side = dot-atom-text / no-fold-quote
Consider this to be replaced by: Consider this to be replaced by:
skipping to change at page 48, line 5 skipping to change at page 52, line 5
2. If the id-left-side of the predecessor's message identifier does 2. If the id-left-side of the predecessor's message identifier does
not contain a version-number, the replacement message identifier not contain a version-number, the replacement message identifier
should be obtained by appending the string "$v=1", preferably should be obtained by appending the string "$v=1", preferably
followed by a random-dollars-sequence(s), to that id-left-side. followed by a random-dollars-sequence(s), to that id-left-side.
For example <foo@faq-site.example> becomes <foo$v=1$ABC@faq- For example <foo@faq-site.example> becomes <foo$v=1$ABC@faq-
site.example>. site.example>.
Any random-dollars-sequence so added MUST NOT start with "$<l>=" for Any random-dollars-sequence so added MUST NOT start with "$<l>=" for
any letter <l>. any letter <l>.
News Article Format April 2001 News Article Format July 2001
NOTE: The presence of a random-dollars-sequence following the NOTE: The presence of a random-dollars-sequence following the
version-number is intended to prevent a malicious poster from version-number is intended to prevent a malicious poster from
preempting the posting of a replacement article by guessing its preempting the posting of a replacement article by guessing its
likely message identifier. likely message identifier.
Attempts to fetch a replaced (or superseded) article by its message Attempts to fetch a replaced (or superseded) article by its message
identifier SHOULD retrieve instead its most recent successor which identifier SHOULD retrieve instead its most recent successor which
has used the version-number convention. This is intended to ensure has used the version-number convention. This is intended to ensure
that "news:" URLs [RFC-1738] will continue to work even when an that "news:" URLs [RFC 1738] will continue to work even when an
article has been replaced, but agents Ought then to draw the user's article has been replaced, but agents Ought then to draw the user's
attention to the fact that the message identifier retrieved differed attention to the fact that the message identifier retrieved differed
from that requested. from that requested.
6.15.2.2. Implementation and Use Note 6.15.2.2. Implementation and Use Note
[Here is the implementation technique that we discussed, based on the [Here is the implementation technique that we discussed, based on the
use of a conventional History file. This is a sanity check for our own use of a conventional History file. This is a sanity check for our own
use, not intended to go in the final text. There are two cases to use, not intended to go in the final text. There are two cases to
consider: consider:
skipping to change at page 49, line 5 skipping to change at page 53, line 5
ever be seen except by programs that access the History file directly, ever be seen except by programs that access the History file directly,
rather than by its index. rather than by its index.
3A. When an article is Replaced, at the same time as the successor 3A. When an article is Replaced, at the same time as the successor
article is entered into the History file, with '$v=7' say, a duplicate article is entered into the History file, with '$v=7' say, a duplicate
entry (same article list) is entered under the same key, modified by entry (same article list) is entered under the same key, modified by
removing any leftmost '$v=n' and the following random-dollars-sequences removing any leftmost '$v=n' and the following random-dollars-sequences
from it. from it.
For the fixed length implementations, these steps become: For the fixed length implementations, these steps become:
News Article Format April 2001 News Article Format July 2001
1B. DBZ does not need to be changed. 1B. DBZ does not need to be changed.
2B. History file entries may be updated in situ. An entry for a Replaced 2B. History file entries may be updated in situ. An entry for a Replaced
(or otherwise cancelled) article can be overwritten with that for the (or otherwise cancelled) article can be overwritten with that for the
new article (or with a suitable indication of cancellation). For every new article (or with a suitable indication of cancellation). For every
entry containing a '$v=n' followed by random-dollars-sequences there entry containing a '$v=n' followed by random-dollars-sequences there
will always exist a second entry identical but for the omission of that will always exist a second entry identical but for the omission of that
'$v=n' and of the random-dollars-sequences, both entries pointing to the '$v=n' and of the random-dollars-sequences, both entries pointing to the
same article object. same article object.
3B. When an article is Replaced, at the same time as the successor 3B. When an article is Replaced, at the same time as the successor
skipping to change at page 50, line 4 skipping to change at page 54, line 4
Typically, a news database will index a Replacement article both by Typically, a news database will index a Replacement article both by
its "version-number" message identifier (containing a "$v=" tag its "version-number" message identifier (containing a "$v=" tag
followed by a random-dollars-sequence) and by its "root" version followed by a random-dollars-sequence) and by its "root" version
(without the "$v=" tag or any following random-dollars-sequence). (without the "$v=" tag or any following random-dollars-sequence).
Thus when a request for an article comes in that is not present under Thus when a request for an article comes in that is not present under
the version-number requested, any article that is present and indexed the version-number requested, any article that is present and indexed
by the corresponding root version can be retrieved instead. The by the corresponding root version can be retrieved instead. The
indexing mechanism needs to be such that, although the root version indexing mechanism needs to be such that, although the root version
may have at times referred to many different articles, it is always may have at times referred to many different articles, it is always
News Article Format April 2001 News Article Format July 2001
the current one that is retrieved. the current one that is retrieved.
NOTE: The presence of a version-number in the message identifier NOTE: The presence of a version-number in the message identifier
of an article without a Replaces or Supersedes header causes no of an article without a Replaces or Supersedes header causes no
extra action (it is just an ordinary article). Observe also that extra action (it is just an ordinary article). Observe also that
if an article with the exact message identifier (even though it if an article with the exact message identifier (even though it
contains a version-number) is, for whatever reason, already contains a version-number) is, for whatever reason, already
present on the serving agent, that article will always be present on the serving agent, that article will always be
retrieved in preference to the one indexed by any root version. retrieved in preference to the one indexed by any root version.
skipping to change at page 51, line 4 skipping to change at page 55, line 4
6.15.2.4. Examples 6.15.2.4. Examples
Example 1. The first edition of a FAQ is posted with a message Example 1. The first edition of a FAQ is posted with a message
identifier of the form: <examplegroup-faq@faq-site.example>. The identifier of the form: <examplegroup-faq@faq-site.example>. The
next (but identical) version, a month later, has: next (but identical) version, a month later, has:
Message-ID: <examplegroup-faq$v=1$A1b@faq-site.example> Message-ID: <examplegroup-faq$v=1$A1b@faq-site.example>
Replaces: <examplegroup-faq@faq-site.example>; disposition=repost Replaces: <examplegroup-faq@faq-site.example>; disposition=repost
Supersedes: <examplegroup-faq@faq-site.example> Supersedes: <examplegroup-faq@faq-site.example>
News Article Format April 2001 News Article Format July 2001
Observe the inclusion of a Supersedes header as well, it being Observe the inclusion of a Supersedes header as well, it being
presumed that the Replaces header was not yet widely implemented at presumed that the Replaces header was not yet widely implemented at
that time. that time.
The next one, another month later (and with some significant changes The next one, another month later (and with some significant changes
justifying the use of "replace" rather than "repost") has: justifying the use of "replace" rather than "repost") has:
Message-ID: <examplegroup-faq$v=2$B2b@faq-site.example> Message-ID: <examplegroup-faq$v=2$B2b@faq-site.example>
Replaces: <examplegroup-faq$v=1$A1b@faq-site.example> Replaces: <examplegroup-faq$v=1$A1b@faq-site.example>
skipping to change at page 51, line 56 skipping to change at page 55, line 56
<myuniquepart@mysite.example>; disposition=revise <myuniquepart@mysite.example>; disposition=revise
The two bad versions will be replaced with the 3rd, even if a site The two bad versions will be replaced with the 3rd, even if a site
never sees the 2nd due to batching or feed problems (thus the use of never sees the 2nd due to batching or feed problems (thus the use of
two message identifiers is quite useful in this case, in two message identifiers is quite useful in this case, in
contradistinction to the first example). Requests for the original contradistinction to the first example). Requests for the original
will return the 3rd. will return the 3rd.
6.16. Xref 6.16. Xref
The Xref header is a local header (4.2.2.3) which indicates where an The Xref header is a variant header (4.2.2.3) which indicates where
article was filed by the last server to process it, and whether it is an article was filed by the last server to process it, and whether it
a Replacement (6.15) for an earlier article. is a Replacement (6.15) for an earlier article.
News Article Format April 2001 News Article Format July 2001
Xref-content = [CFWS] server-name 1*( CFWS location ) Xref-content = [CFWS] server-name 1*( CFWS location )
server-name = path-identity ; see 5.6.1 server-name = path-identity ; see 5.6.1
location = newsgroup-name ":" article-locator location = newsgroup-name ":" article-locator
[ CFWS ( "revise" / "repost" ) [ CFWS ( "revise" / "repost" )
":" article-locator ] ":" article-locator ]
article-locator = 1*( %x21-7E ) ; US-ASCII printable characters article-locator = 1*( %x21-7E ) ; US-ASCII printable characters
The server-name is included so that software can determine which The server-name is included so that software can determine which
serving agent generated the header. The locations specify what serving agent generated the header. The locations specify what
skipping to change at page 53, line 5 skipping to change at page 57, line 5
header to mention more than one earlier article, especially when header to mention more than one earlier article, especially when
replacements are being issued in quick succession. replacements are being issued in quick succession.
NOTE: "revise" and "repost" are case-insensitive. NOTE: "revise" and "repost" are case-insensitive.
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 (and usually replaced) relaying, but otherwise it SHOULD be ignored (and usually replaced)
by any relying or serving agent receiving it. by any relying or serving agent receiving it.
News Article Format April 2001 News Article Format July 2001
An agent MUST use the same serving-name in Xref headers as the path- An agent MUST use the same serving-name in Xref headers as the path-
identity it uses in Path headers. identity it uses in Path headers.
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.
Lines-content = [CFWS] 1*digit Lines-content = [CFWS] 1*digit
The line count includes all body lines, including the signature if The line count includes all body lines, including the signature if
any, including empty lines (if any) at the beginning or end of the any, including empty lines (if any) at the beginning or end of the
body, and including the whole of all Mime message and multipart parts body, and including the whole of all MIME message and multipart parts
contained in the body (the single empty separator line between the contained in the body (the single empty separator line between the
headers and the body is not part of the body). The "body" here is the headers and the body is not part of the body). The "body" here is the
body as found in the posted article as transmitted by the posting body as found in the posted article as transmitted by the posting
agent. agent.
This header is to be regarded as obsolete, and it will likely be This header is to be regarded as obsolete, and it will likely be
removed entirely in a future version of this standard. In the removed entirely in a future version of this standard. In the
meantime, its use is deprecated. meantime, its use is deprecated.
6.18. User-Agent 6.18. User-Agent
skipping to change at page 54, line 4 skipping to change at page 58, line 4
NOTE: Variations from [RFC 2616] which describes a similar NOTE: Variations from [RFC 2616] which describes a similar
facility for the HTTP protocol: facility for the HTTP protocol:
1. use of arbitrary text or octets from character sets other 1. use of arbitrary text or octets from character sets other
than US-ASCII in a product-token may require the use of a than US-ASCII in a product-token may require the use of a
quoted-string, quoted-string,
2. "{" and "}" are allowed in a value (product-token and 2. "{" and "}" are allowed in a value (product-token and
product-version) in Netnews, product-version) in Netnews,
News Article Format April 2001 News Article Format July 2001
3. UTF-8 replaces ISO-8859-1 as charset assumption. 3. UTF-8 replaces ISO-8859-1 as charset assumption.
NOTE: Comments should be restricted to information regarding the NOTE: Comments should be restricted to information regarding the
product named to their left such as platform information and product named to their left such as platform information and
should be concise. Use as an advertising medium (in the mundane should be concise. Use as an advertising medium (in the mundane
sense) is discouraged. sense) is discouraged.
6.18.1. Examples 6.18.1. Examples
skipping to change at page 54, line 59 skipping to change at page 59, line 4
posting-host-parameter posting-host-parameter
= [CFWS] "posting-host" [CFWS] "=" [CFWS] = [CFWS] "posting-host" [CFWS] "=" [CFWS]
( host-value / ( host-value /
DQUOTE host-value DQUOTE ) [CFWS] DQUOTE host-value DQUOTE ) [CFWS]
host-value = dot-atom / host-value = dot-atom /
[ dot-atom ":" ] [ dot-atom ":" ]
( dotted-quad / ; see [RFC 820] ( dotted-quad / ; see [RFC 820]
ipv6-numeric ) ; see [RFC 2373] ipv6-numeric ) ; see [RFC 2373]
posting-account-parameter posting-account-parameter
= [CFWS] "posting-account" [CFWS] "=" value = [CFWS] "posting-account" [CFWS] "=" value
posting-sender-parameter News Article Format July 2001
News Article Format April 2001
posting-sender-parameter
= [CFWS] "sender" [CFWS] "=" [CFWS] = [CFWS] "sender" [CFWS] "=" [CFWS]
( sender-value / ( sender-value /
DQUOTE sender-value DQUOTE ) [CFWS] DQUOTE sender-value DQUOTE ) [CFWS]
sender-value = ( mailbox / "verified" ) sender-value = ( mailbox / "verified" )
posting-logging-parameter posting-logging-parameter
= [CFWS] "logging-data" [CFWS] "=" value = [CFWS] "logging-data" [CFWS] "=" value
posting-date-parameter posting-date-parameter
= [CFWS] "posting-date" [CFWS] "=" [CFWS] = [CFWS] "posting-date" [CFWS] "=" [CFWS]
( date-value / ( date-value /
DQUOTE date-value DQUOTE ) [CFWS] DQUOTE date-value DQUOTE ) [CFWS]
skipping to change at page 56, line 5 skipping to change at page 60, line 5
USENET-header-parameters, any value containing an ipv6-numeric, USENET-header-parameters, any value containing an ipv6-numeric,
a date-time, a mailbox or any CFWS MUST be quoted using a date-time, a mailbox or any CFWS MUST be quoted using
<DQUOTE>s (the quoting is optional in other cases). <DQUOTE>s (the quoting 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",
"NNTP-Posting-Date" amd "X-Trace". Any of these headers present "NNTP-Posting-Date" amd "X-Trace". Any of these headers present
when an article arrives at an injecting agent SHOULD also be when an article arrives at an injecting agent SHOULD also be
removed as above. removed as above.
News Article Format April 2001 News Article Format July 2001
6.19.1. Usage of Injector-Info-header-parameters 6.19.1. Usage of Injector-Info-header-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. These assertions can then be utilized as follows: section 8.2. These assertions can then be utilized as follows:
1. To enable the administrator of the injecting agent to respond to 1. To enable the administrator of the injecting agent to respond to
complaints and queries concerning the article. For this purpose, complaints and queries concerning the article. For this purpose,
skipping to change at page 57, line 5 skipping to change at page 61, line 5
Alternatively, an IP address (dotted-quad or ipv6-numeric) identifies Alternatively, an IP address (dotted-quad or ipv6-numeric) 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
same host, or at least have done so at the time the article was same host, or at least have done so at the time the article was
injected. injected.
NOTE: It is commonly the case that this header identifies a NOTE: It is commonly the case that this header identifies a
dial-up point-of-presence, in which case a posting-account or dial-up point-of-presence, in which case a posting-account or
logging-data may need to be consulted to find the true origin of logging-data may need to be consulted to find the true origin of
the article. the article.
News Article Format April 2001 News Article Format July 2001
6.19.1.2. The posting-account-parameter 6.19.1.2. The posting-account-parameter
This parameter identifies the source from which the injecting agent This parameter identifies the source from which the injecting agent
received the article. It MAY be in a cryptic notation understandable received the article. It MAY be in a cryptic notation understandable
only by the administrator of the injecting agent, but it MUST be such only by the administrator of the injecting agent, but it MUST be such
that a given source always gives rise to the same posting-account (if that a given source always gives rise to the same posting-account (if
the injecting agent is unable to meet that obligation, then it should the injecting agent is unable to meet that obligation, then it should
use a posting-logging-parameter instead). use a posting-logging-parameter instead).
skipping to change at page 58, line 4 skipping to change at page 62, line 4
posting-date="965243133: Wed 2 Aug 2000 20:05:33 -0100 (BST)" posting-date="965243133: Wed 2 Aug 2000 20:05:33 -0100 (BST)"
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. poster of the article may be sent.
Complaints-To-content Complaints-To-content
= mailbox = mailbox
News Article Format April 2001 News Article Format July 2001
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 by any agent
other than an injecting agent. Any Complaints-To header present when other than an injecting agent. Any Complaints-To header present when
an article arrives at an injecting agent MUST be removed. In an article arrives at an injecting agent MUST be removed. In
particular if, for some exceptional reason (8.2.2), an article gets particular if, for some exceptional reason (8.2.2), an article gets
injected twice, the Complaints-To header will always relate to the injected twice, the Complaints-To header will always relate to the
second injection. second injection.
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
skipping to change at page 58, line 38 skipping to change at page 62, line 38
Content-Type: Content-Type:
Content-Transfer-Encoding: Content-Transfer-Encoding:
Content-ID: Content-ID:
Content-Description: Content-Description:
Content-Disposition: Content-Disposition:
Content-MD5: Content-MD5:
Insofar as the syntax for these headers, as given in [RFC 2045], does Insofar as the syntax for these headers, as given in [RFC 2045], 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 [MESSFOR], 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.
The meaning of the various MIME headers is as defined in [RFC 2045] The meaning of the various MIME headers is as defined in [RFC 2045]
and [RFC 2046], and in extensions registered in accordance with [RFC and [RFC 2046], and in extensions registered in accordance with [RFC
2048]. However, their usage is curtailed as described in the 2048]. However, their usage is curtailed as described in the
following sections. following sections.
6.21.2. Content-Transfer-Encoding 6.21.2. Content-Type
Posting agents SHOULD specify "Content-Transfer-Encoding: 8bit" for
all articles not written in pure US-ASCII and not requiring full
binary. They MAY use "8bit" encoding even when "7bit" encoding would
have sufficed. They SHOULD specify "base64" when the content type
implies binary (i.e. content intended for machine, rather than human,
consumption).
NOTE: If a future extension to the MIME standards were to
provide a more compact encoding of binary suited to transport
over an 8bit channel, it could be considered as an alternative
News Article Format April 2001
to base64 once it had gained widespread acceptance.
Posting agents SHOULD NOT specify encoding "quoted-printable", but
reading agents MUST interpret that encoding correctly. Encoding
"binary" MUST NOT be used (except in cooperating subnets with
alternative transport arrangements) because this standard does not
mandate a transport mechanism that could support it.
Injecting and relaying agents MUST NOT change the encoding of
articles passed to them. Gateways SHOULD NOT change the encoding
unless absolutely necessary.
6.21.3. Content-Type
The Content-Type: "text/plain" is the default type for any news The Content-Type: "text/plain" is the default type for any news
article, but the recommendations and limits on line lengths set out article, but the recommendations and limits on line lengths set out
in section 4.5 Ought to be observed in section 4.5 Ought to be observed
The acceptability of other subtypes of Content-Type: "text" (such as The acceptability of other subtypes of Content-Type: "text" (such as
"text/html") is a matter of policy (see 1.1), and posters Ought Not "text/html") is a matter of policy (see 1.1), and posters Ought Not
to use them unless established policy or custom in the particular to use them unless established policy or custom in the particular
hierarchies or groups involved so allows. Moreover, even in those hierarchies or groups involved so allows. Moreover, even in those
cases, for the benefit of readers who see it only in its transmitted cases, for the benefit of readers who see it only in its transmitted
form, the material SHOULD be "pretty-printed" (for example by form, the material SHOULD be "pretty-printed" (for example by
News Article Format July 2001
restricting its line length as above and by keeping sequences which restricting its line length as above and by keeping sequences which
control its layout or style separate from the meaningful text). control its layout or style separate from the meaningful text).
In the same way, Content-Types requiring special processing for their In the same way, Content-Types requiring special processing for their
display, such as "application", "image", "audio", "video" and display, such as "application", "image", "audio", "video" and
"multipart/related" are discouraged except in groups specifically "multipart/related" are discouraged except in groups specifically
intended (by policy or custom) to include them. Exceptionally, those intended (by policy or custom) to include them. Exceptionally, those
application types defined in [RFC 1847] and [RFC 2015] for use within application types defined in [RFC 1847] and [RFC 2015] and/or [RFC
"multipart/signed" articles, and the type "application/pgp-keys" (or 2015bis] for use within "multipart/signed" articles, and the type
other similar types containing digital certificates) may be used "application/pgp-keys" (or other similar types containing digital
freely but, contrary to [RFC 2015] and unless the article is intended certificates) may be used freely.
to be sent by mail also, the Content-Transfer-Encoding SHOULD be left
as "8bit" (or "7bit" as appropriate).
Reading agents SHOULD NOT, unless explicitly configured otherwise, Reading agents SHOULD NOT, unless explicitly configured otherwise,
act automatically on Application types which could change the state act automatically on Application types which could change the state
of that agent (e.g. by writing or modifying files), except in the of that agent (e.g. by writing or modifying files), except in the
case of those prescribed for use in control messages (7.1.2 and case of those prescribed for use in control messages (7.1.2 and
). 7.4.1).
6.21.3.1. Message/partial 6.21.2.1. Message/partial
The Content-Type "message/partial" MAY be used to split a long news The Content-Type "message/partial" MAY be used to split a long news
article into several smaller ones, but this usage is discouraged on article into several smaller ones.
the grounds that modern transport agents should have no difficulty in
handling articles of arbitrary length.
However, IF this feature is used, then the "id" parameter SHOULD be NOTE: This Content-Type is not recommended for textual articles
in the form of a unique message identifier (but different from that because the Content-Type, and in particular the charset, of the
in the Message-ID header of any of the parts). Contrary to the complete article cannot be determined by examination of the
News Article Format April 2001 second and subsequent parts, and hence it is not possible to
read them as separate articles (except when they are written in
pure US-ASCII). Moreover, for full compliance with [RFC 2046] it
would be necessary to use the "quoted-printable" encoding to
ensure the material was 7bit-safe. In any case, breaking such
long texts into several parts is usually unnecessary, since
modern transport agents should have no difficulty in handling
articles of arbitrary length.
requirements specified in [RFC 2046], the Transfer-Encoding SHOULD be On the other hand, "message/partial" may be useful for binaries
set to "8bit" at least in each part that requires it. The second and of excessive length, since reading of the individual parts on
subsequent parts SHOULD contain References headers referring to all their own is not required and they would in any case be encoded
the previous parts, thus enabling reading agents with threading in a manner that was 7bit-safe.
capabilities to present them in the correct order. Reading agents MAY
then provide a facility to recombine the parts into a single article
(but this standard does not require them to do so).
6.21.3.2. Message/rfc822 IF this Content-Type is used, then the "id" parameter SHOULD be in
the form of a unique message identifier (but different from that in
the Message-ID header of any of the parts). The second and subsequent
parts SHOULD contain References headers referring to all the previous
parts, thus enabling reading agents with threading capabilities to
present them in the correct order. Reading agents MAY then provide a
facility to recombine the parts into a single article (but this
standard does not require them to do so).
6.21.2.2. Message/rfc822
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 a mail message) of complete news articles which usually, as part of a mail message) of complete news articles which
News Article Format July 2001
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.
In the case where the encapsulated article has Content-Transfer- In the case where the encapsulated article has Content-Transfer-
Encoding "8bit", it will be necessary to change that encoding if it Encoding "8bit", it will be necessary to change that encoding if it
is to be forwarded over some mail transport that only supports is to be forwarded over some mail transport that only supports
"7bit". However, this should not be necessary for any mail transport "7bit". However, this should not be necessary for any mail transport
that supports the 8BITMIME feature [SMTP]. Moreover, where the that supports the 8BITMIME feature [RFC 2821]. Moreover, where the
headers of the encapsulated article contain any UTF8-xtra-chars headers of the encapsulated article contain any UTF8-xtra-chars
(2.4), it may not be possible to transport them over mail transports (2.4), it may not be possible to transport them over mail transports
even where 8BITMIME is supported. In such cases, it will be necessary even where 8BITMIME is supported. In such cases, it will be necessary
to encode those headers as provided in [RFC 2047] (notwithstanding to encode those headers as provided in [RFC 2047] (notwithstanding
that such usage is deprecated for news headers by this standard, and that such usage is deprecated for news headers by this standard, and
actually forbidden in the case of the Newsgroups header). actually forbidden in the case of the Newsgroups header).
In the event that the encapsulated article has to be encoded for In the event that the encapsulated article has to be encoded for
either of these reasons, it may be necessary to reverse that encoding either of these reasons, it may be necessary to reverse that encoding
if certain forms of digital signatures have been employed, or if the if certain forms of digital signatures have been employed, or if the
skipping to change at page 60, line 52 skipping to change at page 64, line 39
containing UTF8-xtra-chars will pass safely through mail containing UTF8-xtra-chars will pass safely through mail
transports supporting 8BITMIME if the "message/rfc822" object is transports supporting 8BITMIME if the "message/rfc822" object is
sent as an attachment (i.e. as a part of a multipart) rather sent as an attachment (i.e. as a part of a multipart) rather
than as the top-level body of the mail message. Moreover, it is than as the top-level body of the mail message. Moreover, it is
anticipated that future extensions to the mail standards will anticipated that future extensions to the mail standards will
permit headers containing UTF8-xtra-chars to be carried without permit headers containing UTF8-xtra-chars to be carried without
further ado over conforming transports. further ado over conforming transports.
[In fact, of current transports supporting 8BITMIME, only sendmail will [In fact, of current transports supporting 8BITMIME, only sendmail will
have problems with UTF-8 in top-level headers.] have problems with UTF-8 in top-level headers.]
6.21.3.3. Message/external-body 6.21.2.3. Message/external-body
The Content-Type "message/external-body" could be apropriate for The Content-Type "message/external-body" could be apropriate for
texts which it would be uneconomic (in view of the likely readership) texts which it would be uneconomic (in view of the likely readership)
to distribute to the entire network. to distribute to the entire network.
News Article Format April 2001 6.21.2.4. Multipart types
6.21.3.4. Multipart types
The Content-Types "multipart/mixed", "multipart/parallel" and The Content-Types "multipart/mixed", "multipart/parallel" and
"multipart/signed" may be used freely in news articles. However, "multipart/signed" may be used freely in news articles. However,
except where policy or custom so allows, the Content-Type: except where policy or custom so allows, the Content-Type:
"multipart/alternative" SHOULD NOT be used, on account of the extra "multipart/alternative" SHOULD NOT be used, on account of the extra
bandwidth consumed and the difficulty of quoting in followups, but bandwidth consumed and the difficulty of quoting in followups, but
reading agents MUST accept it. reading agents MUST accept it.
The Content-Type: "multipart/digest" is commended for any article The Content-Type: "multipart/digest" is commended for any article
composed of multiple messages more conveniently viewed as separate composed of multiple messages more conveniently viewed as separate
entities, thus enabling reading agents to move rapidly between them. entities, thus enabling reading agents to move rapidly between them.
The "boundary" should be composed of 28 hyphens (US-ASCII 45) (which The "boundary" should be composed of 28 hyphens (US-ASCII 45) (which
makes each boundary delimiter 30 hyphens, or 32 for the final one) so makes each boundary delimiter 30 hyphens, or 32 for the final one) so
as to enable reading agents which currently support the digest usage as to enable reading agents which currently support the digest usage
News Article Format July 2001
described in [RFC 1153] to continue to operate correctly. described in [RFC 1153] to continue to operate correctly.
[Actually, this conflicts with some present digest usage (such as the [Actually, this conflicts with some present digest usage (such as the
news.answers rules), but should still be the right way to go. There news.answers rules), but should still be the right way to go. There
remains the possibility that future Mime-compliant readers could enable remains the possibility that future MIME-compliant readers could enable
one to proceed directly to some particular message by clicking on it in one to proceed directly to some particular message by clicking on it in
a table of contents, but that feature is not yet supported by the a table of contents, but that feature is not yet supported by the
curremt Mime standards.] current MIME standards.]
NOTE: The various recomendations given above regarding the usage NOTE: The various recomendations given above regarding the usage
of particular Content-Types apply also to the individual parts of particular Content-Types apply also to the individual parts
of these multiparts. of these multiparts.
6.21.3. Content-Transfer-Encoding
"Content-Transfer-Encoding: 7bit" is sufficient for article bodies
(or parts of multiparts) written in pure US-ASCII (or most other
material representable in 7 bits). Posting agents SHOULD specify
"Content-Transfer-Encoding: 8bit" for all other cases unless there
are pressing reasons to do otherwise. They MAY use "8bit" encoding
even when "7bit" encoding would have sufficed. Examples of such
pressing reasons are the following:
1. The content type implies that the content is (or may be) "8bit-
unsafe"; i.e. it may contain octets equivalent to the US-ASCII
characters CR or LF (other than in the combination CRLF) or NUL.
In that case one of the Content-Transfer-Encodings "base64" or
"quoted-printable" MUST be used, and reading agents MUST be able
to handle both of them. Encoding "binary" MUST NOT be used (except
in cooperating subnets with alternative transport arrangements)
because this standard does not mandate a transport mechanism that
could support it.
NOTE: If a future extension to the MIME standards were to
provide a more compact encoding of binary suited to transport
over an 8bit channel, it could be considered as an alternative
to base64 once it had gained widespread acceptance.
2. It is often the case that "application" Content-Types are textual
in nature, and intelligible to humans as well as to machines, and
where this state can be recognized by the posting agent (either
through knowledge of the particular application type or by
testing) the material SHOULD NOT be treated as 8bit-unsafe; this
has the added benefit, where the posting agent uses other than
CRLF for line endings internally, of automatically ensuring that
line endings are processed correctly during transport.
If, on the other hand, the posting agent recognizes that the
material is not textual, or cannot reasonably determine it to be
so, then the material MUST be encoded as for 8bit-unsafe (however,
in that case, it is the responsibility of the agent generating the
material to ensure that lines endings, if any, are represented
correctly).
News Article Format July 2001
NOTE: All the application types defined by this standard, namely
"application/news-transmission", "application/news-groupinfo"
and "application/news-checkgroups" are textual, and indeed
designed for human reading.
3. Although the "text" Content-Types should normally be encoded as
8bit (or 7bit), if the character set specified by the "charset="
parameter can include the 3 disallowed octets, then the material
MUST be encoded as for 8bit-unsafe. This is most likely to arise
in the case of 16-bit character sets such as UTF-16 ([UNICODE3.1]
or [ISO/IEC 10646]). In addition, where it is known that the
material is subseqently to be gatewayed from news to mail (8.8),
the encoding "quoted-printable" MAY be used (otherwise the gateway
might have to re-encode it itself).
4. Some protocols REQUIRE the use of a particular Content-Transfer-
Encoding. In particular, the authentication protocol based on
[Open]PGP defined in [RFC 2015] and/or [RFC 2015bis] mandates the
use of one of the encodings "quoted-printable" or "base64".
Whilst posters might be tempted to risk the use of "8bit" or
"7bit" encodings (and indeed the referenced standard recommends
that signed messages using those encodings be accepted and
interpreted), they should be warned that differences in the
treatment of trailing whitespace between OpenPGP [RFC 2440] and
earlier versions of PGP may render signatures written with the one
unverifiable by the other; and, moreover, Usenet articles are very
likely to include trailing whitespace in the form of a personal
signature (4.3.2).
[It is to be hoped that [RFC 2015bis] will have progressed to a full RFC
by the time this draft is finalized.]
5. The Content-Type message/partial [RFC 2046] is required to use
encoding "7bit" (the encapsulated complete message may itself use
encoding "quoted-printable" or "base64", but that information is
only conveyed along with the first of the partial parts).
NOTE: Although there would actually be no problem using encoding
"8bit" in a pure Netnews (as opposed to mail) environment, this
standard discourages (see 6.21.2.1) the use of "message/partial"
except for binary material, which will be encoded to pass
through "7bit" in any case.
Injecting and relaying agents MUST NOT change the encoding of
articles passed to them. Gateways SHOULD NOT change the encoding
unless absolutely necessary.
6.21.4. Character Sets 6.21.4. Character Sets
In principle, any character set may be specified in the "charset=" In principle, any character set may be specified in the "charset="
parameter of a content type. However, only those character sets (and parameter of a content type. However, only those character sets (and
the corresponding parts of UTF-8) should be used which are the corresponding parts of UTF-8) should be used which are
appropriate for the customary language(s) of the hierarchy or appropriate for the customary language(s) of the hierarchy or
newsgroup concerned (whose readers could be expected to possess newsgroup concerned (whose readers could be expected to possess
agents capable of displaying them). agents capable of displaying them).
News Article Format July 2001
6.21.5. Content Disposition 6.21.5. Content Disposition
Reading agents Ought to honour any Content-Disposition header that is Reading agents Ought to honour any Content-Disposition header that is
provided (in particular, they Ought to display any part of a provided (in particular, they Ought to display any part of a
multipart for which the disposition is "inline", possibly multipart for which the disposition is "inline", possibly
distinguished from adjacent parts by some suitable separator). In the distinguished from adjacent parts by some suitable separator). In the
absence of such a header, the body of an article or any part of a absence of such a header, the body of an article or any part of a
multipart with Content-Type "text" Ought to be displayed inline. multipart with Content-Type "text" Ought to be displayed inline.
Followup agents which quote parts of a precursor (see 4.3.2) Ought Followup agents which quote parts of a precursor (see 4.3.2) Ought
initially to include all parts of the precursor that were displayed initially to include all parts of the precursor that were displayed
inline, as if they were a single part. inline, as if they were a single part.
6.21.6. Definition of some new Content-Types 6.21.6. Definition of some new Content-Types
This standard defines (or redefines) several new Content-Types, which This standard defines (or redefines) several new Content-Types, which
require to be registered with IANA as provided for in [RFC 2048]. require to be registered with IANA as provided for in [RFC 2048].
For "application/news-groupinfo" see 7.1.2, for "application/news- For "application/news-groupinfo" see 7.1.2, for "application/news-
checkgroups" see 7.4.1, and for "application/news-transmission" see checkgroups" see 7.4.1, and for "application/news-transmission" see
News Article Format April 2001
the following section. the following section.
6.21.6.1. Application/news-transmission 6.21.6.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 SHOULD be used when mailing articles to moderators and to mail- type SHOULD be used when mailing articles to moderators and to mail-
to-news gateways (see 8.2.2). to-news gateways (see 8.2.2).
skipping to change at page 62, line 42 skipping to change at page 68, line 4
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
medium. medium.
Security considerations: A news article may be a "control message", Security considerations: A news article may be a "control message",
which could have effects on the recipient which could have effects on the recipient
host's system beyond just storage of the host's system beyond just storage of the
article. However, such control messages article. However, such control messages
also occur in normal news flow, so most also occur in normal news flow, so most
hosts will already be suitably defended hosts will already be suitably defended
News Article Format July 2001
against undesired effects. against undesired effects.
Published specification: [USEFOR] Published specification: [USEFOR]
Body part: A complete article or proto-article, ready Body part: A complete article or proto-article, ready
for injection into Netnews, or a batch of for injection into Netnews, or a batch of
such articles. such articles.
NOTE: It is likely that the recipient of an "application/news- NOTE: It is likely that the recipient of an "application/news-
transmission" will be a specialised gateway (e.g. a moderator's transmission" will be a specialised gateway (e.g. a moderator's
submission address) able to accept articles with only one of the submission address) able to accept articles with only one of the
three usage parameters "moderate", "inject" and "relay", hence three usage parameters "moderate", "inject" and "relay", hence
the reason why they are optional, being redundant in most the reason why they are optional, being redundant in most
situations. Nevertheless, they MAY be used to signify the situations. Nevertheless, they MAY be used to signify the
originator's intention with regard to the transmission, so originator's intention with regard to the transmission, so
removing any possible doubt. removing any possible doubt.
When the parameter "relay" is used, or implied, the body part MAY be When the parameter "relay" is used, or implied, the body part MAY be
a batch of articles to be transmitted together, in which case the a batch of articles to be transmitted together, in which case the
following syntax MUST be used. following syntax MUST be used.
News Article Format April 2001
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
article-size = 1*digit article-size = 1*digit
where the "rnews" is case-sensitive. Thus a batch is a sequence of where the "rnews" is case-sensitive. Thus a batch is a sequence of
articles, each prefixed by a header line that includes its size. The articles, each prefixed by a header line that includes its size. The
article-size is a decimal count of the octets in the article, article-size is a decimal count of the octets in the article,
counting each CRLF as one octet regardless of how it is actually counting each CRLF as one octet regardless of how it is actually
represented. represented.
skipping to change at page 63, line 41 skipping to change at page 69, line 4
6.22. Obsolete Headers 6.22. Obsolete Headers
Persons writing new agents SHOULD ignore any former meanings of the Persons writing new agents SHOULD ignore any former meanings of the
following headers: following headers:
Also-Control Also-Control
See-Also See-Also
Article-Names Article-Names
Article-Updates Article-Updates
News Article Format July 2001
7. Control Messages 7. Control Messages
The following sections document the control messages. "Message" is The following sections document the control messages. "Message" is
used herein as a synonym for "article" unless context indicates used herein as a synonym for "article" unless context indicates
otherwise. Group control messages are the sub-class of control otherwise. Group control messages are the sub-class of control
messages that request some update to the configuration of the groups messages that request some update to the configuration of the groups
known to a serving agent, namely "newgroup". "rmgroup", "mvgroup" known to a serving agent, namely "newgroup". "rmgroup", "mvgroup"
and "checkgroups", plus any others created by extensions to this and "checkgroups", plus any others created by extensions to this
standard. standard.
All of the group control messages MUST have an Approved header All of the group control messages MUST have an Approved header
(6.14). Moreover, in those hierarchies where appropriate (6.14). Moreover, in those hierarchies where appropriate
administrative agencies exist (see 1.1), group control messages Ought administrative agencies exist (see 1.1), group control messages Ought
Not to be issued except as authorized by those agencies. Not to be issued except as authorized by those agencies.
[They SHOULD also use one of the authentication mechanisms which we may [They SHOULD also use one of the authentication mechanisms which we may
define when we get a Round Tuit.] define when we get a Round Tuit.]
News Article Format April 2001
The Newsgroups header of each control message MUST include the The Newsgroups header of each control message SHOULD include the
newsgroup-name(s) for the group(s) affected (i.e. groups to be newsgroup-name(s) for the group(s) affected (i.e. groups to be
created, modified or removed, or containing articles to be canceled). created, modified or removed, or containing articles to be canceled).
This is to ensure that the message progagates to all sites which This is to ensure that the message progagates to all sites which
receive (or would receive) that group(s). It MAY include other receive (or would receive) that group(s). It MAY include other
newsgroup-names so as to improve propagation (but this practice newsgroup-names so as to improve propagation (but this practice may
should be regarded as exceptional rather than normal). cause the control message to propagate also to places where it is
unwanted, so it should not be used without good reason).
The descriptions below are generally phrased in terms suggesting For convenience, the descriptions below are phrased on the assumption
mandatory actions, but any or all of these MAY be subject to local that control messages will be honoured by sites receiving them.
Naturally, this does not apply where they have not been issued by the
appropriate administrative agencies (and sites SHOULD take such steps
as are reasonable practicable to validate their authenticity).
Moreover, acceptance of such messages MAY be subject to local
administrative restrictions, and MAY be denied or referred to an administrative restrictions, and MAY be denied or referred to an
administrator for approval (either as a class or on a case-by-case administrator for approval (either as a class or on a case-by-case
basis). Analogously, where the description below specifies that a basis). Analogously, where the description below specifies that a
message or portion thereof is to be ignored, this action MAY include message or portion thereof is to be ignored, this action MAY include
reporting it to an administrator. reporting it to an administrator.
Relaying Agents MUST propagate even control messages that they do not Relaying Agents MUST propagate even control messages that they do not
understand. understand.
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.
7.1. The 'newgroup' Control Message 7.1. The 'newgroup' Control Message
newgroup-verb = "newgroup" newgroup-verb = "newgroup"
newgroup-arguments = CFWS newsgroup-name [ CFWS newgroup-flag ] newgroup-arguments = CFWS newsgroup-name [ CFWS newgroup-flag ]
newgroup-flag = "moderated" newgroup-flag = "moderated"
The "newgroup" control message requests that the specified group be The "newgroup" control message requests that the specified group be
created or changed. The newgroup-flag "moderated" is appended to mark created or changed. If the request is honoured, or if the group
the group as moderated. The absence of this flag marks the group as already exists on the serving agent, and if the newgroup-flag
unmoderated. "Moderated" is the only such flag defined by this News Article Format July 2001
"moderated" is present, then the group MUST be marked as moderated,
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 recognised by some current software, are NOT which are sent and recognised 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
standard. standard.
The message body comprises or includes a "application/news-groupinfo" The message body comprises or includes a "application/news-groupinfo"
(7.1.2) part containing machine- and human-readable information about (7.1.2) part containing machine- and human-readable information about
the group. the group.
The newsgroup-name MUST conform to all requirements set out in It is REQUIRED that the newsgroup-name conforms to all requirements
section 5.5, and it is the responsibility of the newgroup message set out in section 5.5. This includes the restrictions as to the
issuer to ensure this (since some of those requirements are hard to permitted characters, and the requirement that they be invariant
enforce mechanically). Moreover, the newsgroup-name Ought to conform under NFKC normalization. It is essential that those who issue
to whatever policies have been established by the administrative newgroup messages are aware of their responsibility to enforce this
agency, if any, for that hierarchy. requirement, since some of those conditions are hard to enforce
mechanically.
News Article Format April 2001 Additionally, the newsgroup-name Ought to conform to whatever
policies have been established by the administrative agency, if any,
for that hierarchy. Serving agents SHOULD, insofar as they are
conveniently able to detect them, reject all newgroup messages not
meeting those requirements.
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.1.1. The Body of the 'newgroup' Control Message 7.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,
preferably in the order shown: preferably in the order shown:
1. An "application/news-groupinfo" part (7.1.2) containing the name 1. An "application/news-groupinfo" part (7.1.2) containing the name
skipping to change at page 65, line 31 skipping to change at page 71, line 5
3. Parts containing initial articles for the newsgroup. See section 3. Parts containing initial articles for the newsgroup. See section
7.1.3 for details. 7.1.3 for details.
In the event that there is only the single (i.e. application/news- In the event that there is only the single (i.e. application/news-
groupinfo) subpart present, it will suffice to include a "Content- groupinfo) subpart present, it will suffice to include a "Content-
Type: application/news-groupinfo" amongst the headers of the control Type: application/news-groupinfo" amongst the headers of the control
message. Otherwise, a "Content-Type: multipart/mixed header" will be message. Otherwise, a "Content-Type: multipart/mixed header" will be
needed, and each separate part will then need its own Content-Type needed, and each separate part will then need its own Content-Type
header. header.
News Article Format July 2001
7.1.2. Application/news-groupinfo 7.1.2. Application/news-groupinfo
The "application/news-groupinfo" body part contains brief information The "application/news-groupinfo" body part contains brief information
about a newsgroup, i.e. the group's name, it's newsgroup-description about a newsgroup, i.e. the group's name, it's newsgroup-description
and the moderation-flag. and the moderation-flag.
NOTE: The presence of the newsgroups-tag "For your newsgroups NOTE: The presence of the newsgroups-tag "For your newsgroups
file:" is intended to make the whole newgroup message compatible file:" is intended to make the whole newgroup message compatible
with current practice as described in [Son-of-1036]. with current practice as described in [Son-of-1036].
skipping to change at page 66, line 4 skipping to change at page 71, line 35
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]
The content of the "application/news-groupinfo" body part is defined The content of the "application/news-groupinfo" body part is defined
as: as:
groupinfo-body = [ newsgroups-tag CRLF ] groupinfo-body = [ newsgroups-tag CRLF ]
1*( newsgroups-line CRLF ) 1*( newsgroups-line CRLF )
News Article Format April 2001
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 ]
newsgroup-description newsgroup-description
= 1*( [WSP] utext) = 1*( [WSP] utext)
skipping to change at page 66, line 33 skipping to change at page 72, line 5
newsgroup-name(s) in the newsgroups-line MUST agree with the newsgroup-name(s) in the newsgroups-line MUST agree with the
newsgroup-name(s) in the "newgroup" or "mvgroup" control message (and newsgroup-name(s) in the "newgroup" or "mvgroup" control message (and
thus there cannot be more than a single newsgroups-line except in the thus there cannot be more than a single newsgroups-line except in the
case of a "mvgroup" control message affecting a whole case of a "mvgroup" control message affecting a whole
(sub)hierarchy). The Content-Type "application/news-groupinfo" MUST (sub)hierarchy). The Content-Type "application/news-groupinfo" MUST
NOT be used except as a part of such control messages. Although NOT be used except as a part of such control messages. Although
optional, the newsgroups-tag SHOULD be included until such time as optional, the newsgroups-tag SHOULD be included until such time as
this standard has been widely adopted, to ensure compatibility with this standard has been widely adopted, to ensure compatibility with
present practice. present practice.
News Article Format July 2001
Moderated newsgroups MUST be marked by appending the case sensitive Moderated newsgroups MUST be marked by appending the case sensitive
text " (Moderated)" at the end. It is NOT recommended that the text " (Moderated)" at the end. It is NOT recommended that the
moderator's email address be included in the newsgroup-description as moderator's email address be included in the newsgroup-description as
has sometimes been done. has sometimes been done.
Although, in accordance with [MESSFOR] and section 4.5 of this Although, in accordance with [RFC 2822] and section 4.5 of this
standard, a newsgroups-line could have a maximum length of 998 standard, a newsgroups-line could have a maximum length of 998
octets, as a matter of policy a far lower limit, expressed in octets, as a matter of policy a far lower limit, expressed in
characters, Ought to be set. The current convention is to limit its characters, Ought to be set. The current convention is to limit its
length so that the newsgroup-name, the HTAB(s) (interpreted as 8- length so that the newsgroup-name, the HTAB(s) (interpreted as 8-
character tabs that takes one at least to column 24) and the character tabs that takes one at least to column 24) and the
newsgroup-description (excluding any moderation-flag) fit into 79 newsgroup-description (excluding any moderation-flag) fit into 79
characters. However, this standard does not seek to enforce any such characters. However, this standard does not seek to enforce any such
rule, and reading agents SHOULD therefore enable a newsgroups-line of rule, and reading agents SHOULD therefore enable a newsgroups-line of
any length to be displayed, e.g. by wrapping it as required. any length to be displayed, e.g. by wrapping it as required.
NOTE: The newsgroups-line is intended to provide a brief NOTE: The newsgroups-line is intended to provide a brief
description of the newsgroup, written in the UTF-8 character description of the newsgroup, written in the UTF-8 character
set. Since newsgroup-names are required to be expressed in set. Since newsgroup-names are required to be expressed in
UTF-8 when they appear in headers, and since [NNTP] requires the UTF-8 when they appear in headers, and since [NNTP] requires the
use of UTF-8 when such a description is transmitted by the LIST use of UTF-8 when such a description is transmitted by the LIST
NEWSGROUPS command, it would also be convenient for servers that NEWSGROUPS command, it would also be convenient for servers that
keep a "newsgroups" file to store them in that form, so as to keep a "newsgroups" file to store them in that form, so as to
avoid unnecessary conversions. avoid unnecessary conversions.
News Article Format April 2001
7.1.3. Initial Articles 7.1.3. Initial Articles
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. These parts are newsgroup(s) as soon as it has been created. These parts are
identified by having the Content-Type "application/news- 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).
skipping to change at page 67, line 36 skipping to change at page 73, line 4
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".
The proto-article SHOULD be injected at the serving agent that The proto-article SHOULD be injected at the serving agent that
processes the control message AFTER the newsgroup(s) in question has processes the control message AFTER the newsgroup(s) in question has
been created. It MUST NOT be injected if the newsgroup is not, in been created. It MUST NOT be injected if the newsgroup is not, in
fact, created (for whatever reason). It MUST NOT be submitted to any fact, created (for whatever reason). It MUST NOT be submitted to any
relaying agent for transmission beyond the server(s) upon which the relaying agent for transmission beyond the server(s) upon which the
newsgroup creation has just been effected (in other words, it is to newsgroup creation has just been effected (in other words, it is to
News Article Format July 2001
be treated as having a "Distribution: local" header, whether such a be treated as having a "Distribution: local" header, whether such a
header is actually present or not). header is actually present or not).
NOTE: The "$p=<n>" convention, if applied uniformly, should NOTE: The "$p=<n>" convention, if applied uniformly, should
ensure that initial articles relayed beyond the local server in ensure that initial articles relayed beyond the local server in
contravention of the above prohibition will not propagate in contravention of the above prohibition will not propagate in
competition with similar copies injected at other local servers. competition with similar copies injected at other local servers.
NOTE: It is not precluded that the proto-article is itself a NOTE: It is not precluded that the proto-article is itself a
control message or other type of special article, to be control message or other type of special article, to be
skipping to change at page 68, line 4 skipping to change at page 73, line 31
7.1.4. Example 7.1.4. Example
A "newgroup" with bilingual charter and policy information: A "newgroup" with bilingual charter and policy information:
From: "example.all Administrator" <admin@example.invalid> From: "example.all Administrator" <admin@example.invalid>
Newsgroups: example.admin.groups,example.admin.announce Newsgroups: example.admin.groups,example.admin.announce
Date: 27 Feb 1997 12:50:22 +0200 Date: 27 Feb 1997 12:50:22 +0200
Subject: cmsg newgroup example.admin.info moderated Subject: cmsg newgroup example.admin.info moderated
Approved: admin@example.invalid Approved: admin@example.invalid
Control: newgroup example.admin.info moderated Control: newgroup example.admin.info moderated
News Article Format April 2001
Message-ID: <ng-example.admin.info-19970227@example.invalid> Message-ID: <ng-example.admin.info-19970227@example.invalid>
Content-Type: multipart/mixed; boundary="nxtprt" Content-Type: multipart/mixed; boundary="nxtprt"
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
This is a MIME control message. This is a MIME control message.
--nxtprt --nxtprt
Content-Type: application/news-groupinfo Content-Type: application/news-groupinfo
For your newsgroups file: For your newsgroups file:
example.admin.info About the example.* groups (Moderated) example.admin.info About the example.* groups (Moderated)
skipping to change at page 68, line 35 skipping to change at page 74, line 4
Content-Type: multipart/alternative ; Content-Type: multipart/alternative ;
differences = content-language ; differences = content-language ;
boundary = nxtlang boundary = nxtlang
--nxtlang --nxtlang
Content-Type: text/plain; charset=us-ascii Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
Content-Language: en Content-Language: en
The group example.admin.info contains regularly posted The group example.admin.info contains regularly posted
News Article Format July 2001
information on the example.* hierarchy. information on the example.* hierarchy.
--nxtlang --nxtlang
Content-Type: text/plain; charset=iso-8859-1 Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Content-Language: de Content-Language: de
Die Gruppe example.admin.info enthaelt regelmaessig versandte Die Gruppe example.admin.info enthaelt regelmaessig versandte
Informationen ueber die example.*-Hierarchie. Informationen ueber die example.*-Hierarchie.
--nxtlang-- --nxtlang--
skipping to change at page 69, line 5 skipping to change at page 74, line 31
rmgroup-arguments = CFWS newsgroup-name rmgroup-arguments = CFWS newsgroup-name
The "rmgroup" control message requests that the specified group be The "rmgroup" control message requests that the specified group be
removed from the list of valid groups. The Content-Type of the body removed from the list of valid groups. The Content-Type of the body
is unspecified; it MAY contain anything, usually an explanatory text. is unspecified; it MAY contain anything, usually an explanatory text.
NOTE: It is entirely proper for a serving agent to retain the NOTE: It is entirely proper for a serving agent to retain the
group until all the articles in it have expired, provided that group until all the articles in it have expired, provided that
it ceases to accept new articles. it ceases to accept new articles.
News Article Format April 2001
7.2.1. Example 7.2.1. Example
Plain "rmgroup": Plain "rmgroup":
From: "example.all Administrator" <admin@example.invalid> From: "example.all Administrator" <admin@example.invalid>
Newsgroups: example.admin.groups, example.admin.announce Newsgroups: example.admin.groups, example.admin.announce
Date: 4 Jul 1997 22:04 -0900 (PST) Date: 4 Jul 1997 22:04 -0900 (PST)
Subject: cmsg rmgroup example.admin.obsolete Subject: cmsg rmgroup example.admin.obsolete
Message-ID: <rm-example.admin.obsolete-19970730@example.invalid> Message-ID: <rm-example.admin.obsolete-19970730@example.invalid>
Approved: admin@example.invalid Approved: admin@example.invalid
skipping to change at page 69, line 36 skipping to change at page 75, line 4
mvgrp-groups = newsgroup-name mvgrp-groups = newsgroup-name
CFWS newsgroup-name [ CFWS newgroup-flag ] CFWS newsgroup-name [ CFWS newgroup-flag ]
mvgrp-hrchy = groupnamepart ".*" CFWS groupnamepart ".*" mvgrp-hrchy = groupnamepart ".*" CFWS groupnamepart ".*"
groupnamepart = newsgroup-name ; syntactically groupnamepart = newsgroup-name ; syntactically
7.3.1. Single group 7.3.1. Single group
The "mvgroup" control message requests that the first specified group The "mvgroup" control message requests that the first specified group
be moved to the second specified group. The message body MUST contain be moved to the second specified group. The message body MUST contain
a "application/news-groupinfo" (7.1.2) containing machine- and a "application/news-groupinfo" (7.1.2) containing machine- and
News Article Format July 2001
human-readable information about the new group, and possibly other human-readable information about the new group, and possibly other
subparts as for a newgroup control message. subparts as for a newgroup control message.
When this message is received, the new group SHOULD be created (and When this message is received, and the new group does not already
MUST be moderated if a newgroup-flag "moderated" is present) and all exist, it is created (and MUST be moderated if a newgroup-flag
existing articles SHOULD be copied or moved to the new group; then "moderated" is present) and all existing articles SHOULD be copied or
the old, now empty group SHOULD be removed. moved to the new group; then the old, now empty group SHOULD be
removed.
If the old group does not exist, the message is ignored unless the If the old group does not exist, the message is ignored unless the
new group does not exist either, in which case the message SHOULD be new group does not exist either, in which case the message SHOULD be
treated as if it had been an equivalent "newgroup" message. treated as if it had been an equivalent "newgroup" message.
If both groups exist, the groups MAY be "merged". If this is done, it If both groups exist, the groups MAY be "merged". If this is done, it
MUST be done correctly, i.e. implementations MUST take care that the MUST be done correctly, i.e. implementations MUST take care that the
messages in the group being deleted are renumbered accordingly to messages in the group being deleted are renumbered accordingly to
avoid overwriting articles in one group with those of the other, and avoid overwriting articles in one group with those of the other, and
that crossposted articles do not appear twice. Otherwise, the old that crossposted articles do not appear twice. Otherwise, the old
group is just removed. group is just removed.
NOTE: Due to the severe difficulties of implementing this NOTE: Due to the severe difficulties of implementing this
merging, those proposing to merge existing groups using this merging, those proposing to merge existing groups using this
control message should be aware that it may not be implemented control message should be aware that it may not be implemented
on many (if not most) sites, and should therefore be prepared on many (if not most) sites, and should therefore be prepared
for such disruption as may ensue. for such disruption as may ensue.
News Article Format April 2001
An indication that the old group was replaced by the new group MAY be An indication that the old group was replaced by the new group MAY be
retained by the serving agent so that continuity of service may be retained by the serving agent so that continuity of service may be
maintained, and clients made aware of the new arrangements. maintained, and clients made aware of the new arrangements.
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,
and could even enable users already subscribed to oldgroup to and could even enable users already subscribed to oldgroup to
receive articles from newgroup instead. receive articles from newgroup instead.
skipping to change at page 70, line 33 skipping to change at page 76, line 5
days later. days later.
7.3.2. Multiple Groups 7.3.2. Multiple Groups
If the two names ends with the character sequence ".*", the newgroup If the two names ends with the character sequence ".*", the newgroup
message requests that a whole (sub)hierarchy be moved. The same message requests that a whole (sub)hierarchy be moved. The same
procedure as for single groups (7.3.1) applies to each matched group, procedure as for single groups (7.3.1) applies to each matched group,
except that the moderation status of each old group MUST be copied to except that the moderation status of each old group MUST be copied to
the corresponding new group. the corresponding new group.
News Article Format July 2001
To avoid recursion, the new groups' names MUST NEVER match the old To avoid recursion, the new groups' names MUST NEVER match the old
groups' name pattern; i.e., moving a whole (sub)hierarchy to a groups' name pattern; i.e., moving a whole (sub)hierarchy to a
subhierarchy of the original hierarchy is explicitly disallowed. subhierarchy of the original hierarchy is explicitly disallowed.
Until most serving agents conform to this standard, whenever a Until most serving agents conform to this standard, whenever a
mvgroup control message for multiple groups is issued, a mvgroup control message for multiple groups is issued, a
corresponding set of rmgroup and newgroup control messages for all corresponding set of rmgroup and newgroup control messages for all
the affected groups SHOULD be issued a few days later. the affected groups SHOULD be issued a few days later.
7.3.3. Examples 7.3.3. Examples
skipping to change at page 71, line 4 skipping to change at page 76, line 33
Subject: cmsg mvgroup example.oldgroup example.newgroup moderated Subject: cmsg mvgroup example.oldgroup example.newgroup moderated
Message-ID: <mvgroup-example.oldgroup-19970730@example.invalid> Message-ID: <mvgroup-example.oldgroup-19970730@example.invalid>
Approved: admin@example.invalid Approved: admin@example.invalid
Control: mvgroup example.oldgroup example.newgroup moderated Control: mvgroup example.oldgroup example.newgroup moderated
Content-Type: multipart/mixed; boundary=nxt Content-Type: multipart/mixed; boundary=nxt
--nxt --nxt
Content-Type: application/newgroupinfo Content-Type: application/newgroupinfo
For your newsgroups file: For your newsgroups file:
News Article Format April 2001
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. example.newgroup. Please update your configuration.
--nxt-- --nxt--
More complex "mvgroup" for a whole hierarchy: More complex "mvgroup" for a whole hierarchy:
skipping to change at page 71, line 35 skipping to change at page 77, line 4
Message-ID: <mvgroup-example.talk-19970730@example.invalid> Message-ID: <mvgroup-example.talk-19970730@example.invalid>
Approved: admin@example.invalid Approved: admin@example.invalid
Control: mvgroup example.talk.* example.conversation Control: mvgroup example.talk.* example.conversation
Content-Type: multipart/mixed; boundary=nxt Content-Type: multipart/mixed; boundary=nxt
--nxt --nxt
Content-Type: application/news-groupinfo Content-Type: application/news-groupinfo
For your newsgroups file: For your newsgroups file:
example.conversation.boring Boring conversations example.conversation.boring Boring conversations
News Article Format July 2001
example.conversation.better Better conversations example.conversation.better Better conversations
example.conversation.jokes Funny stuff example.conversation.jokes Funny stuff
example.conversation.jokes.d Discussion of funny stuff example.conversation.jokes.d Discussion of funny stuff
--nxt --nxt
Content-Type: application/news-transmission Content-Type: application/news-transmission
Newsgroups: example.conversation.jokes Newsgroups: example.conversation.jokes
From: "example.all Administrator" <admin@example.invalid> From: "example.all Administrator" <admin@example.invalid>
Subject: Charter for renamed group example.conversation.jokes Subject: Charter for renamed group example.conversation.jokes
skipping to change at page 72, line 5 skipping to change at page 77, line 31
to example.conversation.jokes.d; adding a Followup-To: header to example.conversation.jokes.d; adding a Followup-To: header
is recommended. is recommended.
--nxt-- --nxt--
7.4. The 'checkgroups' Control Message 7.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.
News Article Format April 2001
checkgroup-verb = "checkgroups" checkgroup-verb = "checkgroups"
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
The chkscope parameter(s) specifies the (sub)hierarchy(s) for which The chkscope parameter(s) specifies the (sub)hierarchy(s) for which
this "checkgroups" message applies. The chksernr parameter is a this "checkgroups" message applies. The chksernr parameter is a
serial number, which can be any positive integer (e.g. just numbered serial number, which can be any positive integer (e.g. just numbered
or the date in YYYYMMDD). It SHOULD increase by an arbitrary value or the date in YYYYMMDD). It SHOULD increase by an arbitrary value
with every change to the group list and MUST NOT ever decrease. with every change to the group list and MUST NOT ever decrease.
skipping to change at page 72, line 34 skipping to change at page 78, line 5
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 into for. "New" software MUST ignore groups which do not fall into
the scope of the "checkgroups" message. the scope of the "checkgroups" message.
If no scope for the checkgroups message is given, it applies to all If no scope for the checkgroups message 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 July 2001
The body of the message has the Content-Type "application/news- The body of the message has the Content-Type "application/news-
checkgroups". It asserts that the newsgroups it lists are the only checkgroups". It asserts that the newsgroups it lists are the only
newsgroups in the specified hierarchies. newsgroups in the specified hierarchies.
NOTE: The checkgroups nessage is intended to synchronize the NOTE: The checkgroups nessage 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
skipping to change at page 73, line 4 skipping to change at page 78, line 34
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
MIME subtype name: news-checkgroups MIME subtype name: news-checkgroups
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.
News Article Format April 2001
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:
checkgroups-body = *( valid-group CRLF ) checkgroups-body = *( valid-group CRLF )
valid-group = newsgroups-line ; see 7.1.2 valid-group = newsgroups-line ; see 7.1.2
The whole checkgroups-body is intended to be interpreted as a text The whole checkgroups-body is intended to be interpreted as a text
written in the UTF-8 character set. written in the UTF-8 character set.
skipping to change at page 73, line 35 skipping to change at page 79, line 5
correctly. The same effect, if required, can now be obtained by correctly. The same effect, if required, can now be obtained by
the use of an appropriate chkscope argument in conjunction with the use of an appropriate chkscope argument in conjunction with
an empty checkgroups-body. an empty checkgroups-body.
7.5. Cancel 7.5. Cancel
The cancel message requests that a target article be "canceled" i.e. The cancel message requests that a target article be "canceled" i.e.
be withdrawn from circulation or access. A cancel message may be be withdrawn from circulation or access. A cancel message may be
issued in the following circumstances. issued in the following circumstances.
News Article Format July 2001
1. The poster of an article (or, more specifically, any entity 1. The poster of an article (or, more specifically, any entity
mentioned in the From header or the Sender header, whether or not mentioned in the From header or the Sender header, whether or not
that entity was the actual poster) is always entitled to issue a that entity was the actual poster) is always entitled to issue a
cancel message for that article, and serving agents SHOULD honour cancel message for that article, and serving agents SHOULD honour
such requests. Posting agents SHOULD facilitate the issuing of such requests. Posting agents SHOULD facilitate the issuing of
cancel messages by posters fulfilling these criteria. cancel messages by posters fulfilling these criteria.
2. The agent which injected the article onto the network (more 2. The agent which injected the article onto the network (more
specifically, the entity identified by the path-identity in front specifically, the entity identified by the path-identity in front
of the leftmost '%' delimeter in the Path header (5.6) or in the of the leftmost '%' delimeter in the Path header (5.6) or in the
skipping to change at page 74, line 4 skipping to change at page 79, line 33
article, in circumstances where established policy for any article, in circumstances where established policy for any
hierarchy or group in the Newsgroup header, or established custom hierarchy or group in the Newsgroup header, or established custom
within Usenet, so allows (such policies and customs are not within Usenet, so allows (such policies and customs are not
defined by this standard). Such cancel messages MUST include an defined by this standard). Such cancel messages MUST include an
Approved header identifying the responsible entity. Serving agents Approved header identifying the responsible entity. Serving agents
MAY honour such requests, but SHOULD first take steps to verify MAY honour such requests, but SHOULD first take steps to verify
their appropriateness. their appropriateness.
[I think that accords with the accepted norms for 1st, 2nd and 3rd party [I think that accords with the accepted norms for 1st, 2nd and 3rd party
cancels (or is a moderator a 1st party?). Observe the use of an Approved cancels (or is a moderator a 1st party?). Observe the use of an Approved
header in place of the present X-Cancelled-By (I cannot see that we need header in place of the present X-Cancelled-By (I cannot see that we need
News Article Format April 2001
a new header for that when Approved is available). The definitions given a new header for that when Approved is available). The definitions given
are sufficient to establish which category a cancel was in, assuming are sufficient to establish which category a cancel was in, assuming
that nobody told any lies, and to establish who had committed abuse that nobody told any lies, and to establish who had committed abuse
otherwise. So far so good, but we now need authentication methods on top otherwise. So far so good, but we now need authentication methods on top
of all that.] of all that.]
[A future draft of this standard may contain provisions for a Cancel- [A future draft of this standard may contain provisions for a Cancel-
Lock header to enable verification of the authenticity of 1st (and even Lock header to enable verification of the authenticity of 1st (and even
2nd) party cancels, and means for digital signatures to establish the 2nd) party cancels, and means for digital signatures to establish the
authenticity of 3rd party cancels.] authenticity of 3rd party cancels.]
skipping to change at page 74, line 33 skipping to change at page 80, line 5
cancel-verb = "cancel" cancel-verb = "cancel"
cancel-arguments = CFWS message-id cancel-arguments = CFWS message-id
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(s), with the same distribution(s), as the article the same newsgroup(s), with the same distribution(s), as the article
it is attempting to cancel. it is attempting to cancel.
News Article Format July 2001
A serving agent that elects to honour a cancel message SHOULD delete A serving agent that elects to honour a cancel message SHOULD delete
the target article completely and immediately (or at the minimum make the target article completely and immediately (or at the minimum make
the article unavailable for relaying or serving) and also SHOULD the article unavailable for relaying or serving) and also SHOULD
reject any copies of this article that appear subsequently. See also reject any copies of this article that appear subsequently. See also
sections 8.3 and 8.4. sections 8.3 and 8.4.
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,
skipping to change at page 75, line 5 skipping to change at page 80, line 32
7.6. Ihave, sendme 7.6. 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 transort the Internet, but still see use in conjunction with some transort
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
requirement for relaying agents that do not support such transport requirement for relaying agents that do not support such transport
protocols to implement them. protocols to implement them.
News Article Format April 2001
NOTE: The ihave and sendme messages defined here have ABSOLUTELY NOTE: The ihave and sendme messages defined here have ABSOLUTELY
NOTHING TO DO WITH NNTP, despite similarities of terminology. NOTHING TO DO WITH NNTP, despite similarities of terminology.
The two messages share the same syntax: The two messages share the same syntax:
ihave-arguments = *( msg-id SP ) relayer-name ihave-arguments = *( msg-id SP ) relayer-name
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
skipping to change at page 75, line 29 skipping to change at page 80, line 54
both. Relayers SHOULD generate the form putting msg-ids in the body, both. Relayers SHOULD generate the form putting msg-ids in the body,
but the other form MUST be supported for backward compatibility. but the other form MUST be supported 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.
These control messages are normally sent essentially as point-to- These control messages are normally sent essentially as point-to-
point messages, by using newgroups-names in the Newsgroups header of point messages, by using newsgroup-names in the Newsgroups header of
the form "to." followed by one of more components in the form of a the form "to." followed by one of more components in the form of a
relayer-name (see section 5.5.1 which forbids "to" as the first relayer-name (see section 5.5.1 which forbids "to" as the first
component of a newgroup-name). The control message SHOULD then be component of a newsgroup-name). The control message SHOULD then be
delivered ONLY to the relaying agent(s) identitifed by that relayer- delivered ONLY to the relaying agent(s) identitifed by that relayer-
name, and any relaying agent receiving such a message which includes name, and any relaying agent receiving such a message which includes
its own relayer-name MUST NOT propagate it further. Each pair of its own relayer-name MUST NOT propagate it further. Each pair of
News Article Format July 2001
relaying agent(s) sending and receiving these messages MUST be relaying agent(s) sending and receiving these messages MUST be
immediate neighbors, exchanging news directly with each other. Each immediate neighbors, exchanging news directly with each other. Each
relaying agent advertises its new arrivals to the other using ihave relaying agent advertises its new arrivals to the other using ihave
messages, and each uses sendme messages to request the articles it messages, and each uses sendme messages to request the articles it
lacks. lacks.
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 IDs. If ihave and sendme are being used to implement a backup message IDs. If ihave and sendme are being used to implement a backup
feed, it may be desirable to insert a delay between reception of an feed, it may be desirable to insert a delay between reception of an
skipping to change at page 76, line 4 skipping to change at page 81, line 29
7.7. Obsolete control messages. 7.7. Obsolete control messages.
The following control message verbs are declared obsolete by this The following control message verbs are declared obsolete by this
standard: standard:
sendsys sendsys
version version
whogets whogets
senduuname senduuname
News Article Format April 2001
8. Duties of Various Agents 8. Duties of Various Agents
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. in the creation, relaying and serving of Usenet articles.
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
or a poster). or a poster).
skipping to change at page 76, line 34 skipping to change at page 82, line 5
administrators) need to keep in mind. The first is the well-known administrators) need to keep in mind. The first is the well-known
Internet Robustness Principle: Internet Robustness Principle:
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 will thus call this the Hippocratic Principle): Hippocratic Oath (we will thus call this the Hippocratic Principle):
News Article Format July 2001
First, do no harm. First, do no harm.
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.
skipping to change at page 77, line 5 skipping to change at page 82, line 31
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
and the policies of any newsgroups or hierarchies that the article is and the policies of any newsgroups or hierarchies that the article is
posted to. It is also expected to bear some responsibility towards posted to. It is also expected to bear some responsibility towards
the rest of the network for the behaviour of its posters (and the rest of the network for the behaviour of its posters (and
provision is therefore made for it to be easily contactable by provision is therefore made for it to be easily contactable by
email). email).
News Article Format April 2001
To this end injecting agents MAY cancel articles which they have To this end injecting agents MAY cancel articles which they have
previously injected (see 7.5). previously injected (see 7.5).
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 the news system by an injecting agent.
It SHOULD NOT be propagated in that form to other than injecting It SHOULD NOT be propagated in that form to other than injecting
agents. A proto-article has the same format as a normal article agents. A proto-article has the same format as a normal article
except that some of the following mandatory headers MAY be omitted: except that some of the following mandatory headers MAY be omitted:
skipping to change at page 77, line 37 skipping to change at page 83, line 4
A injecting agent receives proto-articles from posting and followup A injecting agent receives proto-articles from posting and followup
agents. It verifies them, adds headers where required and then either agents. It verifies them, adds headers where required and then either
forwards them to a moderator or injects them by passing them to forwards them to a moderator or injects them by passing them to
serving or relaying agents. serving or relaying agents.
If an injecting agent receives an otherwise valid article that has If an injecting agent receives an otherwise valid article that has
already been injected it SHOULD either act as if it is a relaying 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 agent or else pass the article on to a relaying agent completely
unaltered. Exceptionally, it MAY reinject the article, perhaps as a unaltered. Exceptionally, it MAY reinject the article, perhaps as a
part of some complex gatewaying process (in which case it will add a part of some complex gatewaying process (in which case it will add a
News Article Format July 2001
second '%' delimiter to the Path header). It MUST NOT forward an second '%' delimiter to the Path header). It MUST NOT forward an
already injected article to a moderator. 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 Injector-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 or other
undocumented tracing header. undocumented tracing header.
skipping to change at page 78, line 5 skipping to change at page 83, line 28
email addresses, that is, addresses which are not valid for the email addresses, that is, addresses which are not valid for the
known and trusted source, especially if they end in ".invalid". known and trusted source, especially if they end in ".invalid".
3. It MUST reject any article whose Date header is more than 24 hours 3. It MUST reject any article whose Date header is more than 24 hours
into the past or into the future (cf. 5.1). into the past or into the future (cf. 5.1).
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 (5 and 8.2.1) present, or
which contains any header that does not have legal contents. which contains any header that does not have legal contents.
News Article Format April 2001
5. If the article is rejected, or is otherwise incorrectly formatted 5. If the article is rejected, or is otherwise incorrectly formatted
or unacceptable due to site policy, the posting agent MUST be or unacceptable due to site policy, the posting agent MUST be
informed (such as via an NNTP 44x response code) that posting has informed (such as via an NNTP 44x response code) that posting has
failed and the article MUST NOT then be processed further. failed and the article MUST NOT then be processed further.
6. The Message-ID and Date headers (and their content) MUST be added 6. The Message-ID and Date headers (and their content) MUST be added
when not already present. when not already present.
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
skipping to change at page 78, line 39 skipping to change at page 84, line 4
the poster, but SHOULD NOT alter, delete or reorder any headers the poster, but SHOULD NOT alter, delete or reorder any headers
already present in the article (except for headers intended for already present in the article (except for headers intended for
tracing purposes, such as Injector-Info and Complaints-To, as tracing purposes, such as Injector-Info and Complaints-To, as
already mentioned). The injecting agent MUST NOT alter the body of already mentioned). The injecting agent MUST NOT alter the body of
the article in any way. the article in any way.
11.If the Newsgroups line contains one or more moderated groups and 11.If the Newsgroups line contains one or more moderated groups and
the article does NOT contain an Approved header, then the the article does NOT contain an Approved header, then the
injecting agent MUST forward it to the moderator of the first injecting agent MUST forward it to the moderator of the first
(leftmost) moderated group listed in the Newsgroups line via (leftmost) moderated group listed in the Newsgroups line via
News Article Format July 2001
email. The complete article SHOULD be encapsulated (headers and email. The complete article SHOULD be encapsulated (headers and
all) within the email, preferably using the Content-Type all) within the email, preferably using the Content-Type
"application/news-transmission" (6.21.6.1). "application/news-transmission" (6.21.6.1).
NOTE: This standard does not prescribe how the email address of
the moderator is to be determined, that being a matter of policy
to be arranged by the agency responsible for the oversight of
each hierarchy. Nevertheless, there do exist various agents
worldwide which provide the service of forwarding to moderators,
and the address to use with them is obtained by replacing each
'.' in the newsgroups-name with a '-'. For example, articles
intended for "news.announce.important" would be emailed to
"new-announce-important@forwardingagent.example".
[There is an issue with regard to newsgroup-names using UTF-8.]
12.Otherwise, the injecting agent forwards the article to one or more 12.Otherwise, the injecting agent forwards the article to one or more
relaying or serving agents. relaying or serving agents.
8.3. Duties of a Relaying Agent 8.3. Duties of a Relaying Agent
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 '/' delimiter, and possibly prepend its own path-identity with a '/' delimiter, and possibly
also the verified path-identity of its source with a '?' delimiter also the verified path-identity of its source with a '?' delimiter
(5.6.2). (5.6.2).
News Article Format April 2001
2. It MUST reject any article whose Date header is stale (see 5.1). 2. It MUST reject any article whose Date header is stale (see 5.1).
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).
6. It SHOULD reject any article that has already been Canceled, 6. It SHOULD reject any article that has already been Canceled,
Superseded or Replaced by its author or by another trusted entity. Superseded or Replaced by its poster or by another trusted entity.
7. It MAY reject any article without an Approved header posted to 7. It MAY reject any article without an Approved header posted to
newsgroups known to be moderated (this practice is strongly newsgroups known to be moderated (this practice is strongly
recommended, but the information necessary to do it may not be recommended, but the information necessary to do it may not be
available to all agents). available to all agents).
News Article Format July 2001
8. It then passes articles which match mutually agreed criteria on to 8. It then passes articles which match mutually agreed criteria on to
neighboring relaying and serving agents. However, it SHOULD NOT neighboring relaying and serving agents. However, it SHOULD NOT
forward articles to sites whose path-identity is already in the forward articles to sites whose path-identity is already in the
Path header. Path header.
NOTE: It is usual for relaying and serving agents to restrict NOTE: It is usual for relaying and serving agents to restrict
the Newsgroups, Distributions, age and size of articles that the Newsgroups, Distributions, age and size of articles that
they wish to receive. they wish to receive.
If the article is rejected as being invalid, unwanted or unacceptable If the article is rejected as being invalid, unwanted or unacceptable
skipping to change at page 79, line 50 skipping to change at page 85, line 30
being sent to one location, relaying agents MUST NOT inform any other being sent to one location, relaying agents MUST NOT inform any other
external entity that an article was not relayed UNLESS that external external entity that an article was not relayed UNLESS that external
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 the Path and Xref Headers. article expect for headers designated as variant (4.2.2.3).
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-locater (usually in the form of a decimal number - see 6.16). article-locater (usually in the form of a decimal number - see 6.16).
News Article Format April 2001
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 '/' delimiter, and possibly prepend its own path-identity with a '/' delimiter, and possibly
also the verified path-identity of its source with a '?' delimiter also the verified path-identity of its source with a '?' delimiter
(5.6.2). (5.6.2).
2. It MUST reject any article whose Date header is stale (see 5.1). 2. It MUST reject any article whose Date header is stale (see 5.1).
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.
News Article Format July 2001
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 has already been Canceled, 5. It SHOULD reject any article that has already been Canceled,
Superseded or Replaced by its author or by another trusted entity, Superseded or Replaced by its poster or by another trusted entity,
and delete any of such article that it already has in its news and delete any of such article that it already has in its news
database. database.
6. It MUST reject any article without an Approved header posted to 6. It MUST reject any article without an Approved header posted to
any moderated newsgroup which it is configured to receive, and it any moderated newsgroup which it is configured to receive, and it
MAY reject such articles for any newsgroup it knows be moderated. MAY reject such articles for any newsgroup it knows be moderated.
7. It SHOULD generate a correct Xref header (6.16) for each article. 7. It SHOULD remove any variant headers (4.2.2.3) from each article
and MUST, in particular, remove any Xref header (6.16). It then
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.
Postings agents SHOULD ensure that proto-articles they create are Postings agents SHOULD ensure that proto-articles they create are
valid Netnews articles according to this standard and other valid Netnews articles according to this standard and other
skipping to change at page 81, line 4 skipping to change at page 86, line 44
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, Supersedes or Replaces attempt to post an article which cancels, Supersedes or Replaces
another article of which the poster is not the author. another article of which the poster is not the author.
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 plus additional ones. bound by all the posting agent's requirements plus additional ones.
Followup agents MUST create valid followups, in particular by Followup agents MUST create valid followups, in particular by
News Article Format April 2001
providing correctly adjusted forms of those headers described as providing correctly adjusted forms of those headers described as
inheritable (4.2.2.2), notably the Newgroups header (5.5), the inheritable (4.2.2.2), notably the Newsgroups header (5.5), the
Subject header (5.4) and the References header (6.10), and they Ought Subject header (5.4) and the References header (6.10), and they Ought
to observe appropriate quoting conventions in the body (see 4.3.2). to observe appropriate quoting conventions in the body (see 4.3.2).
Followup agents SHOULD initialize the Newsgroups header from the Followup agents SHOULD initialize the Newsgroups header from the
precursor's Followup-To header, if present, when preparing a precursor's Followup-To header, if present, when preparing a
followup; however posters MAY then change this before posting if they followup; however posters MAY then change this before posting if they
wish. wish.
Followup agents MUST NOT attempt to send email to any address ending Followup agents MUST NOT attempt to send email to any address ending
in ".invalid". Followup agents SHOULD NOT email copies of the in ".invalid". Followup agents SHOULD NOT email copies of the
followup to the author of the precursor unless this has been followup to the poster of the precursor unless this has been
explicitly requested by means of a Mail-Copies-To header (6.8), but explicitly requested by means of a Mail-Copies-To header (6.8), but
they SHOULD include a Posted-And-Mailed header (6.9) whenever a copy they SHOULD include a Posted-And-Mailed header (6.9) whenever a copy
is so emailed. is so emailed.
News Article Format July 2001
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
forwards them to further moderators. forwards them to further moderators.
A moderator processes an article, as submitted to any newsgroup that A moderator processes an article, as submitted to any newsgroup that
he moderates, as follows: he moderates, as follows:
1. He decides, on the basis of whatever moderation policy applies to 1. He decides, on the basis of whatever moderation policy applies to
skipping to change at page 81, line 52 skipping to change at page 87, line 36
If the article is rejected, then it fails for all the newsgroups If the article is rejected, then it fails for all the newsgroups
for which it was intended (in particular the moderator SHOULD NOT for which it was intended (in particular the moderator SHOULD NOT
resubmit the article, with a reduced Newsgroups header, to any resubmit the article, with a reduced Newsgroups header, to any
remaining groups, especially if this will break any authentication remaining groups, especially if this will break any authentication
checks present in the article). If the article is accepted, the checks present in the article). If the article is accepted, the
moderator proceeds with the following steps. moderator proceeds with the following steps.
2. The Date header SHOULD be retained, except that if it is stale 2. The Date header SHOULD be retained, except that if it is stale
(5.1) for reasons understood by the moderator (e.g. delays in the (5.1) for reasons understood by the moderator (e.g. delays in the
moderation process) he MAY substitute the current date (but must moderation process) he MAY substitute the current date (but must
then take responsibility for any loops that ensue). Any local then take responsibility for any loops that ensue). Any variant
headers (4.2.2.3) or variant headers (4.2.2.4) MUST be removed, headers (4.2.2.3) MUST be removed, except that a Path header MAY
except that a Path header MAY be truncated to only its pre- be truncated to only its pre-injection region (5.6.3). Any
injection region (5.6.3). Any Injector-Info header (6.19) or Injector-Info header (6.19) or Complaints-To header (6.20) MUST be
Complaints-To header (6.20) MUST be removed. removed.
[Note several differences from Kent Landfield's 'Moderator's Handbook'. [Note several differences from Kent Landfield's 'Moderator's Handbook'.
The original Date and Message-ID are retained. The original Date and Message-ID are retained.
Any Distribution header is retained. Any Distribution header is retained.
News Article Format April 2001
Any Sender header is retained. Any Sender header is retained.
Various other minor headers are retained (though the moderator MAY, of Various other minor headers are retained (though the moderator MAY, of
course, remove them. course, remove them.
] ]
3. He adds an Approved header (6.14) containing a mailbox identifying 3. He adds an Approved header (6.14) containing a mailbox identifying
himself (or, if the article already contains an Approved header himself (or, if the article already contains an Approved header
from another moderator, he adds that identifying information to from another moderator, he adds that identifying information to
it). He MAY also add further headers to authenticate that the it). He MAY also add further headers to authenticate that the
article has been properly approved. article has been properly approved.
[That can be strengthened when we have defined proper authentication [That can be strengthened when we have defined proper authentication
mechanisms.] mechanisms.]
4. If the Newsgroups header contains further moderated newsgroups for 4. If the Newsgroups header contains further moderated newsgroups for
which approval has not already been given, he forwards the article which approval has not already been given, he forwards the article
to the moderator of the leftmost such group (which, if this to the moderator of the leftmost such group (which, if this
standard has been followed correctly, will always be the group standard has been followed correctly, will always be the group
News Article Format July 2001
immediately to the right of the group(s) for which he is immediately to the right of the group(s) for which he is
responsible). However, he MUST NOT alter the order in which the responsible). However, he MUST NOT alter the order in which the
newsgroups are listed in the Newsgroups header. newsgroups are listed in the Newsgroups header.
5. Otherwise, he causes the article to be injected, having first 5. Otherwise, he causes the article to be injected, having first
observed all the duties of a posting agent (8.5). observed all the duties of a posting agent (8.5).
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
skipping to change at page 83, line 5 skipping to change at page 88, line 43
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
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.
News Article Format April 2001
There are two basic types of gateway, the Outgoing Gateway that There are two basic types of g