draft-ietf-usefor-article-08.txt   draft-ietf-usefor-article-09.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
August 2002 February 2003
News Article Format News Article Format
<draft-ietf-usefor-article-08.txt> <draft-ietf-usefor-article-09.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 August 2002 News Article Format February 2003
[Remarks enclosed in square brackets and aligned with the left margin, [Remarks enclosed in square brackets and aligned with the left margin,
such as this one, are not part of this draft, but are editorial notes to such as this one, are not part of this draft, but are editorial notes to
explain matters amongst ourselves, or to point out alternatives, or to explain matters amongst ourselves, or to point out alternatives, or to
assist the RFC Editor.] assist the RFC Editor.]
[In this draft, references to [NNTP] are to be replaced by [RFC 977], or [In this draft, references to [NNTP] are to be replaced by [RFC 977], or
else by references to the RFC arising from the series of drafts draft- else by references to the RFC arising from the series of drafts draft-
ietf-nntpext-base-*.txt, in the event that such RFC has been accepted at ietf-nntpext-base-*.txt, in the event that such RFC has been accepted at
the time this document is published. Likewise, if may be possible to the time this document is published. Likewise, if may be possible to
replace references to [RFC 2279] by references to [RFC 2279bis].] replace references to [RFC 2279] by references to [RFC 2279bis].]
[Please note that this Draft is subject to change as regards the extent
to which the charset UTF-8 is to be used in headers, or even whether it
is used at all. It is published at this time to give a snapshot of the
current state of the project.
It is also intended to split it into two documents, one the standard
proper and the other an informational document setting out best current
practice.]
Table of Contents Table of Contents
1. Introduction .................................................. 6 1. Introduction .................................................. 6
1.1. Basic Concepts ............................................ 6 1.1. Basic Concepts ............................................ 6
1.2. Objectives ................................................ 7 1.2. Objectives ................................................ 7
1.3. Historical Outline ........................................ 7 1.3. Historical Outline ........................................ 7
1.4. Transport ................................................. 7 1.4. Transport ................................................. 7
2. Definitions, Notations and Conventions ........................ 8 2. Definitions, Notations and Conventions ........................ 8
2.1. Definitions ............................................... 8 2.1. Definitions ............................................... 8
2.2. Textual Notations ......................................... 9 2.2. Textual Notations ......................................... 9
skipping to change at page 2, line 51 skipping to change at page 3, line 4
4.2.3. White Space and Continuations ......................... 20 4.2.3. White Space and Continuations ......................... 20
4.2.4. Comments .............................................. 21 4.2.4. Comments .............................................. 21
4.2.5. Header Properties ..................................... 22 4.2.5. Header Properties ..................................... 22
4.2.5.1. Experimental Headers .............................. 22 4.2.5.1. Experimental Headers .............................. 22
4.2.5.2. Inheritable Headers ............................... 22 4.2.5.2. Inheritable Headers ............................... 22
4.2.5.3. Variant Headers ................................... 23 4.2.5.3. Variant Headers ................................... 23
4.2.6. Undesirable Headers ................................... 23 4.2.6. Undesirable Headers ................................... 23
4.3. Body ...................................................... 23 4.3. Body ...................................................... 23
4.3.1. Body Format Issues .................................... 23 4.3.1. Body Format Issues .................................... 23
4.3.2. Body Conventions ...................................... 24 4.3.2. Body Conventions ...................................... 24
News Article Format February 2003
4.4. Characters and Character Sets ............................. 26 4.4. Characters and Character Sets ............................. 26
4.4.1. Character Sets within Article Headers ................. 26 4.4.1. Character Sets within Article Headers ................. 26
4.4.2. Character Sets within Article Bodies .................. 28 4.4.2. Character Sets within Article Bodies .................. 29
4.5. Size Limits ............................................... 28 4.4.3. The NEWS-8BIT-HEADERS IMAP Extension .................. 29
4.6. Example ................................................... 29 4.5. Size Limits ............................................... 30
5. Mandatory Headers ............................................. 30 4.6. Example ................................................... 31
5.1. Date ...................................................... 30 5. Mandatory Headers ............................................. 32
5.1.1. Examples .............................................. 31 5.1. Date ...................................................... 32
News Article Format August 2002 5.1.1. Examples .............................................. 33
5.2. From ...................................................... 33
5.2. From ...................................................... 31 5.2.1. Examples: ............................................ 34
5.2.1. Examples: ............................................ 32 5.3. Message-ID ................................................ 34
5.3. Message-ID ................................................ 32 5.4. Subject ................................................... 35
5.4. Subject ................................................... 33 5.4.1. Examples .............................................. 36
5.4.1. Examples .............................................. 34 5.5. Newsgroups ................................................ 36
5.5. Newsgroups ................................................ 35 5.5.1. Forbidden newsgroup-names ............................. 41
5.5.1. Forbidden newsgroup-names ............................. 39 5.5.2. Encoded newsgroup-names ............................... 41
5.5.2. Encoded newsgroup-names ............................... 40 5.6. Path ...................................................... 42
5.6. Path ...................................................... 41 5.6.1. Format ................................................ 42
5.6.1. Format ................................................ 41 5.6.2. Adding a path-identity to the Path-header ............. 43
5.6.2. Adding a path-identity to the Path-header ............. 42 5.6.3. The tail-entry ........................................ 44
5.6.3. The tail-entry ........................................ 43 5.6.4. Path-Delimiter Summary ................................ 45
5.6.4. Path-Delimiter Summary ................................ 43 5.6.5. Suggested Verification Methods ........................ 46
5.6.5. Suggested Verification Methods ........................ 44 5.6.6. Example ............................................... 46
5.6.6. Example ............................................... 45 6. Optional Headers .............................................. 47
6. Optional Headers .............................................. 45 6.1. Reply-To .................................................. 47
6.1. Reply-To .................................................. 46 6.1.1. Examples .............................................. 47
6.1.1. Examples .............................................. 46 6.2. Sender .................................................... 48
6.2. Sender .................................................... 46 6.3. Organization .............................................. 48
6.3. Organization .............................................. 46 6.4. Keywords .................................................. 48
6.4. Keywords .................................................. 47 6.5. Summary ................................................... 48
6.5. Summary ................................................... 47 6.6. Distribution .............................................. 49
6.6. Distribution .............................................. 47 6.7. Followup-To ............................................... 50
6.7. Followup-To ............................................... 48 6.8. Mail-Copies-To ............................................ 50
6.8. Mail-Copies-To ............................................ 49 6.9. Posted-And-Mailed ......................................... 52
6.9. Posted-And-Mailed ......................................... 50 6.10. References ............................................... 52
6.10. References ............................................... 51 6.10.1. Examples ............................................. 53
6.10.1. Examples ............................................. 51 6.11. Expires .................................................. 53
6.11. Expires .................................................. 51 6.12. Archive .................................................. 53
6.12. Archive .................................................. 52 6.13. Control .................................................. 54
6.13. Control .................................................. 52 6.14. Approved ................................................. 55
6.14. Approved ................................................. 53 6.15. Supersedes ............................................... 55
6.15. Supersedes ............................................... 54 6.16. Xref ..................................................... 56
6.16. Xref ..................................................... 55 6.17. Lines .................................................... 57
6.17. Lines .................................................... 55 6.18. User-Agent ............................................... 57
6.18. User-Agent ............................................... 56 6.18.1. Examples ............................................. 58
6.18.1. Examples ............................................. 56 6.19. Injector-Info ............................................ 58
6.19. Injector-Info ............................................ 57 6.19.1. Usage of Injector-Info-parameters .................... 60
6.19.1. Usage of Injector-Info-parameters .................... 58 6.19.1.1. The posting-host-parameter ....................... 61
6.19.1.1. The posting-host-parameter ....................... 59 6.19.1.2. The posting-account-parameter .................... 61
6.19.1.2. The posting-account-parameter .................... 59 6.19.1.3. The posting-sender-parameter ..................... 61
6.19.1.3. The posting-sender-parameter ..................... 60 6.19.1.4. The posting-logging-parameter .................... 61
6.19.1.4. The posting-logging-parameter .................... 60 6.19.1.5. The posting-date-parameter ....................... 62
6.19.1.5. The posting-date-parameter ....................... 60 6.19.2. Example .............................................. 62
6.19.2. Example .............................................. 60 News Article Format February 2003
6.20. Complaints-To ............................................ 60
6.21. MIME headers ............................................. 61
6.21.1. Syntax ............................................... 61
6.21.2. Content-Type ......................................... 61
6.21.2.1. Message/partial .................................. 62
6.21.2.2. Message/rfc822 ................................... 63
6.21.2.3. Message/external-body ............................ 63
6.21.2.4. Multipart types .................................. 63
6.21.3. Content-Transfer-Encoding ............................ 63
News Article Format August 2002
6.21.4. Character Sets ....................................... 65 6.20. Complaints-To ............................................ 62
6.21.5. Content Disposition .................................. 65 6.21. MIME headers ............................................. 62
6.21.6. Definition of some new Content-Types ................. 65 6.21.1. Syntax ............................................... 62
6.21.6.1. Application/news-transmission .................... 66 6.21.2. Content-Type ......................................... 63
6.21.6.2. Message/news obsoleted ........................... 67 6.21.2.1. Message/partial .................................. 64
6.22. Obsolete Headers ......................................... 67 6.21.2.2. Message/rfc822 ................................... 64
7. Control Messages .............................................. 67 6.21.2.3. Message/external-body ............................ 65
7.1. Digital Signature of Headers .............................. 68 6.21.2.4. Multipart types .................................. 65
7.2. Group Control Messages .................................... 68 6.21.3. Content-Transfer-Encoding ............................ 65
7.2.1. The 'newgroup' Control Message ........................ 68 6.21.4. Character Sets ....................................... 67
7.2.1.1. The Body of the 'newgroup' Control Message ........ 69 6.21.5. Content Disposition .................................. 67
7.2.1.2. Application/news-groupinfo ........................ 70 6.21.6. Definition of some new Content-Types ................. 67
7.2.1.3. Initial Articles .................................. 71 6.21.6.1. Application/news-transmission .................... 67
7.2.1.4. Example ........................................... 72 6.21.6.2. Message/news obsoleted ........................... 68
7.2.2. The 'rmgroup' Control Message ......................... 73 6.22. Obsolete Headers ......................................... 69
7.2.2.1. Example ........................................... 73 7. Control Messages .............................................. 69
7.2.3. The 'mvgroup' Control Message ......................... 73 7.1. Digital Signature of Headers .............................. 69
7.2.3.1. Example ........................................... 75 7.2. Group Control Messages .................................... 70
7.2.4. The 'checkgroups' Control Message ..................... 75 7.2.1. The 'newgroup' Control Message ........................ 70
7.2.4.1. Application/news-checkgroups ...................... 76 7.2.1.1. The Body of the 'newgroup' Control Message ........ 71
7.3. Cancel .................................................... 77 7.2.1.2. Application/news-groupinfo ........................ 71
7.4. Ihave, sendme ............................................. 78 7.2.1.3. Initial Articles .................................. 73
7.5. Obsolete control messages. ............................... 79 7.2.1.4. Example ........................................... 73
8. Duties of Various Agents ...................................... 79 7.2.2. The 'rmgroup' Control Message ......................... 74
8.1. General principles to be followed ......................... 80 7.2.2.1. Example ........................................... 74
8.2. Duties of an Injecting Agent .............................. 80 7.2.3. The 'mvgroup' Control Message ......................... 75
8.2.1. Proto-articles ........................................ 80 7.2.3.1. Example ........................................... 76
8.2.2. Procedure to be followed by Injecting Agents .......... 81 7.2.4. The 'checkgroups' Control Message ..................... 77
8.3. Duties of a Relaying Agent ................................ 83 7.2.4.1. Application/news-checkgroups ...................... 78
8.4. Duties of a Serving Agent ................................. 84 7.3. Cancel .................................................... 79
8.5. Duties of a Posting Agent ................................. 85 7.4. Ihave, sendme ............................................. 80
8.6. Duties of a Followup Agent ................................ 85 7.5. Obsolete control messages. ............................... 81
8.7. Duties of a Moderator ..................................... 86 8. Duties of Various Agents ...................................... 81
8.8. Duties of a Gateway ....................................... 87 8.1. General principles to be followed ......................... 81
8.8.1. Duties of an Outgoing Gateway ......................... 88 8.2. Duties of an Injecting Agent .............................. 82
8.8.2. Duties of an Incoming Gateway ......................... 90 8.2.1. Proto-articles ........................................ 82
8.8.3. Example ............................................... 92 8.2.2. Procedure to be followed by Injecting Agents .......... 83
9. Security and Related Considerations ........................... 93 8.3. Duties of a Relaying Agent ................................ 85
9.1. Leakage ................................................... 93 8.4. Duties of a Serving Agent ................................. 86
9.2. Attacks ................................................... 93 8.5. Duties of a Posting Agent ................................. 87
9.2.1. Denial of Service ..................................... 93 8.6. Duties of a Followup Agent ................................ 87
9.2.2. Compromise of System Integrity ........................ 94 8.7. Duties of a Moderator ..................................... 88
9.3. Liability ................................................. 96 8.8. Duties of a Gateway ....................................... 90
10. IANA Considerations .......................................... 96 8.8.1. Duties of an Outgoing Gateway ......................... 91
11. References ................................................... 96 8.8.1.1. Gatewaying into email ............................. 91
12. Acknowledgements ............................................. 99 8.8.2. Duties of an Incoming Gateway ......................... 93
13. Contact Address .............................................. 100 8.8.3. Example ............................................... 95
Appendix A.1 - A-News Article Format .............................. 100 9. Security and Related Considerations ........................... 96
Appendix A.2 - Early B-News Article Format ........................ 101 9.1. Leakage ................................................... 96
Appendix A.3 - Obsolete Headers ................................... 101 9.2. Attacks ................................................... 96
Appendix A.4 - Obsolete Control Messages .......................... 102 9.2.1. Denial of Service ..................................... 96
Appendix B - Collected Syntax ..................................... 103 9.2.2. Compromise of System Integrity ........................ 97
Appendix B.1 - Characters, Atoms and Folding ...................... 103 9.3. Liability ................................................. 99
Appendix B.2 - Basic Forms ........................................ 105 10. IANA Considerations .......................................... 99
News Article Format August 2002 News Article Format February 2003
Appendix B.3 - Headers ............................................ 106 11. References ................................................... 99
Appendix B.3.1 - Header outlines .................................. 106 12. Acknowledgements ............................................. 102
Appendix B.3.2 - Control-message outlines ......................... 108 13. Contact Address .............................................. 103
Appendix B.3.3 - Other header rules ............................... 109 Appendix A.1 - A-News Article Format .............................. 103
Appendix C - Notices .............................................. 110 Appendix A.2 - Early B-News Article Format ........................ 104
News Article Format August 2002 Appendix A.3 - Obsolete Headers ................................... 105
Appendix A.4 - Obsolete Control Messages .......................... 105
Appendix B - Collected Syntax ..................................... 106
Appendix B.1 - Characters, Atoms and Folding ...................... 106
Appendix B.2 - Basic Forms ........................................ 108
Appendix B.3 - Headers ............................................ 109
Appendix B.3.1 - Header outlines .................................. 109
Appendix B.3.2 - Control-message outlines ......................... 111
Appendix B.3.3 - Other header rules ............................... 112
Appendix C - Notices .............................................. 114
News Article Format February 2003
1. Introduction 1. Introduction
1.1. Basic Concepts 1.1. Basic Concepts
"Netnews" is a set of protocols for generating, storing and "Netnews" is a set of protocols for generating, storing and
retrieving news "articles" (which resemble email messages) and for retrieving news "articles" (which resemble email messages) and for
exchanging them amongst a readership which is potentially widely exchanging them amongst a readership which is potentially widely
distributed. It is organized around "newsgroups", with the distributed. It is organized around "newsgroups", with the
expectation that each reader will be able to see all articles posted expectation that each reader will be able to see all articles posted
skipping to change at page 7, line 4 skipping to change at page 7, 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 August 2002 News Article Format February 2003
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 format of The purpose of this present standard is to define the format of
articles and the protocols to be used for Netnews in general, and for articles and the protocols to be used for Netnews in general, and for
skipping to change at page 8, line 5 skipping to change at page 8, line 5
1.4. Transport 1.4. Transport
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.
News Article Format August 2002 News Article Format February 2003
2. Definitions, Notations and Conventions 2. Definitions, Notations and Conventions
2.1. Definitions 2.1. Definitions
An "article" is the unit of news, analogous to an [RFC 2822] An "article" is the unit of news, analogous to an [RFC 2822]
"message". A "proto-article" is one that has not yet been injected "message". A "proto-article" is one that has not yet been injected
into the news system. into the news system.
A "message identifier" (5.3) is a unique identifier for an article, A "message identifier" (5.3) is a unique identifier for an article,
skipping to change at page 9, line 5 skipping to change at page 9, line 5
A "reader" is the person or software reading news articles. A "reader" is the person or software reading news articles.
A "reading agent" is software which presents articles to a reader. A "reading agent" is software which presents articles to a reader.
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.
News Article Format August 2002 News Article Format February 2003
An (email) "address" is the mailbox [RFC 2822] (or more particularly An (email) "address" is the mailbox [RFC 2822] (or more particularly
the addr-spec within that mailbox) which directs the delivery of an the addr-spec within that mailbox) which directs the delivery of an
email to its intended recipient, who is said to "own" that address. email to its intended recipient, who is said to "own" that address.
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).
A "sender" is the person or software (usually, but not always, the A "sender" is the person or software (usually, but not always, the
skipping to change at page 10, line 5 skipping to change at page 10, line 5
and those using other formats. and those using other formats.
2.2. Textual Notations 2.2. Textual Notations
This standard contains explanatory NOTEs using the following format. This standard contains explanatory NOTEs using the following format.
These may be skipped by persons interested solely in the content of These may be skipped by persons interested solely in the content of
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.
News Article Format August 2002 News Article Format February 2003
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
cases where the wording is not entirely clear. cases where the wording is not entirely clear.
"US-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].
skipping to change at page 10, line 52 skipping to change at page 10, line 52
of an "Ought" is more a matter of sensible design or of social of an "Ought" is more a matter of sensible design or of social
pressure (whose effectiveness should not be underestimated, even pressure (whose effectiveness should not be underestimated, even
though it cannot be prescribed by this standard). though it cannot be prescribed by this standard).
NOTE: A requirement imposed on a relaying or serving agent NOTE: A requirement imposed on a relaying or serving agent
regarding some particular article should be understood as regarding some particular article should be understood as
applying only if that article is actually accepted for applying only if that article is actually accepted for
processing (since any agent may always reject any article processing (since any agent may always reject any article
entirely, for reasons of site policy). entirely, for reasons of site policy).
Wherever the context permits, use of the masculine includes the
feminine and use of the singular includes the plural, and vice versa.
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 ".example" is used in all sample domains and addresses. The domain ".example" is used in all sample domains and addresses. The
News Article Format February 2003
hierarchy "example.*" is also used as a sample hierarchy. hierarchy "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 August 2002
2.3. Relation To Email and MIME 2.3. Relation To Email 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 email message format. Insofar as news articles are a subset of the email message
format augmented by some new headers, this standard incorporates many format augmented by some new headers, this standard incorporates many
(though not all) of the provisions of [RFC 2822], with the aim of (though not all) of the provisions of [RFC 2822], with the aim of
enabling news articles to pass through email systems and vice versa, enabling news articles to pass through email 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
skipping to change at page 11, line 47 skipping to change at page 11, line 49
header =/ Date-header header =/ Date-header
are equivalent to the single rule are equivalent to the single rule
header = other-header / Date-header header = other-header / Date-header
2.4.2. Syntax adapted from Email and MIME 2.4.2. Syntax adapted from Email and MIME
Much of the syntax of Netnews Articles is based on the corresponding Much of the syntax of Netnews Articles is based on the corresponding
syntax defined in [RFC 2822] or in the MIME specifications [RFC 2045] syntax defined in [RFC 2822] or in the MIME specifications [RFC 2045]
et seq, which are deemed to have been incorporated into this standard et seq, which are 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 [RFC 2822] does not recognize anything other than from the fact that [RFC 2822] does not recognize anything beyond US-
US-ASCII characters, that it does not recognize the MIME headers [RFC ASCII characters, that it does not recognize the MIME headers [RFC
2045], and that it includes much syntax described as "obsolete" 2045], and that it includes much syntax described as "obsolete"
(which is excluded from this standard, as detailed below). (which is excluded from this standard, as detailed below).
NOTE: Netnews parsers historically have been much less NOTE: Netnews parsers historically have been much less
permissive than Email parsers, and this is reflected in the permissive than Email parsers, and this is reflected in the
modifications referred to, and in some further specific rules. modifications referred to, and in some further specific rules.
News Article Format February 2003
The following syntactic rules therefore supersede the corresponding The following syntactic rules therefore supersede the corresponding
rules given in [RFC 2822] and [RFC 2045], thus allowing UTF-8 rules given in [RFC 2822] and [RFC 2045], thus allowing UTF-8
characters [RFC 2279] to appear in certain contexts (the five rules characters [RFC 2279] to appear in certain contexts (the five rules
beginning with "strict-" reflect the corresponding original rules beginning with "strict-" reflect the corresponding original rules
from [RFC 2822]). from [RFC 2822]).
News Article Format August 2002 UTF8-2 = %xC2-DF UTF8-tail
UTF8-3 = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2(UTF8-tail) /
UTF8-xtra-2-head= %xC2-DF %xED %x80-9F UTF8-tail / %xEE-EF 2(UTF8-tail)
UTF8-xtra-3-head= %xE0 %xA0-BF / %xE1-EC %x80-BF / UTF8-4 = %xF0 %x90-BF 2(UTF8-tail) / %xF1-F7 3(UTF8-tail)
%xED %x80-9F / %xEE-EF %x80-BF UTF8-5 = %xF8 %x88-BF 3(UTF8-tail) / %xF9-FB 4(UTF8-tail)
UTF8-xtra-4-head= %xF0 %x90-BF / %xF1-F7 %x80-BF UTF8-6 = %xFC %x84-BF 4(UTF8-tail) / %xFD 5(UTF8-tail)
UTF8-xtra-5-head= %xF8 %x88-BF / %xF9-FB %x80-BF UTF8-tail = %x80-BF
UTF8-xtra-6-head= %xFC %x84-BF / %xFD %x80-BF UTF8-xtra-char = UTF8-2 / UTF8-3 / UTF8-4 / UTF8-5 / UTF8-6
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 )
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 DEL %d42-91 / ; "\" and DEL
%d93-126 / %d93-126 /
UTF8-xtra-char UTF8-xtra-char
qtext = NO-WS-CTL / ; all of <text> except qtext = NO-WS-CTL / ; all of <text> except
skipping to change at page 12, line 59 skipping to change at page 13, line 4
DQUOTE [CFWS] DQUOTE [CFWS]
unstructured = 1*( [FWS] utext ) [FWS] unstructured = 1*( [FWS] utext ) [FWS]
The syntax for UTF8-xtra-char excludes those redundant sequences of The syntax for UTF8-xtra-char excludes those redundant sequences of
octets which cannot occur in UTF-8, as defined by [RFC 2279], either octets which cannot occur in UTF-8, as defined by [RFC 2279], either
because they would not be the shortest possible encodings of some UCS because they would not be the shortest possible encodings of some UCS
character [ISO/IEC 10646], or they would represent one of the character [ISO/IEC 10646], or they would represent one of the
characters D800 through DFFF, disallowed in UCS because of their characters D800 through DFFF, disallowed in UCS because of their
surrogate use in the UTF-16 encoding. These sequences MUST NOT be surrogate use in the UTF-16 encoding. These sequences MUST NOT be
generated by posting agents. Where they occur inadvertently, they generated by posting agents. Where they occur inadvertently, they
News Article Format February 2003
SHOULD be passed on untouched by other agents, but attempts to SHOULD be passed on untouched by other agents, but attempts to
interpret them as malformed UTF-8 MUST NOT be made. However, if there interpret them as malformed UTF-8 MUST NOT be made. However, if there
News Article Format August 2002
is reason to suppose they are representations of some other character is reason to suppose they are representations of some other character
set they MAY, as suggested in section 4.4.1, be interpreted as such. set they MAY, as suggested in section 4.4.1, be interpreted as such.
The syntax also includes, for completeness, the cases UTF8-5 and
UTF8-6 which cannot, in fact, arise in [UNICODE 3.2] (though they
might conceivably arise in some future extension).
Observe, in contradistinction to [RFC 2822], that an unstructured Observe, in contradistinction to [RFC 2822], that an unstructured
header MUST contain at least one non-whitespace character (see also header MUST contain at least one non-whitespace character (see also
remarks about empty headers in 4.2.6). remarks about empty headers in 4.2.6).
Wherever in this standard the syntax is stated to be taken from [RFC Wherever in this standard the syntax is stated to be taken from [RFC
2822], it is to be understood as the syntax defined by [RFC 2822] 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 [RFC 2822]. 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
skipping to change at page 14, line 4 skipping to change at page 14, line 4
"@" / "\" / "@" / "\" /
"," / "." / "," / "." /
DQUOTE DQUOTE
WSP = SP / HTAB ; whitespace characters WSP = SP / HTAB ; whitespace characters
FWS = ([*WSP CRLF] 1*WSP); folding whitespace FWS = ([*WSP CRLF] 1*WSP); folding whitespace
ccontent = ctext / quoted-pair / comment ccontent = ctext / quoted-pair / comment
comment = "(" *([FWS] ccontent) [FWS] ")" comment = "(" *([FWS] ccontent) [FWS] ")"
CFWS = *([FWS] comment) ( ([FWS] comment) / FWS ) CFWS = *([FWS] comment) ( ([FWS] comment) / FWS )
DQUOTE = %d34 ; quote mark DQUOTE = %d34 ; quote mark
quoted-pair = "\" text quoted-pair = "\" text
News Article Format August 2002 News Article Format February 2003
atext = ALPHA / DIGIT / atext = ALPHA / DIGIT /
"!" / "#" / ; Any US-ASCII character except "!" / "#" / ; Any US-ASCII character except
"$" / "%" / ; controls, SP, and specials. "$" / "%" / ; controls, SP, and specials.
"&" / "'" / ; Used for atoms "&" / "'" / ; Used for atoms
"*" / "+" / "*" / "+" /
"-" / "/" / "-" / "/" /
"=" / "?" / "=" / "?" /
"^" / "_" / "^" / "_" /
"`" / "{" / "`" / "{" /
skipping to change at page 15, line 5 skipping to change at page 15, line 5
the two quote characters, nor the "\" which introduces any quoted- the two quote characters, nor the "\" which introduces any quoted-
pair. pair.
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.
News Article Format August 2002 News Article Format February 2003
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
appear in articles as transmitted MUST be the English-derived ones appear in articles as transmitted MUST be the English-derived ones
defined in this standard. defined in this 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-
skipping to change at page 16, line 4 skipping to change at page 16, line 4
3.2. Transitional Arrangements 3.2. Transitional Arrangements
An important distinction must be made between serving and relaying An important distinction must be made between serving and relaying
agents, which are responsible for the distribution and storage of agents, which are responsible for the distribution and storage of
news articles, and user agents, which are responsible for news articles, and user agents, which are responsible for
interactions with users. It is important that the former should be interactions with users. It is important that the former should be
upgraded to conform to this standard as soon as possible to provide upgraded to conform to this standard as soon as possible to provide
the benefit of the enhanced facilities. Fortunately, the number of the benefit of the enhanced facilities. Fortunately, the number of
distinct implementations of such agents is rather small, at least so distinct implementations of such agents is rather small, at least so
far as the main "backbone" of Usenet is concerned, and many of the far as the main "backbone" of Usenet is concerned, and many of the
News Article Format August 2002 News Article Format February 2003
new features are already supported. Contrariwise, there are a great new 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.
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.
skipping to change at page 17, line 4 skipping to change at page 17, line 4
existing usage that complies with the previous standards, since existing usage that complies with the previous standards, since
US-ASCII is a strict subset of UTF-8. Insofar as newsgroup-names US-ASCII is a strict subset of UTF-8. Insofar as newsgroup-names
containing non-ASCII characters can now be expected to arise, containing non-ASCII characters can now be expected to arise,
some support from serving and relaying agents will be desirable, some support from serving and relaying agents will be desirable,
although it has been established that most current serving agents although it has been established that most current serving agents
can already cope with such names without modification (although can already cope with such names without modification (although
perhaps not in an ideal manner). Note that it is not necessary perhaps not in an ideal manner). Note that it is not necessary
for serving and relaying agents to understand all the characters for serving and relaying agents to understand all the characters
available in UTF-8, though it is desirable for them to be available in UTF-8, though it is desirable for them to be
displayable for diagnostic purposes via some escape mechanism displayable for diagnostic purposes via some escape mechanism
News Article Format August 2002 News Article Format February 2003
using, for example, the visible subset of US-ASCII. For users using, for example, the visible subset of US-ASCII.
expecting to use the more exotic possibilities available under o Users expecting to read headers containing non-ASCII characters
UTF-8, the remarks already made in connection with MIME will expressed in UTF-8 will need to acquire suitable reading agents
apply. (it is not anticipated that current reading agents will fail to
display such articles, but those non-ASCII characters will likely
appear in some illegible form). The same will be true for users
reading such headers in email on the far side of a news-to-email
gateway; in that case, it will be necessary for the gateway to be
upgraded (see 8.8.1.1).
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. For the benefit of older serving agents it is serving agents. For the benefit of older serving agents it is
therefore RECOMMENDED that it be followed shortly by a therefore RECOMMENDED that it be followed shortly by a
corresponding newgroup command and it MUST always be followed by corresponding newgroup command and it MUST always be followed by
a rmgroup command for the old group after a reasonable overlap a rmgroup command for the old group after a reasonable overlap
period. An implementation of the mvgroup command as an alias for period. An implementation of the mvgroup command as an alias for
the newgroup command would thus be minimally conforming. User the newgroup command would thus be minimally conforming. User
agents are unaffected. agents are unaffected.
o All the headers newly introduced by this standard can safely be o All the headers newly introduced by this standard can safely be
ignored by existing software, albeit with loss of the new ignored by existing software, albeit with loss of the new
skipping to change at page 17, line 47 skipping to change at page 17, line 52
However, the rule given above for header is incomplete. Further However, the rule given above for header is incomplete. Further
alternatives will be added incrementally as the various Netnews alternatives will be added incrementally as the various Netnews
headers are introduced in this standard (or in future extensions), headers are introduced in this standard (or in future extensions),
using the "=/" notation defined in [RFC 2234]. For example, a using the "=/" notation defined in [RFC 2234]. For example, a
typical USENET-header would be defined as follows: typical USENET-header would be defined as follows:
header =/ USENET-header header =/ USENET-header
USENET-header = "USENET" ":" SP USENET-content USENET-header = "USENET" ":" SP USENET-content
*( ";" ( USENET-parameter / *( ";" ( USENET-parameter /
other-parameter ) ) extension-parameter ) )
USENET-content = <syntax specific to that USENET-header> USENET-content = <syntax specific to that USENET-header>
USENET-parameter = <a parameter specific to that USENET-header> USENET-parameter = <a parameter specific to that USENET-header>
where the USENET-parameter, which MUST always be of the same where the USENET-parameter, which MUST always be of the same
syntactic form as an other-parameter (see below), is not provided in syntactic form as an extension-parameter (see below), is not provided
all headers, and even the other-parameter is omitted in some cases in all headers, and even the extension-parameter is omitted in some
cases (see 4.2.2). Observe that "USENET" is (and MUST be) of the cases cases (see 4.2.2). Observe that "USENET" is (and MUST be) of
syntactic form of a header-name. News Article Format February 2003
other-parameter = <a parameter not defined by this standard> the syntactic form of a header-name.
extension-parameter= <a parameter not defined by this standard>
parameter = attribute "=" value parameter = attribute "=" value
attribute = [CFWS] token [CFWS] attribute = [CFWS] token [CFWS]
News Article Format August 2002
x-token = "x-" token x-token = "x-" token
token = 1*<any (US-ASCII) CHAR except SP, CTLs, token = 1*<any (US-ASCII) CHAR except SP, CTLs,
or tspecials> or tspecials>
tspecials = "(" / ")" / "<" / ">" / "@" / tspecials = "(" / ")" / "<" / ">" / "@" /
"," / ";" / ":" / "\" / DQUOTE / "," / ";" / ":" / "\" / DQUOTE /
"/" / "[" / "]" / "?" / "=" "/" / "[" / "]" / "?" / "="
value = [CFWS] token [CFWS] / quoted-string value = [CFWS] token [CFWS] / quoted-string
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
skipping to change at page 18, line 55 skipping to change at page 19, line 4
4.2.1. Naming of Headers 4.2.1. Naming of Headers
Despite the restrictions on header-name syntax imposed by the Despite the restrictions on header-name syntax imposed by the
grammar, relaying and reading agents SHOULD tolerate header-names grammar, relaying 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 (":",
US-ASCII 58). US-ASCII 58).
Whilst relaying agents MUST accept, and pass on unaltered, any non- Whilst relaying agents MUST accept, and pass on unaltered, any non-
variant header whose header-name is syntactically correct, and variant header whose header-name is syntactically correct, and
reading agents MUST enable them to be displayed, at least optionally, reading agents MUST enable them to be displayed, at least optionally,
News Article Format February 2003
posting and injecting agents SHOULD NOT generate headers other than posting and injecting agents SHOULD NOT generate headers other than
o headers established by this standard or any extension to it; o headers established by this standard or any extension to it;
o those recognized by other IETF-established standards, notably the o those recognized by other IETF-established standards, notably the
Email standard [RFC 2822] and its extensions, excluding any Email standard [RFC 2822] and its extensions, excluding any
explicitly deprecated for Netnews (e.g. see section 9.2.1 for the explicitly deprecated for Netnews (e.g. see section 9.2.1 for the
News Article Format August 2002
deprecated Disposition-Notification-To-header); or, deprecated Disposition-Notification-To-header); or,
alternatively, those listed in some future IANA registry of alternatively, those listed in some future IANA registry of
recognized headers; recognized headers;
o experimental headers beginning with "X-" (as defined in 4.2.5.1); o experimental headers beginning with "X-" (as defined in 4.2.5.1);
o on a provisional basis only, headers related to new protocols o on a provisional basis only, headers related to new protocols
under development which are the subject of (or intended to be the under development which are the subject of (or intended to be the
subject of) some IETF-approved RFC (whether Informational, subject of) some IETF-approved RFC (whether Informational,
Experimental or Standards-Track). Experimental or Standards-Track).
However, software SHOULD NOT attempt to interpret headers not However, software SHOULD NOT attempt to interpret headers not
specifically intended to be meaningful in the Netnews environment. specifically intended to be meaningful in the Netnews environment.
skipping to change at page 19, line 28 skipping to change at page 19, line 33
convention, which posters and posting agents Ought to 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
given in the various rules defining headers in this standard are the given in the various rules defining headers in this standard are the
preferred forms for them. Relaying and reading agents MUST, however, preferred forms for them. Relaying and reading agents MUST, however,
tolerate articles not obeying this convention. tolerate articles not obeying this convention.
4.2.2. MIME-style Parameters 4.2.2. MIME-style Parameters
The possibility of allowing MIME-style parameters (whether header- A few header-specific MIME-style parameters are defined in this
specific ones or generic other-parameters) to appear in virtually all standard, but there is also provision for generic extension-
headers is provided mainly for the purpose of allowing future parameters to appear in most headers for the purpose of allowing
extensions to existing headers, since only a very few specific future extensions to those headers. Observe that such parameters do
parameters are defined in this standard. Observe that such parameters not, in general, occur in headers defined in other standards, except
do not, in general, occur in headers defined in other standards, for the MIME standards [RFC 2045] et seq. and their extensions.
except for the MIME standards [RFC 2045] et seq. and their
extensions.
Other-parameters (whether those defined elsewhere or experimental Extension-parameters, other than those using x-tokens, MUST NOT be
parameters whose attribute is an x-token) MAY be used, where the used unless they have first been defined in an IETF-approved RFC
syntax so allows, in any of the headers defined in this standard or (whether Informational, Experimental or Standards-Track) or, on a
its extensions except that, at present, they SHOULD NOT be used in provisional basis only, in relation to new protocols under
headers in widespread use prior to the introduction of this standard development which are the subject of (or intended to be the subject
(this restriction is likely to be removed in a future version of this of) some such IETF-approved RFC. They MUST ONLY be defined for use in
standard). Nevertheless, compliant software MUST accept such those headers where the syntax of this standard so allows. They
parameters where required by this standard (ignoring them if their SHOULD NOT, at present, be defined for use in headers in widespread
use prior to the introduction of this standard (this restriction is
likely to be removed in a future version of this standard).
Nevertheless, compliant software MUST accept such parameters wherever
syntactically allowed in this standard (ignoring them if their
meaning is unknown) and SHOULD accept (and ignore) them in all meaning is unknown) and SHOULD accept (and ignore) them in all
structured headers wherever defined. structured headers wherever defined.
[We could go further, and establish an IANA registry for these
parameters, preloaded with the ones already defined in this standard. A
good model for setting up such a registry is to be found in RFC 2183
(Content-Disposition).]
News Article Format February 2003
NOTE: The syntax does not permit other-parameters in NOTE: The syntax does not permit extension-parameters in
unstructured headers (where they are unnecessary) or in certain unstructured headers (where they are unnecessary) or in certain
headers (notably the From-, Reply-To-, Mail-Copies-To- and headers (notably the Date-, From-, Message-ID-, Reply-To-,
Complaints-To-headers) containing address-lists or mailbox-lists Sender-, Keywords-, Mail-Copies-To-, References-, Supersedes-
(so that agents can simply replace the header-name by "To" or and Complaints-To-headers) which are the same (or similar to)
"Cc" to obtain a header immediately suitable for sending Email, headers already existing in the Email standards.
and also so as to avoid some minor parsing problems with
<address>es).
Each header-specific MIME-style parameter introduced in this standard Each header-specific MIME-style parameter introduced in this standard
is described by specifying is described by specifying
(a) the token to be used in its attribute, and (a) the token to be used in its attribute, and
News Article Format August 2002
(b) the syntax rule(s) defining the object(s) permitted in its (b) the syntax rule(s) defining the object(s) permitted in its
value. value.
If a value object is not of the syntactic form of a token, it MUST If a value object is not of the syntactic form of a token, it MUST
(and otherwise MAY) be encapsulated in a quoted-string (see 2.4.3). (and otherwise MAY) be encapsulated in a quoted-string (see 2.4.3).
Observe that the syntax of a parameter also allows additional WSP, Observe that the syntax of a parameter also allows additional WSP,
folding and comments. folding and comments.
The semantics of a parameter is always to associate the token in its The semantics of a parameter is always to associate the token in its
attribute with the object represented by the token, or the semantic attribute with the object represented by the token, or the semantic
value (2.4.3) of the quoted-string, contained in its value. value (2.4.3) of the quoted-string, contained in its value.
skipping to change at page 20, line 50 skipping to change at page 21, line 4
FWS occurs at many places in the syntax (usually within a CFWS) in FWS occurs at many places in the syntax (usually within a CFWS) in
order to allow the inclusion of comments, whitespace and folding. The order to allow the inclusion of comments, whitespace and folding. The
syntax is in fact ambiguous insofar as it sometimes allows two syntax is in fact ambiguous insofar as it sometimes allows two
consecutive instantiations of FWS (as least one of which is always consecutive instantiations of FWS (as least one of which is always
optional), or of an optional FWS followed by an explicit CRLF. optional), or of an optional FWS followed by an explicit CRLF.
However, all such cases MUST be treated as if the optional However, all such cases MUST be treated as if the optional
instantiation (or one of them) had not been allowed. It is thus instantiation (or one of them) had not been allowed. It is thus
precluded that any line of a header should be made up of whitespace precluded that any line of a header should be made up of whitespace
characters and nothing else (for such a line might otherwise have characters and nothing else (for such a line might otherwise have
News Article Format February 2003
been interpreted by a non-compliant agent as the separator between been interpreted by a non-compliant agent as the separator between
the headers and the body of the article). the headers and the body of the article).
NOTE: This does not lead to semantic ambiguity because, unless NOTE: This does not lead to semantic ambiguity because, unless
specifically stated otherwise, the presence or absence of specifically stated otherwise, the presence or absence of
folding, a comment or additional WSP has no semantic meaning folding, a comment or additional WSP has no semantic meaning
and, in particular, it is a matter of indifference whether it and, in particular, it is a matter of indifference whether it
forms a part of the syntactic construct preceding it or the one forms a part of the syntactic construct preceding it or the one
following it. following it.
News Article Format August 2002
NOTE: It may be observed that the content part of every header NOTE: It may be observed that the content part of every header
begins and ends with an optional CFWS (or FWS in the case of a begins and ends with an optional CFWS (or FWS in the case of a
few headers). Moreover, every parameter also begins and ends few headers). Moreover, every parameter also begins and ends
with an optional CFWS. with an optional CFWS.
NOTE: Although contents are defined in such a way that folding NOTE: Although contents are defined in such a way that folding
can take place between many of the lexical tokens (and even can take place between many of the lexical tokens (and even
within some of them), folding should be limited to placing the within some of them), folding should be limited to placing the
CRLF at higher-level syntactic breaks, and should also avoid CRLF at higher-level syntactic breaks, and should also avoid
leaving trailing WSP on the preceding line. For instance, if a leaving trailing WSP on the preceding line. For instance, if a
skipping to change at page 21, line 50 skipping to change at page 22, line 5
in headers wherever the syntactic element CFWS occurs. They consist in headers wherever the syntactic element CFWS occurs. They consist
of characters enclosed in parentheses. Comments may be nested. of characters enclosed in parentheses. Comments may be nested.
NOTE: Although CFWS occurs wherever whitespace is allowed in NOTE: Although CFWS occurs wherever whitespace is allowed in
almost all headers, there are exceptions where only FWS is almost all headers, there are exceptions where only FWS is
permitted (hence folding but no comments). Notably, this happens permitted (hence folding but no comments). Notably, this happens
in the case of the Message-ID-, Newsgroups-, Distribution-, in the case of the Message-ID-, Newsgroups-, Distribution-,
Path- and Followup-To-headers, and within the Date-header except Path- and Followup-To-headers, and within the Date-header except
right at the end. right at the end.
News Article Format February 2003
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 a mailbox which contains no informational text, except at the end of a mailbox 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> .
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 mailbox it is. In all other indicating the name of the person whose mailbox 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.
News Article Format August 2002
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 content of the comment; the content parentheses are not part of the content of the comment; the content
is what is contained between the two parentheses. is what is contained between the two parentheses.
Since comments have not hitherto been permitted in news articles, Since comments have not hitherto been permitted in news articles,
except in a few specified places, posters and posting-agents SHOULD except in a few specified places, posters and posting-agents SHOULD
skipping to change at page 22, line 50 skipping to change at page 23, line 4
a requirement be envisaged, it is preferable to use a normal a requirement be envisaged, it is preferable to use a normal
header on the provisional basis set out in section 4.2.1. header on the provisional basis set out in section 4.2.1.
4.2.5.2. Inheritable Headers 4.2.5.2. Inheritable Headers
Subject only to the overriding ability of the poster to determine the Subject only to the overriding ability of the poster to determine the
contents of the headers in a proto-article, headers with the contents of the headers in a proto-article, headers with the
inheritable property MUST be copied by followup agents (perhaps with inheritable property MUST be copied by followup agents (perhaps with
some modification) into the followup article, and headers without some modification) into the followup article, and headers without
that property MUST NOT be so copied. Examples include: that property MUST NOT be so copied. Examples include:
News Article Format February 2003
o Newsgroups (5.5) - copied from the precursor, subject to any o Newsgroups (5.5) - copied from the precursor, subject to any
Followup-To-header. Followup-To-header.
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.
News Article Format August 2002
4.2.5.3. Variant Headers 4.2.5.3. Variant Headers
Headers with the variant property may differ between (or even be Headers with the variant property may differ between (or even be
completely absent from) copies of the same article as stored or completely absent from) copies of the same article as stored or
relayed throughout a Netnews system. The manner of the difference (or relayed throughout a Netnews system. The manner of the difference (or
absence) MUST be as specified in this (or any future) standard. absence) MUST be as specified in this (or any future) standard.
Typically, these headers are modified as articles are propagated, or Typically, these headers are modified as articles are propagated, or
they reflect the status of the article on a particular serving agent, they reflect the status of the article on a particular serving agent,
or cooperating group of such agents. The variant header MAY be placed or cooperating group of such agents. The variant header MAY be placed
anywhere within the headers (though placing it first is recommended). anywhere within the headers (though placing it first is recommended).
skipping to change at page 23, line 50 skipping to change at page 24, line 4
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
News Article Format February 2003
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 in this situation. traditionally been used in this situation.
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 and serving agents SHOULD treat the body of an However, relaying and serving agents SHOULD treat the body of an
News Article Format August 2002
article as an uninterpreted sequence of octets (except as mandated by article as an uninterpreted sequence of octets (except as mandated by
changes of CRLF representation and by control message processing, as changes of CRLF representation and by control message processing, as
in 7.2.4) and SHOULD avoid imposing constraints on it. See also in 7.2.4) and SHOULD avoid imposing constraints on it. See also
section 4.5. section 4.5.
Posters SHOULD avoid using control characters and escape sequences Posters SHOULD avoid using control characters and escape sequences
except for tab (US-ASCII 9), formfeed (US-ASCII 12) and, possibly, except for tab (US-ASCII 9), formfeed (US-ASCII 12) and, possibly,
backspace (US-ASCII 8). Tab signifies sufficient horizontal white backspace (US-ASCII 8). Tab signifies sufficient horizontal white
space to reach the next of a set of fixed positions; posters are space to reach the next of a set of fixed positions; posters are
warned that there is no standard set of positions, so tabs should be warned that there is no standard set of positions, so tabs should be
skipping to change at page 24, line 47 skipping to change at page 25, line 5
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.
The following conventions for quotations, attributions and The following conventions for quotations, attributions and
signatures, although not mandated by this standard, describe widely signatures, although not mandated by this standard, describe widely
used practices. They are documented here in order to establish their used practices. They are documented here in order to establish their
correct usage, and the use of the words "MUST", "SHOULD", etc. is to correct usage, and the use of the words "MUST", "SHOULD", etc. is to
be understood in that context. be understood in that context.
News Article Format February 2003
It is conventional for followup agents to enable the incorporation of It is conventional for followup agents to enable the incorporation of
the followed-up article (the "precursor") as a quotation. This SHOULD the followed-up article (the "precursor") as a quotation. This SHOULD
be done by prefacing each line of the quoted text (even if it is be done by prefacing each line of the quoted text (even if it is
empty) with the character ">" (or perhaps with "> " in the case of a empty) with the character ">" (or perhaps with "> " in the case of a
previously unquoted line). This will result in multiple levels of ">" previously unquoted line). This will result in multiple levels of ">"
when quoted content itself contains quoted content, and it will also when quoted content itself contains quoted content, and it will also
facilitate the automatic analysis of articles. facilitate the automatic analysis of 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
minimum necessary. However, followup agents Ought Not to attempt minimum necessary. However, followup agents Ought Not to attempt
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).
News Article Format August 2002
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 is intended to facilitate their following convention for such lines is intended to facilitate their
automatic recognition and processing by sophisticated reading agents. automatic recognition and processing by sophisticated reading agents.
The attribution SHOULD contain the name and/or the email address of The attribution SHOULD contain the name and/or the email address of
the precursor's poster, as in the precursor's poster, as 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:
skipping to change at page 25, line 48 skipping to change at page 26, line 4
On comp.foo in <1234@bar.example> on 24 Dec 2001 16:40:20 +0000, On comp.foo in <1234@bar.example> on 24 Dec 2001 16:40:20 +0000,
Joe D. Bloggs <jdbloggs@bar.example> wrote: Joe D. Bloggs <jdbloggs@bar.example> wrote:
Am 24. Dez 2001 schrieb Helmut Schmidt <helmut@bar.example>: Am 24. Dez 2001 schrieb Helmut Schmidt <helmut@bar.example>:
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. Whenever a poster or posting agent giving his network addresses, etc. Whenever a poster or posting agent
appends such a signature to an article, it MUST be preceded with a appends such a signature to an article, it MUST be preceded with a
News Article Format February 2003
delimiter line containing (only) two hyphens (US-ASCII 45) followed delimiter line containing (only) two hyphens (US-ASCII 45) followed
by one SP (US-ASCII 32). The signature is considered to extend from by one SP (US-ASCII 32). The signature is considered to extend from
the last occurrence of that delimiter up to the end of the article the last occurrence of that delimiter up to the end of the article
(or up 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).
News Article Format August 2002
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 (US-ASCII uninterpreted sequences of octets, excluding the values 0 (US-ASCII
NUL) and 13 and 10 (US-ASCII CR and LF, which MUST ONLY appear in the NUL) and 13 and 10 (US-ASCII CR and LF, which MUST ONLY appear in the
combination CRLF which denotes a line separator). combination CRLF which denotes a line separator).
NOTE: this corresponds to the range of octets permitted for MIME NOTE: this corresponds to the range of octets permitted for MIME
"8bit data" [RFC 2045]. Thus raw binary data cannot be "8bit data" [RFC 2045]. Thus raw binary data cannot be
transmitted in an article body except by the use of a Content- transmitted in an article body except by the use of a Content-
Transfer-Encoding such as base64. Transfer-Encoding such as base64.
[Tentative paragraph to deal with IMAP]
This requirement includes the transmissiom paths between posting
agents, injecting agents, relaying agents, serving agents and reading
agents, but it does NOT include paths traversed by Netnews articles
that have been converted to Email (8.8.1.1). It SHOULD extend to
IMAP4 servers which provide access to Netnews (see the extension
described in section 4.4.3).
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.
skipping to change at page 26, line 41 skipping to change at page 26, line 58
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 [RFC 2279] or [ISO/IEC 10646], according to the UTF-8 encoding scheme [RFC 2279] or [ISO/IEC 10646],
and hence all the characters in Unicode [UNICODE 3.2] or in the and hence all the characters in Unicode [UNICODE 3.2] or in the
Universal Multiple-Octet Coded Character Set (UCS) [ISO/IEC 10646] Universal Multiple-Octet Coded Character Set (UCS) [ISO/IEC 10646]
(which is essentially a superset of Unicode and expected to remain (which is essentially identical to Unicode and expected to remain so)
so) are potentially available. However, processing all octets in the are potentially available. Although it will usually be unnecessary
same manner as US-ASCII characters should ensure correct behaviour in News Article Format February 2003
most situations.
to use language tagging within headers, the tagging facilities
provided in [UNICODE 3.2] (code points U+E0000 through U+E007F) MAY
be used for that purpose.
NOTE: UTF-8 is an encoding for the [ISO/IEC 10646] character set NOTE: UTF-8 is an encoding for the [ISO/IEC 10646] character set
(in both its 16 and 32 bit forms) with the property that any (in both its 16 and 32 bit forms) with the property that any
octet less than 128 immediately represents the corresponding octet less than 128 immediately represents the corresponding
US-ASCII character, thus ensuring upwards compatibility with US-ASCII character, thus ensuring upwards compatibility with
previous practice. Non-ASCII characters from Unicode are previous practice. Non-ASCII characters from Unicode are
represented by sequences of octets satisfying the syntax of a represented by sequences of octets satisfying the syntax of a
UTF8-xtra-char (2.4.2), which excludes certain octet sequences UTF8-xtra-char (2.4.2), which excludes certain octet sequences
not explicitly permitted by [RFC 2279]. Unicode includes all not explicitly permitted by [RFC 2279]. Unicode includes all
characters from the ISO-8859 series of characters sets [ISO characters from the ISO-8859 series of characters sets [ISO
8859] (which includes all Cyrillic, Greek and Arabic characters) 8859] (which includes all Cyrillic, Greek and Arabic characters)
together with the more elaborate characters used in Asian together with the more elaborate characters used in Asian
countries. See the NOTEs in the following section for the countries. See the NOTEs in the following section for the
appropriate treatment of Unicode characters by reading agents. appropriate treatment of Unicode characters by reading agents.
News Article Format August 2002
[The sentence mentioning [RFC 2279] could be simplified if [RFC 2279bis] [The sentence mentioning [RFC 2279] could be simplified if [RFC 2279bis]
has been accepted by the time this standard is published.] has been accepted by the time this standard is published.]
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 Unicode range. In particular, header-names and tokens MUST the full Unicode range. In particular, header-names and tokens MUST
be in 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
skipping to change at page 27, line 41 skipping to change at page 27, line 57
least for the main European languages, for which all the needed least for the main European languages, for which all the needed
composites are already available as single characters, it is composites are already available as single characters, it is
unlikely that posting agents will need to take any special steps unlikely that posting agents will need to take any special steps
to ensure normalization. to ensure normalization.
In the particular case of newsgroup-names (see 5.5) there are more In the particular case of newsgroup-names (see 5.5) there are more
stringent requirements regarding the normalization and other usages stringent requirements regarding the normalization and other usages
of Unicode. of Unicode.
Where the use of non-ASCII characters is permitted as above, they MAY Where the use of non-ASCII characters is permitted as above, they MAY
be encoded in UTF-8 and they MAY be encoded using the MIME mechanisms be encoded in UTF-8 or they MAY be encoded using the MIME mechanisms
defined in [RFC 2047] and [RFC 2231], but only in those contexts defined in [RFC 2047] and [RFC 2231]. For this purpose, all headers
explicitly mentioned in those documents (unstructured headers, defined in this standard are to be considered as "extension message
phrases and comments in the one, quoted-strings within parameters in News Article Format February 2003
the other).
header fields" for the purpose of section 5 of [RFC 2047] (insofar as
they are not already covered under the existing Email standards). The
effect of this is to permit the use of [RFC 2047] encodings within
any unstructured header, or within any comment or phrase permitted
within any structured header. Additionally, [RFC 2047] is
considered to incorporate the extension to allow language tags within
encoded-words described in [RFC 2231]. Likewise, the syntax for
parameter (see 4.1 above) is to be considered as replaced by the
revised syntax given in [RFC 2231], the effect of which is to allow
the use of parameter value continuations, character sets and language
information within the MIME-style parameters introduced in this
standard (4.2.2).
[We could go further and include that syntax explicitly in this
document.]
Exceptionally, where some other protocol, for example the
authentication protocol based on OpenPGP defined in [RFC 3156],
restricts some header to 7-bit data, the [RFC 2047] and [RFC 2231]
encodings MUST be used in preference to UTF-8 (see also the similar
restriction in 6.21.3).
[This presupposes that the extension to permit UTF-8 in body part
headers in 6.21.1 survives.]
Examples:
Organization: Technische =?iso-8859-1?Q?Universit=E4t_M=FCnchen?=
Approved: =?iso-8859-1?Q?Fran=E7ois_Faur=E9?= <ff@modsite.example>
(=?iso-8859-1?Q*fr?Mod=E9rateur_autoris=E9?=)
Archive: yes; filename*=iso-8859-1'es'ma=F1ana.txt
Reading agents MUST support the use of UTF-8, [RFC 2047] and [RFC
2231] in all those headers defined in this standard and in the Email
standards, at least to the extent of their ability to display the
characters presented to them. Moreover, since Netnews articles are
regularly emailed as well as posted, and the current Email standards
do not currently admit the use of full UTF-8 in headers, posting
agents MUST ensure that [RFC 2047] and [RFC 2231] are used in
preference to UTF-8 in those cases, at least within the emailed
version (see also 6.9 and 8.8.1.1).
Encoding by other means is not compliant with this standard. Encoding by other means is not compliant with this standard.
Nevertheless, encoding using other character sets (with no indication Nevertheless, encoding using other character sets (with no indication
of which one beyond the user's ability to guess based upon other of which one beyond the user's ability to guess based upon other
clues in the article, or custom within the newsgroup) has been in use clues in the article, or custom within the newsgroup) has been in use
in some hierarchies, and such usage may be expected to continue for in some hierarchies, and such usage may be expected to continue for
some period after the introduction of this standard. Reading agents some period after the introduction of this standard. Reading agents
MUST support the use of UTF-8, [RFC 2047] and [RFC 2231] in headers MAY, when such usage is detected, attempt to interpet the header
and they MAY, when it is detected that none of these has been used, according to whatever other character set can be deduced, or has been
attempt to interpet the header according to whatever other character configued as a default by the reader.
set can be deduced, or has been configued as a default by the reader.
NOTE: It is possible to determine, with a high degree of NOTE: It is possible to determine, with a high degree of
accuracy, when a given text containing octets with the 8th bit accuracy, when a given text containing octets with the 8th bit
set was not encoded using UTF-8, and using this test to recover set was not encoded using UTF-8, and using this test to recover
News Article Format August 2002
such non-compliant texts is therefore commended where no other such non-compliant texts is therefore commended where no other
harm could arise. harm could arise.
Exceptionally, Newsgroups-headers (5.5) MUST use UTF-8 in order to News Article Format February 2003
ensure that they appear in their canonical form (in any case, a
Newsgroups-header is not one of the acceptable contexts of [RFC The [RFC 2047] encoding is not available within headers which contain
2047]). Certain exceptions to this rule are provided (8.7 and 8.8.1) a newsgroup-name, notably Newsgroups-headers and Followup-To-headers,
for use when mailing to moderators and other gatewaying applications. because a newsgroup-name is neither a phrase nor a comment. Moreover
such headers MUST in any case use UTF-8 in order to ensure that
newsgroup-names appear in their canonical form. A special encoding
for newsgroup-names is provided in section 5.5.2 for use when mailing
to moderators and other gatewaying applications (8.7 and 8.8.1.1).
NOTE: The choice between UTF-8 and [RFC 2047] when posting NOTE: The choice between UTF-8 and [RFC 2047] when posting
depends on various factors. Some reading agents do not recogize depends on various factors. Some reading agents do not recogize
[RFC 2047], and some are incapable of decoding UTF-8 (though [RFC 2047], and some are incapable of decoding UTF-8 (though
there in an increasing tendency for modern reading agents to there in an increasing tendency for modern reading agents to
understand, or to be configurable to understand, both). Since understand, or to be configurable to understand, both). Since
headers encoded in UTF-8 are currently prohibited in Email, headers encoded in UTF-8 are currently prohibited in Email,
special consideration needs to be given to articles that are special consideration needs to be given to articles that are
both posted and mailed (6.9) or which are mailed to moderators both posted and mailed (6.9) or which are mailed to moderators
(see 8.2.2). Posters and implementors of posting agents need to (see 8.2.2). Posters and implementors of posting agents need to
skipping to change at page 28, line 35 skipping to change at page 29, line 35
use. use.
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
the US-ASCII characters, though they MUST display at least those. the US-ASCII characters, though they MUST display at least those.
NOTE: Observe that reading agents are not forbidden to "guess" NOTE: The use of non-ASCII characters in the absence of an
when confronted with unannounced non-ASCII characters, and in appropriate Content-Type-header is not compliant with this
particular it would be reasonable at least to test whether they standard. Nevertheless such usage has been seen in some
hierarchies, and it would be reasonable for reading agents to
make an informed "guess" when confronted with that situation,
and in particular it would be wise at least to test whether they
were in the form of valid UTF-8 (see also the suggestion for were in the form of valid UTF-8 (see also the suggestion for
such a test in 4.4.1). such a test in 4.4.1).
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. For able to present characters in all possible character sets. For
example, a reading agent might be able to present only the ISO- example, a reading agent might be able to present only the ISO-
8859-1 (Latin 1) characters [ISO 8859], in which case it Ought 8859-1 (Latin 1) characters [ISO 8859], in which case it Ought
to present undisplayable characters using some distinctive to present undisplayable characters using some distinctive
glyph, or by exhibiting a suitable warning. glyph, or by exhibiting a suitable warning.
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.4.3. The NEWS-8BIT-HEADERS IMAP Extension
[This section is highly tentative, and serves as a placeholder to
indicate that an IMAP extension will be needed in order to ensure
consistency with the present form of this draft. It shows the minimum
extension that seems to be necessary, and would require significant
News Article Format February 2003
further work for any final version.]
The current IMAP4 protocol [RFC 2060] forbids 8-bit characters in
headers (so as to conform with the previous Netnews standard [RFC
1036] amd with the current Email standards).
[That reference to RFC 2060 should be changed to refer to [RFC 2060bis]
if that has been accepted by the time this standard is published.]
Implementations of IMAP4 conforming to this extension MUST
1. In the case of Netnews messages only, accept 8-bit octets in
headers (part specifiers HEADER or MIME, or the header portion of
a MESSAGE/RFC822 part) and pass them on to the client unchanged in
any FETCH response;
2. Interpret all octets in such headers as being in the UTF-8
charset;
3. Include the capability NEWS-8BIT-HEADERS in any CAPABILITY
response.
NOTE: It is the responsibility of the client to interpret such
headers. Users who require to see them displayed correctly will
need to acquire clients with the necessary UTF-8 facilities.
The new capability NEWS-8BIT-HEADERS is to be registered with IANA.
[Memo: remember to update the IANA Considerations section.]
4.5. Size Limits 4.5. Size Limits
Posting agents SHOULD endeavour to keep all header lines, so far as Posting agents SHOULD endeavour to keep all header lines, so far as
is possible, within 79 characters by folding them at suitable places is possible, within 79 characters by folding them at suitable places
(see 4.2.3). However, posting agents MUST permit the poster to (see 4.2.3). However, posting agents MUST permit the poster to
include longer headers if he so insists, and compliant software MUST include longer headers if he so insists, and compliant software MUST
support headers of at least 998 octets. Likewise, injecting agents support headers of at least 998 octets. Likewise, injecting agents
SHOULD fold any headers generated automatically by themselves. SHOULD fold any headers generated automatically by themselves.
News Article Format August 2002
Relaying agents MUST NOT fold headers (i.e. they must pass on the Relaying agents MUST NOT fold headers (i.e. they must pass on the
folding as received). folding as received).
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
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.
News Article Format February 2003
NOTE: The limit of 998 octets is consistent with the NOTE: The limit of 998 octets is consistent with the
corresponding limit in [RFC 2822]. corresponding limit in [RFC 2822].
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
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
skipping to change at page 30, line 4 skipping to change at page 31, line 45
4.6. Example 4.6. Example
Here is a sample article: Here is a sample article:
Path: server.example/unknown.site2.example@site2.example/ Path: server.example/unknown.site2.example@site2.example/
relay.site.example/site.example/injector.site.example%jsmith relay.site.example/site.example/injector.site.example%jsmith
Newsgroups: example.announce,example.chat Newsgroups: example.announce,example.chat
Message-ID: <9urrt98y53@site1.example> Message-ID: <9urrt98y53@site1.example>
From: Ann Example <a.example@site1.example> From: Ann Example <a.example@site1.example>
Subject: Announcing a new sample article. Subject: Announcing a new sample article.
News Article Format August 2002
Date: Wed, 27 Mar 2002 12:12:50 +0300 Date: Wed, 27 Mar 2002 12:12:50 +0300
Approved: example.announce moderator <jsmith@site.example> Approved: example.announce moderator <jsmith@site.example>
Followup-To: example.chat Followup-To: example.chat
Reply-To: Ann Example <a.example+replies@site1.example> Reply-To: Ann Example <a.example+replies@site1.example>
Expires: Mon, 22 Apr 2002 12:12:50 +0300 Expires: Mon, 22 Apr 2002 12:12:50 +0300
Organization: Site1, The Number one site for examples. Organization: Site1, The Number one site for examples.
User-Agent: ExampleNews/3.14 (Unix) User-Agent: ExampleNews/3.14 (Unix)
Keywords: example, announcement, standards, RFC 1036, Usefor Keywords: example, announcement, standards, RFC 1036, Usefor
Summary: The URL for the next standard. Summary: The URL for the next standard.
Injector-Info: injector.site.example; posting-host=du003.site.example Injector-Info: injector.site.example; posting-host=du003.site.example
Complaints-To: abuse@site.example Complaints-To: abuse@site.example
Just a quick announcement that a new standard example article has Just a quick announcement that a new standard example article has
been released; it is in the new USEFOR standard obtainable from been released; it is in the new USEFOR standard obtainable from
ftp.ietf.org. ftp.ietf.org.
News Article Format February 2003
Ann. Ann.
-- --
Ann Example <a.example@site1.example> Sample Poster to the Stars Ann Example <a.example@site1.example> Sample Poster to the Stars
"The opinions in this article are bloody good ones" - J. Clarke. "The opinions in this article are bloody good ones" - J. Clarke.
[The RFC Editor is invited to change the above Date and Expires headers [The RFC Editor is invited to change the above Date and Expires headers
to match the actual publication dates and to insert its correct URL.] to match the actual publication dates and to insert its correct URL.]
5. Mandatory Headers 5. Mandatory Headers
skipping to change at page 30, line 52 skipping to change at page 32, line 37
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 [RFC 2822], subject to the following revised definition of zone. in [RFC 2822], subject to the following revised definition of zone.
header =/ Date-header header =/ Date-header
Date-header = "Date" ":" SP Date-content Date-header = "Date" ":" SP Date-content
*( ";" other-parameter )
Date-content = date-time Date-content = date-time
zone = (( "+" / "-" ) 4DIGIT) / "UT" / "GMT" zone = (( "+" / "-" ) 4DIGIT) / "UT" / "GMT"
The forms "UT" and "GMT" (indicating universal time) are to be The forms "UT" and "GMT" (indicating universal time) are to be
regarded as obsolete synonyms for "+0000". They MUST be be accepted, regarded as obsolete synonyms for "+0000". They MUST be accepted, and
and passed on unchanged, by all agents, but they MUST NOT be passed on unchanged, by all agents, but they MUST NOT be generated as
generated as part of new articles by posting and injecting agents. part of new articles by posting and injecting agents. The date-time
MUST be semantically valid as required by [RFC 2822]. Although
News Article Format August 2002 folding white space is permitted throughout the date-time syntax, it
is RECOMMENDED that a single space be used in each place that FWS
The date-time MUST be semantically valid as required by [RFC 2822]. appears (whether it is required or optional).
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 NOTE: A convention that is sometimes followed is to add a
comment, after the date-time, containing the time zone in comment, after the date-time, containing the time zone in
human-readable form, but many of the abbreviations commonly used human-readable form, but many of the abbreviations commonly used
for this purpose are ambiguous. The value given by the <zone> is for this purpose are ambiguous. The value given by the <zone> is
the only definitive form. 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 "stale" articles stream, relaying and serving agents MUST refuse "stale" articles
whose Date-header predates the earliest articles of which they whose Date-header predates the earliest articles of which they
normally keep record, or which is more than 24 hours into the future normally keep record, or which is more than 24 hours into the future
(though they MAY use a margin less than that 24 hours). Relaying (though they MAY use a margin less than that 24 hours). Relaying
agents MUST NOT modify the Date-header in transit. agents MUST NOT modify the Date-header in transit.
News Article Format February 2003
5.1.1. Examples 5.1.1. Examples
Date: Sat, 26 May 2001 11:13:00 -0500 (EST) Date: Sat, 26 May 2001 11:13:00 -0500 (EST)
Date: 26 May 2001 16:13 +0000 Date: 26 May 2001 16:13 +0000
Date: 26 May 2001 16:13 GMT (Obsolete) Date: 26 May 2001 16:13 GMT (Obsolete)
5.2. From 5.2. From
The From-header contains the email address(es), possibly including The From-header contains the email address(es), possibly including
the full name(s), of the article's poster(s). The content syntax the full name(s), of the article's poster(s). The content syntax
skipping to change at page 32, line 4 skipping to change at page 33, line 43
Observe that there is no provision for parameters in this Observe that there is no provision for parameters in this
header, or in other headers containing addresses likely to be header, or in other headers containing addresses likely to be
used for sending email (see 4.2.2). used for sending email (see 4.2.2).
Each mailbox in the From-content SHOULD be a valid address, belonging Each 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 address, whatever reason, the poster does not wish to include such an address,
the From-content SHOULD then be an address which ends in the top the From-content SHOULD then be an address which ends in the top
News Article Format August 2002
level domain of ".invalid" [RFC 2606]. level domain of ".invalid" [RFC 2606].
NOTE: Since such addresses ending in ".invalid" are NOTE: Since such addresses ending in ".invalid" are
undeliverable, user agents Ought to warn any user attempting to undeliverable, user agents Ought to warn any user attempting to
reply to them and Ought Not, in any case, to attempt to deliver reply to them and Ought Not, in any case, to attempt to deliver
to them (since that would be pointless anyway). Whether or not to them (since that would be pointless anyway). Whether or not
a valid address can subsequently be extracted from such an a valid address can subsequently be extracted from such an
address falls outside the scope of this standard (obviously, address falls outside the scope of this standard (obviously,
posters wishing to disguise their address need to do more than posters wishing to disguise their address need to do more than
just add ".invalid" to it). just add ".invalid" to it).
Be warned, however, that some injecting agents which are unable Be warned, however, that some injecting agents which are unable
to detect that the address belongs to the poster may choose to to detect that the address belongs to the poster may choose to
insert a Sender-header (but see 8.2.2) or some entry in an insert a Sender-header (but see 8.2.2) or some entry in an
Injector-Info-header (6.19) which discloses some valid address Injector-Info-header (6.19) which discloses some valid address
for the poster. for the poster.
News Article Format February 2003
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)
skipping to change at page 32, line 50 skipping to change at page 34, line 34
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 [RFC article. The content syntax makes use of syntax defined in [RFC
2822], subject to the following revised definitions of msg-id, no- 2822], subject to the following revised definitions of msg-id, no-
fold-quote and no-fold-literal. fold-quote and no-fold-literal.
header =/ Message-ID-header header =/ Message-ID-header
Message-ID-header = "Message-ID" ":" SP Message-ID-content Message-ID-header = "Message-ID" ":" SP Message-ID-content
*( ";" other-parameter )
Message-ID-content = [FWS] msg-id [FWS] Message-ID-content = [FWS] msg-id [FWS]
msg-id = "<" id-left "@" id-right ">" msg-id = "<" id-left "@" id-right ">"
id-left = dot-atom-text / no-fold-quote id-left = dot-atom-text / no-fold-quote
id-right = dot-atom-text / no-fold-literal id-right = dot-atom-text / no-fold-literal
no-fold-quote = DQUOTE no-fold-quote = DQUOTE
*( strict-qtext / "\\" / "\" DQUOTE ) *( strict-qtext / "\\" / "\" DQUOTE )
qspecial qspecial
*( strict-qtext / "\\" / "\" DQUOTE ) *( strict-qtext / "\\" / "\" DQUOTE )
DQUOTE DQUOTE
News Article Format August 2002
qspecial = "(" / ")" / ; same as specials except qspecial = "(" / ")" / ; same as specials except
"<" / ">" / ; "\" and DQUOTE quoted "<" / ">" / ; "\" and DQUOTE quoted
"[" / "]" / "[" / "]" /
":" / ";" / ":" / ";" /
"@" / "\\" / "@" / "\\" /
"," / "." / "," / "." /
"\" DQUOTE "\" DQUOTE
no-fold-literal = "[" *( dtext / "\[" / "\]" / "\\" ) "]" no-fold-literal = "[" *( dtext / "\[" / "\]" / "\\" ) "]"
The msg-id MUST NOT be more than 250 octets in length. The msg-id MUST NOT be more than 250 octets in length.
NOTE: Observe that, in contrast to the corresponding header in NOTE: Observe that, in contrast to the corresponding header in
[RFC 2822], the syntax does not allow comments within the [RFC 2822], the syntax does not allow comments within the
Message-ID-header; this is to simplify processing by relaying Message-ID-header; this is to simplify processing by relaying
and serving agents and to ensure interoperability with existing and serving agents and to ensure interoperability with existing
implementations. implementations.
News Article Format February 2003
The restriction to strict-qtext ensures that no UTF8-xtra-char The restriction to strict-qtext ensures that no UTF8-xtra-char
can appear. Msg-ids as defined here are a "normalized" subset of can appear. Msg-ids as defined here are a "normalized" subset of
those defined by [RFC 2822], ensuring that no string of those defined by [RFC 2822], ensuring that no string of
characters is quoted unless strictly necessary (it must contain characters is quoted unless strictly necessary (it must contain
at least one qspecial) and no single character is prefixed by a at least one qspecial) and no single character is prefixed by a
"\" in the form of a quoted-pair unless strictly necessary, and "\" in the form of a quoted-pair unless strictly necessary, and
moreover there is no possibility for WSP to occur, whether moreover there is no possibility for WSP to occur, whether
quoted or not. The length restriction ensures that systems which quoted or not. The length restriction ensures that systems which
accept message identifiers as a parameter when retrieving an accept message identifiers as a parameter when retrieving an
article (e.g. [NNTP]) can rely on a bounded length. Observe that article (e.g. [NNTP]) can rely on a bounded length. Observe that
msg-id includes the '<' and '>'. msg-id includes the '<' and '>'.
An agent generating an article's message identifier MUST ensure that An agent generating an article's message identifier MUST ensure that
it is unique (as also required in [RFC 2822]) and that it is chosen it is unique (as also required in [RFC 2822]) and that it is chosen
in such a way that it will NEVER recur in either Netnews or Email. in such a way that it will NEVER be applied to any other Netnews
Moreover, even though commonly derived from the domain name of the article or Email message. However, an article emailed (without
originating site (and domain names are case-insensitive), a message encapsulation) to a moderator (8.2.2 and 8.7) or gatewayed into some
identifier MUST NOT be altered in any way during transport, or when other medium (8.8.1) SHOULD retain the same message identifier
copied (as into a References-header), and thus a simple (case- throughout its travels so long as it remains recognizably the same
sensitive) comparison of octets will always suffice to recognize that article.
same message identifier wherever it subsequently reappears.
Even though commonly derived from the domain name of the originating
site (and domain names are case-insensitive), a message identifier
MUST NOT be altered in any way during transport, or when copied (as
into a References-header), and thus a simple (case-sensitive)
comparison of octets will always suffice to recognize that same
message identifier wherever it subsequently reappears.
NOTE: These requirements are to be contrasted with those of the NOTE: These requirements are to be contrasted with those of the
un-normalized msg-ids defined by [RFC 2822], which may perfectly un-normalized msg-ids defined by [RFC 2822], which may perfectly
legitimately become normalized (or vice versa) during transport legitimately become normalized (or vice versa) during transport
or copying in email systems. or copying in email systems.
NOTE: Some old software may treat message identifiers that NOTE: Some old software may treat message identifiers that
differ only in case within their id-right part as equivalent, differ only in case within their id-right part as equivalent,
and implementors of agents that generate message identifiers and implementors of agents that generate message identifiers
should be aware of this. should be aware of this.
5.4. Subject 5.4. Subject
The Subject-header contains a short string identifying the topic of The Subject-header contains a short string identifying the topic of
the message. This is an inheritable header (4.2.5.2) to be copied the message. This is an inheritable header (4.2.5.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
News Article Format August 2002
Subject-content SHOULD then default to the string "Re: " (a "back Subject-content SHOULD then default to the string "Re: " (a "back
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 that pure-subject MUST be stripped. precursor. Any leading "Re: " in that pure-subject MUST be stripped.
header =/ Subject-header header =/ Subject-header
Subject-header = "Subject" ":" SP Subject-content Subject-header = "Subject" ":" SP Subject-content
Subject-content = [ [FWS] back-reference ] pure-subject Subject-content = [ [FWS] back-reference ] pure-subject
pure-subject = unstructured pure-subject = unstructured
back-reference = %x52.65.3A.20 back-reference = %x52.65.3A.20
; which is a case-sensitive "Re: " ; which is a case-sensitive "Re: "
News Article Format February 2003
The pure-subject MUST NOT begin with "Re: ". The pure-subject MUST NOT begin with "Re: ".
NOTE: The syntax of unstructured differs from that prescribed in NOTE: The syntax of unstructured differs from that prescribed in
[RFC 2822], so ensuring that the Subject-content is not [RFC 2822], so ensuring that the Subject-content is not
permitted to be completely empty, or to consist of WSP only (see permitted to be completely empty, or to consist of WSP only (see
remarks in 4.2.6 concerning undesirable headers). remarks in 4.2.6 concerning undesirable headers).
Followup agents MAY remove strings that are known to be used Followup agents MAY remove strings that are known to be used
erroneously as back-reference (such as "Re(2): ", "Re:", "RE: ", or erroneously as back-reference (such as "Re(2): ", "Re:", "RE: ", or
skipping to change at page 35, line 4 skipping to change at page 36, line 49
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 can speaking posters to signal a change in subject matter. Software can
always recognize such changes from the References-header. always recognize such changes from the References-header.
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)
News Article Format August 2002
Subject: Re: Godwin's law (was: Film at 11) Subject: Re: Godwin's law (was: Film at 11)
Subject: Re: Godwin's law Subject: Re: Godwin's law
5.5. Newsgroups 5.5. Newsgroups
The Newsgroups-header's content specifies the newsgroup(s) in which The Newsgroups-header's content specifies the newsgroup(s) in which
the article is intended to appear. It is an inheritable header the article is intended to appear. It is an inheritable header
(4.2.5.2) which then becomes the default Newsgroups-header of any (4.2.5.2) which then becomes the default Newsgroups-header of any
followup, unless a Followup-To-header is present to prescribe followup, unless a Followup-To-header is present to prescribe
otherwise. Articles MUST NOT be passed between relaying agents or to otherwise. Articles MUST NOT be passed between relaying agents or to
serving agents unless the sending agent has been configured to supply serving agents unless the sending agent has been configured to supply
News Article Format February 2003
and the receiving agent to receive at least one of the newsgroup- and the receiving agent to receive at least one of the newsgroup-
names in the Newsgroups-header. names in the Newsgroups-header.
In order to allow newsgroup-names containing Non-ASCII characters, In order to allow newsgroup-names containing Non-ASCII characters,
this section relies heavily on the provisions of the Unicode this section relies heavily on the provisions of the Unicode
Standard. All references to "Unicode" mean [UNICODE 3.2] or any Standard. All references to "Unicode" mean [UNICODE 3.2] or any
standard that supersedes it. That document contains guarantees of standard that supersedes it. That document contains guarantees of
strict future upwards compatibility (e.g. no character will be strict future upwards compatibility (e.g. no character will be
removed or change classification). Implementors should be aware that removed or change classification). Implementors should be aware that
currently unassigned code points (Unicode category Cn) may become currently unassigned code points (Unicode category Cn) may become
valid characters in future versions of Unicode. Since the poster of valid characters in future versions of Unicode. Since the poster of
an article might have access to a newer version of that standard, an article might have access to a newer version of that standard,
relaying and serving agents MUST accept such characters, but posting relaying and serving agents MUST accept such characters, but posting
agents (and indeed all agents) MUST NOT generate them (though they agents (and indeed all agents) MUST NOT generate them (though they
might well follow up to newsgroup-names containing them). might well follow up to newsgroup-names containing them).
header =/ Newsgroups-header header =/ Newsgroups-header
Newsgroups-header = "Newsgroups" ":" SP Newsgroups-content Newsgroups-header = "Newsgroups" ":" SP Newsgroups-content
*( ";" other-parameter ) *( ";" extension-parameter )
Newsgroups-content = [FWS] newsgroup-name Newsgroups-content = [FWS] newsgroup-name
*( [FWS] ng-delim [FWS] newsgroup-name ) *( [FWS] ng-delim [FWS] newsgroup-name )
[FWS] [FWS]
newsgroup-name = component *( "." component ) newsgroup-name = component *( "." component )
component = 1*component-grapheme component = 1*component-grapheme
ng-delim = "," ng-delim = ","
component-grapheme = combiner-base *combiner-mark component-grapheme = combiner-base *combiner-mark
combiner-base = combiner-ASCII / combiner-extended combiner-base = combiner-ASCII / combiner-extended
combiner-ASCII = DIGIT / ALPHA / "+" / "-" / "_" combiner-ASCII = DIGIT / ALPHA / "+" / "-" / "_"
combiner-extended = <any character with a Unicode code value combiner-extended = <any character with a Unicode code value
skipping to change at page 36, line 4 skipping to change at page 37, line 49
0080 or greater and in Unicode category M*> 0080 or greater and in Unicode category M*>
NOTE: the excluded characters in a combiner-extended are control NOTE: the excluded characters in a combiner-extended are control
characters (Cc), format control characters (Cf), surrogates characters (Cc), format control characters (Cf), surrogates
(Cs), marks (M*) and separators (Z*). In particular, this (Cs), marks (M*) and separators (Z*). In particular, this
excludes all whitespace characters. To all intents and excludes all whitespace characters. To all intents and
purposes, a component-grapheme is what a user might regard as a purposes, a component-grapheme is what a user might regard as a
single "character" as displayed on his screen, though it might single "character" as displayed on his screen, though it might
be transmitted as several actual characters (e.g. q-circumflex be transmitted as several actual characters (e.g. q-circumflex
is two characters). Note also that, in some writing schemes, is two characters). Note also that, in some writing schemes,
News Article Format August 2002
several component-graphemes will merge into one visible object several component-graphemes will merge into one visible object
of variable size. of variable size.
Each component MUST be invariant under Unicode normalization NFKC Each component MUST be invariant under Unicode normalization NFKC
(cf. the weaker normalization requirement for other headers in (cf. the weaker normalization requirement for other headers in
section 4.4.1 which specified no more than normalization NFC, and see section 4.4.1 which specified no more than normalization NFC, and see
also the explanatory NOTE in that section). also the explanatory NOTE in that section).
NOTE: As a result of of this restriction, a name has only one NOTE: As a result of of this restriction, a name has only one
valid form. Implementations can assume that a straight (case valid form. Implementations can assume that a straight (case
sensitive) comparison of characters or octets is sufficient to sensitive) comparison of characters or octets is sufficient to
News Article Format February 2003
compare two newsgroup-names. compare two newsgroup-names.
The requirement that names be invariant under NFKC, rather than The requirement that names be invariant under NFKC, rather than
NFC, means that all characters with a "compatibility NFC, means that all characters with a "compatibility
decomposition" are forbidden (Unicode provides the property decomposition" are forbidden (Unicode provides the property
"NFKC_NO" to make this test easier). The effect is to exclude "NFKC_NO" to make this test easier). The effect is to exclude
variant forms of characters, such as superscripts and variant forms of characters, such as superscripts and
subscripts, wide and narrow forms, font variants, encircled subscripts, wide and narrow forms, font variants, encircled
forms, ligatures, and so on, as their use could cause confusion. forms, ligatures, and so on, as their use could cause confusion.
skipping to change at page 36, line 41 skipping to change at page 38, line 30
to NFKC. to NFKC.
NOTE: An implementation is not required to apply NFKC, or any NOTE: An implementation is not required to apply NFKC, or any
other normalization, to newsgroup-names. Only agencies that other normalization, to newsgroup-names. Only agencies that
create new groups need to be careful to obey this restriction create new groups need to be careful to obey this restriction
(7.2.1). However, if a posting agent neglects to normalize a (7.2.1). However, if a posting agent neglects to normalize a
newsgroup-name entered manually, this may lead to the user newsgroup-name entered manually, this may lead to the user
posting to a non-existent group without understanding why. posting to a non-existent group without understanding why.
Newsgroup-names containing non-ASCII characters MUST be encoded in Newsgroup-names containing non-ASCII characters MUST be encoded in
UTF-8 and not according to [RFC 2047]. UTF-8. The use of [RFC 2047] encoding is inappropriate for reasons
explained in section 4.4.1.
Components beginning with underline ("_") are reserved for use by Components beginning with underline ("_") are reserved for use by
future versions of this standard and MUST NOT occur in newsgroup- future versions of this standard and MUST NOT occur in newsgroup-
names (whether in Newsgroups-headers or in newgroup control messages names (whether in Newsgroups-headers or in newgroup control messages
(7.2.1)). However, such names MUST be accepted. (7.2.1)). However, such names MUST be accepted.
Components beginning with "+" or "-" are reserved for use by Components beginning with "+" or "-" are reserved for use by
implementations and MUST NOT occur in newsgroup-names (whether in implementations and MUST NOT occur in newsgroup-names (whether in
Newsgroups-headers or in newgroup control messages). Implementors may Newsgroups-headers or in newgroup control messages). Implementors may
assume that this rule will not change in any future version of this assume that this rule will not change in any future version of this
standard. standard.
NOTE: For example, implementors may safely use leading "+" and NOTE: For example, implementors may safely use leading "+" and
"-" to "escape" other entities within something that looks like "-" to "escape" other entities within something that looks like
a newsgroup-name. a newsgroup-name.
News Article Format August 2002
Agencies responsible for the administration of particular hierarchies Agencies responsible for the administration of particular hierarchies
Ought to place additional restrictions on the characters they allow Ought to place additional restrictions on the characters they allow
in newsgroup-names within those hierarchies (such as to accord with in newsgroup-names within those hierarchies (such as to accord with
the languages commonly used within those hierarchies, or to avoid the languages commonly used within those hierarchies, or to avoid
perceived ambiguities pertinent to those languages). Where there is perceived ambiguities pertinent to those languages). Where there is
no such specific policy, the following restrictions SHOULD be applied no such specific policy, the following restrictions SHOULD be applied
to newsgroup-names. to newsgroup-names.
NOTE: These restrictions are intended to reflect existing NOTE: These restrictions are intended to reflect existing
practice, with some additions to accommodate foreseeable practice, with some additions to accommodate foreseeable
enhancements, and are intended both to avoid certain technical enhancements, and are intended both to avoid certain technical
difficulties and to avoid unnecessary confusion. It may well be difficulties and to avoid unnecessary confusion. It may well be
News Article Format February 2003
that experience will allow future extensions to this standard to that experience will allow future extensions to this standard to
relax some or all of these restrictions. relax some or all of these restrictions.
The specific restrictions (to be applied in the absence of The specific restrictions (to be applied in the absence of
established policies to the contrary) are: established policies to the contrary) are:
1. The following characters are forbidden, subject to the comments 1. The following characters are forbidden, subject to the comments
and notes at the end of the list: and notes at the end of the list:
characters in category Cn (Other, Not assigned) [1] characters in category Cn (Other, Not assigned) [1]
skipping to change at page 38, line 5 skipping to change at page 39, line 47
[3] Traditionally, newsgroup-names have been written in lowercase. [3] Traditionally, newsgroup-names have been written in lowercase.
Posting agents Ought Not to convert uppercase or titlecase Posting agents Ought Not to convert uppercase or titlecase
characters to the corresponding lowercase forms except under characters to the corresponding lowercase forms except under
the explicit instructions of the poster. the explicit instructions of the poster.
[4] Traditionally newsgroup-names have only used letters, digits, [4] Traditionally newsgroup-names have only used letters, digits,
and the three special characters "+", "-" and "_". These and the three special characters "+", "-" and "_". These
categories correspond to characters outside that set. categories correspond to characters outside that set.
News Article Format August 2002
[5] Although the characters "+" and "-" are within categories Pd [5] Although the characters "+" and "-" are within categories Pd
and Sm, they are not forbidden. and Sm, they are not forbidden.
2. A component name is forbidden to consist entirely of digits. 2. A component name is forbidden to consist entirely of digits.
NOTE: This requirement was in [RFC 1036] but nevertheless NOTE: This requirement was in [RFC 1036] but nevertheless
several such groups have appeared in practice and implementors several such groups have appeared in practice and implementors
should be prepared for them. A common implementation technique should be prepared for them. A common implementation technique
uses each component as the name of a directory and uses numeric uses each component as the name of a directory and uses numeric
filenames for each article within a group. Such an filenames for each article within a group. Such an
implementation needs to be careful when this could cause a clash implementation needs to be careful when this could cause a clash
(e.g. between article 123 of group xxx.yyy and the directory for (e.g. between article 123 of group xxx.yyy and the directory for
group xxx.yyy.123). group xxx.yyy.123).
News Article Format February 2003
3. A component is limited to 30 component-graphemes and a newsgroup- 3. A component is limited to 30 component-graphemes and a newsgroup-
name to 71 component-graphemes (counting also the '.'s separating name to 71 component-graphemes (counting also the '.'s separating
the components). Whilst there is no longer any technical reason to the components). Whilst there is no longer any technical reason to
limit the length of a component (formerly, it was limited to 14 limit the length of a component (formerly, it was limited to 14
octets) nor of a newsgroup-name, it should be noted that these octets) nor of a newsgroup-name, it should be noted that these
names are also used in the newsgroups-line (7.2.1.2) where an names are also used in the newsgroups-line (7.2.1.2) where an
overall policy limit applies and, moreover, excessively long names overall policy limit applies and, moreover, excessively long names
can be exceedingly inconvenient in practical use. can be exceedingly inconvenient in practical use.
Serving and relaying agents MUST accept any newsgroup-name that meets Serving and relaying agents MUST accept any newsgroup-name that meets
skipping to change at page 39, line 5 skipping to change at page 40, line 46
NOTE: The newsgroup-name as encoded in UTF-8 should be regarded as NOTE: The newsgroup-name as encoded in UTF-8 should be regarded as
the canonical form. Reading agents may convert it to whatever the canonical form. Reading agents may convert it to whatever
character set they are able to display and serving agents may character set they are able to display and serving agents may
possibly need to convert it to some form more suitable as a possibly need to convert it to some form more suitable as a
filename. Simple algorithms for both kinds of conversion are filename. Simple algorithms for both kinds of conversion are
readily available. Observe that the syntax does not allow readily available. Observe that the syntax does not allow
comments within the Newsgroups-header; this is to simplify comments within the Newsgroups-header; this is to simplify
processing by relaying and serving agents which have a requirement processing by relaying and serving agents which have a requirement
to process this header extremely rapidly. to process this header extremely rapidly.
News Article Format August 2002
The inclusion of folding white space within a Newsgroups-content is a The inclusion of folding white space within a Newsgroups-content is a
newly introduced feature in this standard. It MUST be accepted by all newly introduced feature in this standard. It MUST be accepted by all
conforming implementations (relaying agents, serving agents and conforming implementations (relaying agents, serving agents and
reading agents). Posting agents should be aware that such postings reading agents). Posting agents should be aware that such postings
may be rejected by overly-critical old-style relaying agents. When a may be rejected by overly-critical old-style relaying agents. When a
sufficient number of relaying agents are in conformance, posting sufficient number of relaying agents are in conformance, posting
agents SHOULD generate such whitespace in the form of <CRLF WSP> so agents SHOULD generate such whitespace in the form of <CRLF WSP> so
as to keep the length of lines in the relevant headers (notably as to keep the length of lines in the relevant headers (notably
Newsgroups and Followup-To) to no more than than 79 characters (or Newsgroups and Followup-To) to no more than than 79 characters (or
other agreed policy limit - see 4.5). Before such critical mass other agreed policy limit - see 4.5). Before such critical mass
occurs, injecting agents MAY reformat such headers by removing occurs, injecting agents MAY reformat such headers by removing
whitespace inserted by the posting agent, but relaying agents MUST whitespace inserted by the posting agent, but relaying agents MUST
NOT do so. NOT do so.
News Article Format February 2003
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
newsgroups which do not exist on the posting agent's host, provided newsgroups 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
unrecognized newsgroup-name occurs in a Newsgroups-header (see 7.2.1 unrecognized newsgroup-name occurs in a Newsgroups-header (see 7.2.1
skipping to change at page 39, line 42 skipping to change at page 41, line 28
The Newsgroups-header is intended for use in Netnews articles rather The Newsgroups-header is intended for use in Netnews articles rather
than in email messages. It MAY be used in an email message to than in email messages. It MAY be used in an email message to
indicate that it is a copy also posted to the listed newsgroups, in indicate that it is a copy also posted to the listed newsgroups, in
which case the inclusion of a Posted-And-Mailed header (6.9) would which case the inclusion of a Posted-And-Mailed header (6.9) would
also be appropriate. However, it SHOULD NOT be used in an email-only also be appropriate. However, it SHOULD NOT be used in an email-only
reply to a Netnews article (thus the "inheritable" property of this reply to a Netnews article (thus the "inheritable" property of this
header applies only to followups to a newsgroup, and not to followups header applies only to followups to a newsgroup, and not to followups
to the poster). Moreover, if a newsgroup-name contains any non-ASCII to the poster). Moreover, if a newsgroup-name contains any non-ASCII
character, it may need to be encoded using the mechanism defined in character, it may need to be encoded using the mechanism defined in
section 5.5.2. See also the further discussion in section 8.8.1. section 5.5.2. See also the further discussion in section 8.8.1.1.
5.5.1. Forbidden newsgroup-names 5.5.1. Forbidden newsgroup-names
The following forms of newsgroup-name MUST NOT be used except for the The following forms of newsgroup-name MUST NOT be used except for the
specific purposes indicated: specific purposes indicated:
o Newsgroup-names having only one component. These are reserved for o Newsgroup-names having only one component. These are reserved for
newsgroups whose propagation is restricted to a single host or newsgroups whose propagation is restricted to a single host or
local network, and for pseudo-newsgroups such as "poster" (which local network, and for pseudo-newsgroups such as "poster" (which
has special meaning in the Followup-To-header - see section 6.7), has special meaning in the Followup-To-header - see section 6.7),
"junk" (often used by serving agents), and "control" (likewise); "junk" (often used by serving agents), and "control" (likewise);
o Any newsgroup-name beginning with "control." (used as pseudo- o Any newsgroup-name beginning with "control." (used as pseudo-
newsgroups by many serving agents); newsgroups by many serving agents);
o Any newsgroup-name containing the component "ctl" (likewise); o Any newsgroup-name containing the component "ctl" (likewise);
o "to" or any newsgroup-name beginning with "to." (reserved for the o "to" or any newsgroup-name beginning with "to." (reserved for the
ihave/sendme protocol described in section 7.4, and for test ihave/sendme protocol described in section 7.4, and for test
messages sent on an essentially point-to-point basis); messages sent on an essentially point-to-point basis);
o Any newsgroup-name beginning with "example." (reserved for o Any newsgroup-name beginning with "example." (reserved for
News Article Format August 2002
examples in this and other standards); examples in this and other standards);
o Any newsgroup-name containing the component "all" (because this o Any newsgroup-name containing the component "all" (because this
is used as a wildcard in some implementations). is used as a wildcard in some implementations).
A newsgroup-name SHOULD NOT appear more than once in the Newsgroups- A newsgroup-name SHOULD NOT appear more than once in the Newsgroups-
header. The order of newsgroup-names in the Newsgroups-header is not header. The order of newsgroup-names in the Newsgroups-header is not
significant, except for determining which moderator to send the significant, except for determining which moderator to send the
article to if more than one of the groups is moderated (see 8.2). article to if more than one of the groups is moderated (see 8.2).
5.5.2. Encoded newsgroup-names 5.5.2. Encoded newsgroup-names
Where it is required to transport an article across some medium that Where it is required to transport an article across some medium that
cannot reliably convey the full 8 bits of each octet, such as when cannot reliably convey the full 8 bits of each octet, such as when
gatewaying it into Email (8.8.1), or when emailing it to a moderator gatewaying it into Email (8.8.1.1), or when emailing it to a
or constructing the submission address of the moderator (8.2.2), it News Article Format February 2003
may be necessary to encode any newsgroup-name within a Newsgroups- or
Followup-To-header that contains any non-ASCII character. For that moderator or constructing the submission address of the moderator
purpose, the following algorithm is provided: (8.2.2), it will be necessary under the current email standards to
encode any newsgroup-name that contains some non-ASCII character
(such as one occurring within a Newsgroups- or Followup-To-header).
For that purpose, the following algorithm is provided:
1. Initially, the newsgroup-name is in the form of a sequence of 1. Initially, the newsgroup-name is in the form of a sequence of
octets representing that name in the UTF-8 character set. octets representing that name in the UTF-8 character set.
2. Each octet in the name in the range 0x80-FF is replaced by an "=" 2. Each octet in the name in the range 0x80-FF is replaced by an "="
character (US-ASCII 61), followed by two characters representing character (US-ASCII 61), followed by two characters representing
that octet in hexadecimal, in which the hexadecimal digits "A" that octet in hexadecimal, in which the hexadecimal digits "A"
through "F" MUST be in uppercase. through "F" MUST be in uppercase.
3. Each octet in the name in the range 0x00-7F remains unaltered (and 3. Each octet in the name in the range 0x00-7F remains unaltered (and
skipping to change at page 40, line 48 skipping to change at page 42, line 35
range 0x00-7F, only the octets 0x2B, 0x2D-2E, 0x30-39, 0x41-5A, range 0x00-7F, only the octets 0x2B, 0x2D-2E, 0x30-39, 0x41-5A,
0x5F, and 0x61-7A can appear in a newsgroup-name. 0x5F, and 0x61-7A can appear in a newsgroup-name.
This standard provides no authority for the use of this algorithm This standard provides no authority for the use of this algorithm
other than in the context of newsgroup-names occurring within headers other than in the context of newsgroup-names occurring within headers
being conveyed by email. In particular, it MUST NOT be used within being conveyed by email. In particular, it MUST NOT be used within
any article conveyed by the Netnews protocols and thus, if an email any article conveyed by the Netnews protocols and thus, if an email
using it is subsequently returned to the Netnews environment, it MUST using it is subsequently returned to the Netnews environment, it MUST
be decoded back into UTF-8. be decoded back into UTF-8.
NOTE: Although the encoding defined by [RFC 2047] is available
for use with other headers containing non-ASCII characters, the
Newsgroups-header, being a structured header, is not one of the
contexts permitted for its use (and moreover it would not
produce a unique encoding nor cope well with newsgroup-names of
excessive length). Therefore it SHOULD NOT be used within the
Newsgroups-header.
News Article Format August 2002
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.5.3), each agent into the Netnews system. It is a variant header (4.2.5.3), each agent
that processes an article being required to add one (or more) entries that processes an article being required to add one (or more) entries
to it. This is primarily to enable relaying agents to avoid sending to it. This is primarily to enable relaying agents to avoid sending
articles to sites already known to have them, in particular the site articles to sites already known to have them, in particular the site
they came from, and additionally to permit tracing the route articles they came from, and additionally to permit tracing the route articles
take in moving over the network, and for gathering Usenet statistics. take in moving over the network, and for gathering Usenet statistics.
Finally the presence of a '%' path-delimiter in the Path-header can Finally the presence of a '%' path-delimiter in the Path-header can
be used to identify an article injected in conformance with this be used to identify an article injected in conformance with this
standard. standard.
5.6.1. Format 5.6.1. Format
header =/ Path-header header =/ Path-header
Path-header = "Path" ":" SP Path-content Path-header = "Path" ":" SP Path-content
*( ";" other-parameter ) *( ";" extension-parameter )
Path-content = [FWS] Path-content = [FWS]
*( path-identity [FWS] path-delimiter [FWS] ) *( path-identity [FWS] path-delimiter [FWS] )
tail-entry [FWS] tail-entry [FWS]
path-identity = ( ALPHA / DIGIT ) path-identity = ( ALPHA / DIGIT )
*( ALPHA / DIGIT / "-" / "." / ":" / "_" ) *( ALPHA / DIGIT / "-" / "." / ":" / "_" )
path-delimiter = "/" / "?" / "%" / "," / "!" path-delimiter = "/" / "?" / "%" / "," / "!"
tail-entry = path-identity tail-entry = path-identity
News Article Format February 2003
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.
skipping to change at page 42, line 5 skipping to change at page 43, line 31
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
sites not wishing to act upon them. sites not wishing to act upon them.
News Article Format August 2002
5.6.2. Adding a path-identity to the Path-header 5.6.2. Adding a path-identity to the Path-header
When an injecting, relaying or serving agent receives an article, it When an injecting, relaying or serving agent receives an article, it
MUST prepend its own path-identity followed by a path-delimiter to MUST prepend its own path-identity followed by a path-delimiter to
the beginning of the Path-content. In addition, it SHOULD then add the beginning of the Path-content. In addition, it SHOULD then add
CRLF and WSP if it would otherwise result in a line longer than 79 CRLF and WSP if it would otherwise result in a line longer than 79
characters. characters.
The path-identity added MUST be unique to that agent. To this end it The path-identity added MUST be unique to that agent. To this end it
SHOULD be one of: SHOULD be one of:
skipping to change at page 42, line 34 skipping to change at page 44, line 5
DNS service) with an MX record, which MUST be "mailable". DNS service) with an MX record, which MUST be "mailable".
3. An arbitrary name believed to be unique and registered at least 3. An arbitrary name believed to be unique and registered at least
with all sites immediately downstream from the given site. with all sites immediately downstream from the given site.
4. An encoding of an IP address - <IPv4address> or <IPv6address> [RFC 4. An encoding of an IP address - <IPv4address> or <IPv6address> [RFC
2373] (the requirement to be able to use an <IPv6address> is the 2373] (the requirement to be able to use an <IPv6address> is the
reason for including ':' as an allowed character within a path- reason for including ':' as an allowed character within a path-
identity). identity).
News Article Format February 2003
The FQDN of an agent is "mailable" if the administrators of that The FQDN of an agent is "mailable" if the administrators of that
agent can be reached by email using both of the forms "usenet@<FQDN>" agent can be reached by email using both of the forms "usenet@<FQDN>"
and "news@<FQDN>", in conformity with [RFC 2142]. and "news@<FQDN>", in conformity with [RFC 2142].
Of the above options, nos. 1 to 3 are much to be preferred, unless Of the above options, nos. 1 to 3 are much to be preferred, unless
there are strong technical reasons dictating otherwise. In there are strong technical reasons dictating otherwise. In
particular, the injecting agent's path-identity MUST, as a special particular, the injecting agent's path-identity MUST, as a special
case, be an FQDN as in option 1 or option 2, and MUST be mailable. case, be an FQDN as in option 1 or option 2, and MUST be mailable.
Additionally, in the case of an injecting agent offering its services Additionally, in the case of an injecting agent offering its services
to the general public, its administrators MUST also be reachable to the general public, its administrators MUST also be reachable
skipping to change at page 43, line 4 skipping to change at page 44, line 34
In the case of a relaying or serving agent, the path-delimiter is In the case of a relaying or serving agent, the path-delimiter is
chosen as follows. When such an agent receives an article, it MUST chosen as follows. When such an agent receives an article, it MUST
establish the identity of the source and compare it with the leftmost establish the identity of the source and compare it with the leftmost
path-identity of the Path-content. If it matches, a '/' should be path-identity of the Path-content. If it matches, a '/' should be
used as the path-delimiter when prepending the agent's own path- used as the path-delimiter when prepending the agent's own path-
identity. If it does not match then the agent should prepend two identity. If it does not match then the agent should prepend two
entries to the Path-content; firstly the true established path- entries to the Path-content; firstly the true established path-
identity of the source followed by a '?' path-delimiter, and then, identity of the source followed by a '?' path-delimiter, and then,
to the left of that, the agent's own path-identity followed by a '/' to the left of that, the agent's own path-identity followed by a '/'
path-delimiter as usual. This prepending of two entries SHOULD NOT path-delimiter as usual. This prepending of two entries SHOULD NOT
News Article Format August 2002
be done if the provided and established identities match. be done if the provided and established identities match.
Any method of establishing the identity of the source may be used Any method of establishing the identity of the source may be used
(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 '%' path-delimiter marks the position of NOTE: The use of the '%' path-delimiter marks the position of
the injecting agent in the chain. In normal circumstances there the injecting agent in the chain. In normal circumstances there
should therefore be only one '%' path-delimiter present, and should therefore be only one '%' path-delimiter present, and
injecting agents MAY choose to reject proto-articles with a '%' injecting agents MAY choose to reject proto-articles with a '%'
skipping to change at page 43, line 31 skipping to change at page 45, line 5
For historical reasons, the tail-entry (i.e. the rightmost entry in For historical reasons, the tail-entry (i.e. the rightmost entry in
the Path-content) is regarded as a "user name", and therefore MUST the Path-content) is regarded as a "user name", and therefore MUST
NOT be interpreted as a site through which the article has already NOT be interpreted as a site through which the article has already
passed. Moreover, the Path-content as a whole is not an email address passed. Moreover, the Path-content as a whole is not an email address
and MUST NOT be used to contact the poster. Posting and/or injecting and MUST NOT be used to contact the poster. Posting and/or injecting
agents MAY place any string here. When it is not an actual user agents MAY place any string here. When it is not an actual user
name, the string "not-for-mail" is often used, but in fact a simple name, the string "not-for-mail" is often used, but in fact a simple
"x" would be sufficient. "x" would be sufficient.
News Article Format February 2003
Often this field will be the only entry in the region (known as the Often this field will be the only entry in the region (known as the
pre-injection region) after the '%', although there may be entries pre-injection region) after the '%', although there may be entries
corresponding to machines traversed between the posting agent and the corresponding to machines traversed between the posting agent and the
injecting agent proper. In particular, injecting agents that receive injecting agent proper. In particular, injecting agents that receive
articles from many sources MAY include information to establish the articles from many sources MAY include information to establish the
circumstances of the injection such as the identity of the source circumstances of the injection such as the identity of the source
machine (especially if an Injector-Info-header (6.19) is not being machine (especially if an Injector-Info-header (6.19) is not being
provided). Any such inclusion SHOULD NOT conflict with any genuine provided). Any such inclusion SHOULD NOT conflict with any genuine
site identifier. The '!' path-delimiter may be used freely within site identifier. The '!' path-delimiter may be used freely within
the pre-injection region, although '/' and '?' are also appropriate the pre-injection region, although '/' and '?' are also appropriate
skipping to change at page 44, line 5 skipping to change at page 45, line 35
'/' 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 August 2002
'%' 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 44, line 34 skipping to change at page 46, line 5
NOTE: Old Netnews relaying and injecting agents almost all NOTE: Old Netnews relaying and injecting agents almost all
delimit Path entries with a '!', and these entries are not delimit Path entries with a '!', and these entries are not
verified. The presence of '%' indicates that the article was verified. The presence of '%' indicates that the article was
injected by software conforming to this standard, and the injected by software conforming to this standard, and the
presence of '!' to the left of a '%' indicates that the message presence of '!' to the left of a '%' indicates that the message
passed through systems developed prior to this standard. It is passed through systems developed prior to this standard. It is
anticipated that relaying agents will reject articles in the old anticipated that relaying agents will reject articles in the old
style once this new standard has been widely adopted. style once this new standard has been widely adopted.
News Article Format February 2003
5.6.5. Suggested Verification Methods 5.6.5. Suggested Verification Methods
It is preferable to verify the claimed path-identity against the It is preferable to verify the claimed path-identity against the
source than to make routine use of the '?' path-delimiter, with source than to make routine use of the '?' path-delimiter, with
consequential wasteful double-entry Path additions. consequential wasteful double-entry Path additions.
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, IP already have been checked against a list of known FQDNs, IP
addresses, or other registered aliases that the receiving site has addresses, or other registered aliases that the receiving site has
skipping to change at page 45, line 5 skipping to change at page 46, line 32
several DNS lookups, following CNAME chains as required. Note that several DNS lookups, following CNAME chains as required. Note that
any reverse DNS lookup that is involved needs to be confirmed by a any reverse DNS lookup that is involved needs to be confirmed by a
forward one. forward one.
If the incoming article arrives through some other protocol, such as If the incoming article arrives through some other protocol, such as
UUCP, that protocol MUST include a means of verifying the source UUCP, that protocol MUST include a means of verifying the source
site. In UUCP implementations, commonly each incoming connection has site. In UUCP implementations, commonly each incoming connection has
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.
News Article Format August 2002
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
abuse@baz.isp.example). The injector has taken care to record abuse@baz.isp.example). The injector has taken care to record
that it got it from dialup123.baz.isp.example. "x" is a dummy that it got it from dialup123.baz.isp.example. "x" is a dummy
skipping to change at page 45, line 36 skipping to change at page 47, line 4
Old.site.example relayed it to a site claiming to have the IP Old.site.example relayed it to a site claiming to have the IP
address [10.123.12.2], and claiming (by using the '/' path- address [10.123.12.2], and claiming (by using the '/' path-
delimiter) to have verified that it came from old.site.example. delimiter) to have verified that it came from old.site.example.
[10.123.12.2] relayed it to "foo-server" which, not being [10.123.12.2] relayed it to "foo-server" which, not being
convinced that it truly came from [10.123.12.2], did a reverse convinced that it truly came from [10.123.12.2], did a reverse
lookup on the actual source and concluded it was known as lookup on the actual source and concluded it was known as
bar.isp.example (that is not to say that [10.123.12.2] was not a bar.isp.example (that is not to say that [10.123.12.2] was not a
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
News Article Format February 2003
that foo-server has now added two entries to the Path. that foo-server has now added two entries to the Path.
"foo-server" is a locally significant name within the complex "foo-server" is a locally significant name within the complex
site of many machines run by foo.isp.example, so the latter site of many machines run by foo.isp.example, so the latter
should have no problem recognizing foo-server and using a '/' should have no problem recognizing foo-server and using a '/'
path-delimiter. Presumably foo.isp.example then delivered the path-delimiter. Presumably foo.isp.example then delivered the
article to its direct clients. article to its direct clients.
It appears that foo.isp.example and old.site.example decided to It appears that foo.isp.example and old.site.example decided to
fold the line, on the grounds that it seemed to be getting a fold the line, on the grounds that it seemed to be getting a
skipping to change at page 46, line 5 skipping to change at page 47, line 29
None of the headers appearing in this section is required to appear None of the headers appearing in this section is required to appear
in every article but some of them are required in certain types of in every article but some of them are required in certain types of
article, such as followups. Any header defined in this (or any other) article, such as followups. Any header defined in this (or any other)
standard MUST NOT appear more than once in an article unless standard MUST NOT appear more than once in an article unless
specifically stated otherwise. Experimental headers (4.2.5.1) and specifically stated otherwise. Experimental headers (4.2.5.1) and
headers defined by cooperating subnets are exempt from this headers defined by cooperating subnets are exempt from this
requirement. See section 8 "Duties of Various Agents" for the full requirement. See section 8 "Duties of Various Agents" for the full
picture. picture.
News Article Format August 2002
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 poster(s) of the article when this is personal replies for the poster(s) of the article when this is
different from the poster'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 [RFC 2822], 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.
header =/ Reply-To-header header =/ Reply-To-header
Reply-To-header = "Reply-To" ":" SP Reply-To-content Reply-To-header = "Reply-To" ":" SP Reply-To-content
skipping to change at page 46, line 33 skipping to change at page 48, line 4
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 replying agents can similar request in the article body, because replying agents can
take account of Reply-To automatically. take account of Reply-To automatically.
6.1.1. Examples 6.1.1. Examples
Reply-To: John Smith <jsmith@site.example> Reply-To: John Smith <jsmith@site.example>
Reply-To: John Smith <jsmith@site.example>, dave@isp.example Reply-To: John Smith <jsmith@site.example>, dave@isp.example
Reply-To: John Smith <jsmith@site.example>,andrew@isp.example, Reply-To: John Smith <jsmith@site.example>,andrew@isp.example,
fred@site2.example fred@site2.example
News Article Format February 2003
6.2. Sender 6.2. Sender
The Sender-header specifies the mailbox of the person or entity which The Sender-header specifies the mailbox of the person or entity which
caused this article to be posted (and hence injected), if that person caused this article to be posted (and hence injected), if that person
or entity is different from that given in the From-header or if more or entity is different from that given in the From-header or if more
than one mailbox appears in the From-header. This header SHOULD NOT than one mailbox appears in the From-header. This header SHOULD NOT
appear in an article unless the sender is different from the poster. appear in an article unless the sender is different from the poster.
This header is appropriate for use by automatic article posters. The This header is appropriate for use by automatic article posters. The
content syntax makes use of syntax defined in [RFC 2822]. content syntax makes use of syntax defined in [RFC 2822], subject to
the revised definition of local-part given in section 5.2.
header =/ Sender-header header =/ Sender-header
Sender-header = "Sender" ":" SP Sender-content Sender-header = "Sender" ":" SP Sender-content
*( ";" other-parameter )
Sender-content = mailbox Sender-content = mailbox
6.3. Organization 6.3. Organization
The Organization-header is a short phrase identifying the poster's The Organization-header is a short phrase identifying the poster's
organization. organization.
header =/ Organization-header header =/ Organization-header
Organization-header = "Organization" ":" SP Organization-content Organization-header = "Organization" ":" SP Organization-content
Organization-content= unstructured Organization-content= unstructured
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
News Article Format August 2002
contains useful information (including some indication of the contains useful information (including some indication of the
posters 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 [RFC article. The content syntax makes use of syntax defined in [RFC
2822]. 2822].
header =/ Keywords-header header =/ Keywords-header
Keywords-header = "Keywords" ":" SP Keywords-content Keywords-header = "Keywords" ":" SP Keywords-content
*( ";" other-parameter )
Keywords-content = phrase *( "," phrase ) Keywords-content = phrase *( "," phrase )
NOTE: The list is comma separated, NOT space separated. NOTE: The list is comma separated, NOT space separated.
NOTE: Contrary to the usage defined in [RFC 2822], this standard NOTE: Contrary to the usage defined in [RFC 2822], this standard
does not permit multiple occurrences of this header. does not permit multiple occurrences of this header.
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.
header =/ Summary-header header =/ Summary-header
Summary-header = "Summary" ":" SP Summary-content Summary-header = "Summary" ":" SP Summary-content
News Article Format February 2003
Summary-content = unstructured Summary-content = unstructured
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.
6.6. Distribution 6.6. Distribution
The Distribution-header is an inheritable header (see 4.2.5.2) which The Distribution-header is an inheritable header (see 4.2.5.2) which
specifies geographical or organizational limits to an article's specifies geographical or organizational limits to an article's
propagation. propagation.
header =/ Distribution-header header =/ Distribution-header
Distribution-header = "Distribution" ":" SP Distribution-content Distribution-header = "Distribution" ":" SP Distribution-content
*( ";" other-parameter ) *( ";" extension-parameter )
Distribution-content= distribution *( dist-delim distribution ) Distribution-content= distribution *( dist-delim distribution )
dist-delim = "," dist-delim = ","
distribution = [FWS] distribution-name [FWS] distribution = [FWS] distribution-name [FWS]
distribution-name = ALPHA 1*distribution-rest distribution-name = ALPHA 1*distribution-rest
distribution-rest = ALPHA / "+" / "-" / "_" distribution-rest = ALPHA / "+" / "-" / "_"
NOTE: The use of ALPHA in the syntax ensures that distribution NOTE: The use of ALPHA in the syntax ensures that distribution
names are always in US-ASCII. names are always in US-ASCII.
News Article Format August 2002
Articles MUST NOT be passed between relaying agents or to serving Articles MUST NOT be passed between relaying agents or to serving
agents unless the sending agent has been configured to supply and the agents unless the sending agent has been configured to supply and the
receiving agent to receive at least one of the distributions in the receiving agent to receive at least one of the distributions in the
Distribution-header. Additionally, reading agents MAY also be Distribution-header. Additionally, reading agents MAY also be
configured so that unwanted distributions do not get displayed. configured so that unwanted distributions do not get displayed.
NOTE: Although it would seem redundant to filter out unwanted NOTE: Although it would seem redundant to filter out unwanted
distributions at both ends of a relaying link (and it is clearly distributions at both ends of a relaying link (and it is clearly
more efficient to do so at the sending end), many sending sites more efficient to do so at the sending end), many sending sites
have been reluctant, historically speaking, to apply such have been reluctant, historically speaking, to apply such
skipping to change at page 48, line 35 skipping to change at page 50, line 5
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. The possibility for reading agents to filter notice. The 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 February 2003
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 48, line 57 skipping to change at page 50, line 29
agents SHOULD initially supply the same Distribution-header as found agents SHOULD initially supply the same Distribution-header as found
in the precursor. in the precursor.
6.7. Followup-To 6.7. Followup-To
The Followup-To-header specifies which newsgroup(s) followups should The Followup-To-header specifies which newsgroup(s) followups should
be posted to. be posted to.
header =/ Followup-To-header header =/ Followup-To-header
Followup-To-header = "Followup-To" ":" SP Followup-To-content Followup-To-header = "Followup-To" ":" SP Followup-To-content
*( ";" other-parameter ) *( ";" extension-parameter )
Followup-To-content = Newsgroups-content / [FWS] "poster" [FWS] Followup-To-content = Newsgroups-content /
News Article Format August 2002 [FWS] %x70.6F.73.74.65.72 [FWS]
; which is a case-sensitive "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
addition that the keyword "poster" is allowed. In the absence of a addition that the keyword "poster" is allowed. In the absence of a
Followup-To-header, the default newsgroup(s) for a followup are those Followup-To-header, the default newsgroup(s) for a followup are those
in the Newsgroups-header, and for this reason the Followup-To-header 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.
A Followup-To-header consisting of the keyword "poster" indicates A Followup-To-header consisting of the keyword "poster" indicates
that the poster requests no followups to be sent in response to this that the poster requests no followups to be sent in response to this
article, only personal replies to the article's reply address. article, only personal replies to the article's reply address.
Although the keyword "poster" is case-sensitive, followup agents MAY
choose to regognize case insensitive forms such as "Poster".
NOTE: A poster who wishes both a personal reply and a followup NOTE: A poster who wishes both a personal reply and a followup
post should include an appropriate Mail-Copies-To-header (6.8). post should include an appropriate Mail-Copies-To-header (6.8).
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 [RFC 2822], 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.
header =/ Mail-Copies-To-header header =/ Mail-Copies-To-header
News Article Format February 2003
Mail-Copies-To-header Mail-Copies-To-header
= "Mail-Copies-To" ":" SP Mail-Copies-To-content = "Mail-Copies-To" ":" SP Mail-Copies-To-content
Mail-Copies-To-content Mail-Copies-To-content
= copy-addr / [CFWS] ( "nobody" / "poster" ) [CFWS] = copy-addr / [CFWS] ( "nobody" / "poster" ) [CFWS]
copy-addr = address-list copy-addr = address-list
The keyword "nobody" indicates that the poster 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.
skipping to change at page 50, line 5 skipping to change at page 51, line 35
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)
The followup agent SHOULD NOT, by default, email such a copy and The followup agent SHOULD NOT, by default, email such a copy and
Ought, especially when there is an explicit "nobody", to issue a Ought, especially when there is an explicit "nobody", to issue a
warning and ask for confirmation if the user attempts to do so. warning and ask for confirmation if the user attempts to do so.
News Article Format August 2002
poster poster
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(es) in the Reply-To-header, and in the then be sent to the address(es) 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
skipping to change at page 50, line 31 skipping to change at page 52, line 5
falls outside the scope of this standard. falls outside the scope of this standard.
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.
News Article Format February 2003
6.9. Posted-And-Mailed 6.9. Posted-And-Mailed
header =/ Posted-And-Mailed-header header =/ Posted-And-Mailed-header
Posted-And-Mailed-header Posted-And-Mailed-header
= "Posted-And-Mailed" ":" SP Posted-And-Mailed-content = "Posted-And-Mailed" ":" SP Posted-And-Mailed-content
*( ";" other-parameter ) *( ";" extension-parameter )
Posted-And-Mailed-content Posted-And-Mailed-content
= [CFWS] ( "yes" / "no" ) [CFWS] = [CFWS] ( "yes" / "no" ) [CFWS]
This header, when used with the "yes" keyword, indicates that the This header, when used with the "yes" keyword, indicates that the
article has been both posted to the specified newsgroups and emailed. article has been both posted to the specified newsgroups and emailed.
It SHOULD be used when replying to the poster of an article to which It SHOULD be used when replying to the poster of an article to which
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 headers) MUST be identical in both the posted and mailed variant headers) MUST be identical in both the posted and mailed
versions of the article, except that headers containing UTF8-xtra- versions of the article, except that where they contain UTF8-xtra-
chars in the posted version MAY be encoded according to [RFC 2047] or chars, which in the mailed version MUST, to comply with section
[RFC 2231], or (in the case of a Newsgroups-header) to section 5.5.2, 8.8.1.1, be encoded according to [RFC 2047] or [RFC 2231], or (in the
in the emailed version. In particular, the Message-ID-headers MUST be case of headers containing a newsgroup-name) to section 5.5.2, they
identical. The bodies MUST be identical in both, apart from a MAY, in the posted version, remain in UTF-8. The bodies MUST be
possible change of Content-Transfer-Encoding. identical in both, apart from a possible change of Content-Transfer-
Encoding.
News Article Format August 2002
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 CFWS-separated message identifiers of The References-header lists CFWS-separated message identifiers of
precursors. The content syntax makes use of syntax defined in [RFC precursors. The content syntax makes use of syntax defined in [RFC
2822], subject to the same revisions as in section 5.3. 2822], subject to the same revisions as in section 5.3.
header =/ References-header header =/ References-header
References-header = "References" ":" SP References-content References-header = "References" ":" SP References-content
*( ";" other-parameter )
References-content = [CFWS] msg-id *( CFWS msg-id ) [CFWS] References-content = [CFWS] msg-id *( CFWS msg-id ) [CFWS]
NOTE: This differs from the syntax of [RFC 2822] by requiring at NOTE: This differs from the syntax of [RFC 2822] by requiring at
least one CFWS between the msg-ids (a SP at this point was an least one CFWS between the msg-ids (a SP at this point was an
[RFC 1036] requirement). [RFC 1036] requirement).
A followup MUST have a References-header, and an article that is not A followup MUST have a References-header, and an article that is not
a followup MUST NOT have a References-header. 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
News Article Format February 2003
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
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
skipping to change at page 52, line 5 skipping to change at page 53, line 38
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 [RFC ("expired"). The content syntax makes use of syntax defined in [RFC
2822]. 2822].
News Article Format August 2002
header =/ Expires-header header =/ Expires-header
Expires-header = "Expires" ":" SP Expires-content Expires-header = "Expires" ":" SP Expires-content
*( ";" other-parameter ) *( ";" extension-parameter )
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 posters 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 provides an indication of the poster's intent This optional header provides an indication of the poster's intent
regarding preservation of the article in publicly accessible long- regarding preservation of the article in publicly accessible long-
term or permanent storage. term or permanent storage.
header =/ Archive-header header =/ Archive-header
Archive-header = "Archive" ":" SP Archive-content Archive-header = "Archive" ":" SP Archive-content
*( ";" ( Archive-parameter / *( ";" ( Archive-parameter /
other-parameter ) ) extension-parameter ) )
Archive-content = [CFWS] ("no" / "yes" ) [CFWS] Archive-content = [CFWS] ("no" / "yes" ) [CFWS]
News Article Format February 2003
Archive-parameter = <a parameter with attribute "filename" Archive-parameter = <a parameter with attribute "filename"
and any value> and any value>
The presence of an "Archive: no" header in an article indicates that The presence of an "Archive: no" header in an article indicates that
the poster does not permit redistribution from publicly accessible the poster does not permit redistribution from publicly accessible
long-term or permanent archives. The absence of this header, or an long-term or permanent archives. The absence of this header, or an
explicit "Archive: yes", indicates that the poster is willing for explicit "Archive: yes", indicates that the poster is willing for
such redistribution to take place. The optional "filename" parameter such redistribution to take place. The optional "filename" parameter
can then be used to suggest a filename under which the article should can then be used to suggest a filename under which the article should
be stored. Further extensions to this standard may provide additional be stored. Further extensions to this standard may provide additional
skipping to change at page 53, line 5 skipping to change at page 54, line 37
even if this header prevents the poster's words from being even if this header prevents the poster's words from being
archived publicly, it does nothing to prevent the archiving of a archived publicly, it does nothing to prevent the archiving of a
followup in which those words are quoted. followup in which those words are quoted.
6.13. Control 6.13. Control
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 (additional to the usual ones of specifies the desired actions (additional to the usual ones of
storing and/or relaying the article). storing and/or relaying the article).
News Article Format August 2002
header =/ Control-header header =/ Control-header
Control-header = "Control" ":" SP Control-content Control-header = "Control" ":" SP Control-content
*( ";" other-parameter ) *( ";" extension-parameter )
Control-content = [CFWS] control-message [CFWS] Control-content = [CFWS] control-message [CFWS]
control-message = <empty> control-message = <empty>
However, the rule given above for control-message is incomplete. However, the rule given above for control-message is incomplete.
Further alternatives will be added incrementally as the various Further alternatives will be added incrementally as the various
control-messages are introduced in section 7, or in extensions to control-messages are introduced in section 7, or in extensions to
this standard, using the "=/" notation defined in [RFC 2234]. For this standard, using the "=/" notation defined in [RFC 2234]. For
example, a typical CONTROL-message would be defined as follows: example, a typical CONTROL-message would be defined as follows:
control-message =/ CONTROL-message control-message =/ CONTROL-message
CONTROL-message = "CONTROL" CONTROL-arguments CONTROL-message = "CONTROL" CONTROL-arguments
CONTROL-arguments = <the argument(s) specific to that CONTROL-arguments = <the argument(s) specific to that
CONTROL-message> CONTROL-message>
where "CONTROL" is a "verb" which is (and MUST be) of the syntactic where "CONTROL" is a "verb" which is (and MUST be) of the syntactic
form of a token and CONTROL-arguments MUST be of the syntactic form form of a token and CONTROL-arguments MUST be of the syntactic form
of a CFWS-separated list of values (which may require the use of of a CFWS-separated list of values (which may require the use of
quoted-strings if any tspecials or non-ASCII characters are quoted-strings if any tspecials or non-ASCII characters are
involved). involved).
News Article Format February 2003
The verb indicates what action should be taken, and the argument(s) The verb indicates what action should be taken, and the argument(s)
(if any) supply details. In some cases, the body of the article may (if any) supply details. In some cases, the body of the article may
also contain details. also contain details.
An article with a Control-header MUST NOT also have a Supersedes- An article with a Control-header MUST NOT also have a Supersedes-
header. header.
NOTE: The presence of a Subject-header starting with the string NOTE: The presence of a Subject-header starting with the string
"cmsg " and followed by a Control-message MUST NOT be construed, "cmsg " and followed by a Control-message MUST NOT be construed,
in the absence of a proper Control-header, as a request to in the absence of a proper Control-header, as a request to
skipping to change at page 53, line 51 skipping to change at page 55, line 28
software). See also section 5.4. software). See also section 5.4.
6.14. Approved 6.14. Approved
The Approved-header indicates the mailing addresses (possibly The Approved-header indicates the mailing addresses (possibly
including the full names) of the persons or entities approving the including the full names) of the persons or entities approving the
article for posting. article for posting.
header =/ Approved-header header =/ Approved-header
Approved-header = "Approved" ":" SP Approved-content Approved-header = "Approved" ":" SP Approved-content
*( ";" other-parameter ) *( ";" extension-parameter )
Approved-content = From-content ; see 5.2 Approved-content = From-content ; see 5.2
Each mailbox contained in the Approved-content MUST be that of one of Each mailbox contained in the Approved-content MUST be that of one of
the person(s) or entity(ies) in question, and one of those mailboxes the person(s) or entity(ies) in question, and one of those mailboxes
MUST be that of the actual injector of the article. MUST be that of the actual injector of the article.
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
serving agents MUST (and relaying agents MAY) reject the article. serving agents MUST (and relaying agents MAY) reject the article.
News Article Format August 2002
Please see section 8.2.2 for how injecting agents should treat Please see section 8.2.2 for how injecting agents should treat
postings to moderated groups that do not contain this header. postings to moderated groups that do not contain this header.
An Approved-header is also required in certain control messages, to An Approved-header is also required in certain control messages, to
reduce the risks of accidental or unauthorized posting of same. reduce the risks of accidental or unauthorized posting of same.
NOTE: The presence of an Approved-header indicates that the NOTE: The presence of an Approved-header indicates that the
person or entity identified claims to have the necessary person or entity identified claims to have the necessary
authority to post the article in question, thus enabling sites authority to post the article in question, thus enabling sites
that dispute that authority to refuse to accept or to act upon that dispute that authority to refuse to accept or to act upon
skipping to change at page 54, line 30 skipping to change at page 56, line 4
some digital signature scheme (see 7.1), especially in the case some digital signature scheme (see 7.1), especially in the case
of control messages (section 7). of control messages (section 7).
6.15. Supersedes 6.15. Supersedes
The Supersedes-header contains a message identifier specifying an The Supersedes-header contains a message identifier specifying an
article to be superseded upon the arrival of this one. The specified article to be superseded upon the arrival of this one. The specified
article MUST be treated as though a "cancel" control message had article 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
News Article Format February 2003
doubt). The content syntax makes use of syntax defined in [RFC 2822], doubt). The content syntax makes use of syntax defined in [RFC 2822],
subject to the same revisions as in 5.3. subject to the same revisions as in 5.3.
header =/ Supersedes-header header =/ Supersedes-header
Supersedes-header = "Supersedes" ":" SP Supersedes-content Supersedes-header = "Supersedes" ":" SP Supersedes-content
*( ";" other-parameter )
Supersedes-content = [CFWS] msg-id [CFWS] Supersedes-content = [CFWS] msg-id [CFWS]
NOTE: There is no "c" in "Supersedes". NOTE: There is no "c" in "Supersedes".
NOTE: The Supersedes-header defined here has no connection with NOTE: The Supersedes-header defined here has no connection with
the Supersedes-header that sometimes appears in Email messages the Supersedes-header that sometimes appears in Email messages
converted from X.400 according to [RFC 2156]; in particular, the converted from X.400 according to [RFC 2156]; in particular, the
syntax here permits only one msg-id in contrast to the multiple syntax here permits only one msg-id in contrast to the multiple
msg-ids in that Email version. msg-ids in that Email version.
skipping to change at page 55, line 5 skipping to change at page 56, line 33
cancel message (7.3), and the new article inserted into the system as cancel message (7.3), and the new article inserted into the system as
any other new article would have been. any other new article would have been.
Whatever security or authentication checks are normally applied to a Whatever security or authentication checks are normally applied to a
Control cancel message (or may be prescribed for such messages by Control cancel message (or may be prescribed for such messages by
some extension to this standard - see the remarks in 7.1 and 7.3) some extension to this standard - see the remarks in 7.1 and 7.3)
MUST also be applied to an article with a Supersedes-header. In the MUST also be applied to an article with a Supersedes-header. In the
event of the failure of such checks, the article SHOULD be discarded, event of the failure of such checks, the article SHOULD be discarded,
or at most stored as an ordinary article. or at most stored as an ordinary article.
News Article Format August 2002
6.16. Xref 6.16. Xref
The Xref-header is a variant header (4.2.5.3) which indicates where The Xref-header is a variant header (4.2.5.3) which indicates where
an article was filed by the last serving agent to process it. an article was filed by the last serving agent to process it.
header =/ Xref-header header =/ Xref-header
Xref-header = "Xref" ":" SP Xref-content Xref-header = "Xref" ":" SP Xref-content
*( ";" other-parameter ) *( ";" extension-parameter )
Xref-content = [CFWS] server-name 1*( CFWS location ) [CFWS] Xref-content = [CFWS] server-name 1*( CFWS location ) [CFWS]
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
article-locator = 1*( %x21-27 / %x29-3A / %x3C-7E ) article-locator = 1*( %x21-27 / %x29-3A / %x3C-7E )
; US-ASCII printable characters ; US-ASCII printable characters
; except '(' and ';' ; except '(' and ';'
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
newsgroups the article was filed under (which may differ from those newsgroups the article was filed under (which may differ from those
in the Newsgroups-header) and where it was filed under them. The in the Newsgroups-header) and where it was filed under them. The
exact form of an article-locator is implementation-specific. exact form of an article-locator is implementation-specific.
NOTE: The traditional form of an article-locator is a decimal NOTE: The traditional form of an article-locator is a decimal
number, with articles in each newsgroup numbered consecutively number, with articles in each newsgroup numbered consecutively
starting from 1. NNTP demands that such a model be provided, and starting from 1. NNTP demands that such a model be provided, and
much other software expects it, but it seems desirable to permit much other software expects it, but it seems desirable to permit
flexibility for unorthodox implementations. flexibility for unorthodox implementations.
News Article Format February 2003
An agent inserting an Xref-header into an article MUST delete any An agent inserting an Xref-header into an article MUST delete any
previous Xref-header(s). A relaying agent MAY delete it before previous Xref-header(s). A relaying agent MAY delete it before
relaying, but otherwise it SHOULD be ignored by any relaying or relaying, but otherwise it SHOULD be ignored by any relaying or
serving agent receiving it. serving agent receiving it.
It is convenient, though not required, for a serving agent to use the It is convenient, though not required, for a serving agent to use the
same server-name in Xref-headers as the path-identity it uses in same server-name in Xref-headers as the path-identity it uses in
Path-headers (just so long as reading agents can distinguish it from Path-headers (just so long as reading agents can distinguish it from
other serving agents known to them). other serving agents known to them).
6.17. Lines 6.17. Lines
The Lines-header indicates the number of lines in the body of the The Lines-header indicates the number of lines in the body of the
article. article.
header =/ Lines-header header =/ Lines-header
Lines-header = "Lines" ":" SP Lines-content Lines-header = "Lines" ":" SP Lines-content
*( ";" other-parameter ) *( ";" extension-parameter )
Lines-content = [CFWS] 1*DIGIT [CFWS] Lines-content = [CFWS] 1*DIGIT [CFWS]
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.
News Article Format August 2002
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
The User-Agent-header contains information about the user agent The User-Agent-header contains information about the user agent
(typically a newsreader) generating the article, for statistical (typically a newsreader) generating the article, for statistical
purposes and tracing of standards violations to specific software purposes and tracing of standards violations to specific software
needing correction. Although not one of the mandatory headers, needing correction. Although not one of the mandatory headers,
posting agents SHOULD normally include it. posting agents SHOULD normally include it. It is also intended that
this header be suitable for use in Email.
header =/ User-Agent-header header =/ User-Agent-header
User-Agent-header = "User-Agent" ":" SP User-Agent-content User-Agent-header = "User-Agent" ":" SP User-Agent-content
*( ";" other-parameter ) *( ";" extension-parameter )
User-Agent-content = product-token *( CFWS product-token ) User-Agent-content = product *( CFWS product )
product-token = value [ "/" product-version ] ; see 4.1 product = [CFWS] token [CFWS] [ "/" product-version ]
product-version = value product-version = [CFWS] token [CFWS]
This header MAY contain multiple product-tokens identifying the agent This header MAY contain multiple product-tokens identifying the agent
and any subproducts which form a significant part of the posting and any subproducts which form a significant part of the posting
agent, listed in order of their significance for identifying the agent, listed in order of their significance for identifying the
application. Product-tokens should be short and to the point - they application. Product-tokens should be short and to the point - they
MUST NOT be used for information beyond the canonical name of the MUST NOT be used for information beyond the canonical name of the
product and its version. Injecting agents MAY include product product and its version. Injecting agents MAY include product
News Article Format February 2003
information for themselves (such as "INN/1.7.2"), but relaying and information for themselves (such as "INN/1.7.2"), but relaying and
serving agents MUST NOT generate or modify this header to list serving agents MUST NOT generate or modify this header to list
themselves. themselves.
NOTE: Variations from [RFC 2616] which describes a similar NOTE: A product, being composed of a token, can contain only
facility for the HTTP protocol: US-ASCII characters. Where the full name of an agent is
expressed in a language requiring non-ASCII characters, it is
suggested that an arbitrary (but easily recognizable) US_ASCII
token be provided, followed by the full name in the form of a
comment.
1. use of arbitrary text or octets from character sets other NOTE: Minor variations from [RFC 2616] which describes a similar
than US-ASCII in a product-token may require the use of a facility for the HTTP protocol:
quoted-string,
2. "{" and "}" are allowed in a value (product-token and 1. "{" and "}" are allowed in a token (product and product-
product-version) in Netnews, version) in Netnews,
3. UTF-8 replaces ISO-8859-1 as charset assumption. 2. Comments are permitted wherever whitespace is allowed.
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 its full name or platform
should be concise. Use as an advertising medium (in the mundane information, and should be concise. Use as an advertising medium
sense) is discouraged. (in the mundane sense) is discouraged.
6.18.1. Examples 6.18.1. Examples
User-Agent: tin/1.2-PL2 User-Agent: tin/1.2-PL2
User-Agent: tin/1.3-950621beta-PL0 (Unix) User-Agent: tin/1.3-950621beta-PL0 (Unix)
User-Agent: tin/unoff-1.3-BETA-970813 (UNIX) (Linux/2.0.30 (i486)) User-Agent: tin/unoff-1.3-BETA-970813 (UNIX) (Linux/2.0.30 (i486))
User-Agent: tin/pre-1.4-971106 (UNIX) (Linux/2.0.30 (i486)) User-Agent: tin/pre-1.4-971106 (UNIX) (Linux/2.0.30 (i486))
User-Agent: Mozilla/4.02b7 (X11; I; en; HP-UX B.10.20 9000/712) User-Agent: Mozilla/4.02b7 (X11; I; en; HP-UX B.10.20 9000/712)
User-Agent: Microsoft-Internet-News/4.70.1161 User-Agent: Microsoft-Internet-News/4.70.1161
News Article Format August 2002
User-Agent: Gnus/5.4.64 XEmacs/20.3beta17 ("Bucharest") User-Agent: Gnus/5.4.64 XEmacs/20.3beta17 ("Bucharest")
User-Agent: Pluto/1.05h (RISC-OS/3.1) NewsHound/1.30 User-Agent: Pluto/1.05h (RISC-OS/3.1) NewsHound/1.30
User-Agent: inn/1.7.2 User-Agent: inn/1.7.2
User-Agent: telnet User-Agent: telnet
NOTE: This header supersedes the role performed redundantly by NOTE: This header supersedes the role performed redundantly by
experimental headers such as X-Newsreader, X-Mailer, X-Posting- experimental headers such as X-Newsreader, X-Mailer, X-Posting-
Agent, X-Http-User-Agent, and other headers previously used on Agent, X-Http-User-Agent, and other headers previously used on
Usenet for this purpose. Use of these experimental headers Usenet and in Email for this purpose. Use of these experimental
SHOULD be discontinued in favor of the single, standard User- headers SHOULD be discontinued in favor of the single, standard
Agent-header which can be used freely both in Netnews and Email User-Agent-header.
(except that non-ASCII characters would be inappropriate in
email).
6.19. Injector-Info 6.19. Injector-Info
The Injector-Info-header SHOULD be added to each article by the The Injector-Info-header SHOULD be added to each article by the
injecting agent in order to provide information as to how that injecting agent in order to provide information as to how that
article entered the Netnews system and to assist in tracing its true article entered the Netnews system and to assist in tracing its true
origin. origin.
header =/ Injector-Info-header header =/ Injector-Info-header
News Article Format February 2003
Injector-Info-header Injector-Info-header
= "Injector-Info" ":" SP Injector-Info-content = "Injector-Info" ":" SP Injector-Info-content
*( ";" ( Injector-Info-parameter / *( ";" ( Injector-Info-parameter /
other-parameter ) ) extension-parameter ) )
Injector-Info-content Injector-Info-content
= [CFWS] path-identity [CFWS] = [CFWS] path-identity [CFWS]
Injector-Info-parameter Injector-Info-parameter
= posting-host-parameter / = posting-host-parameter /
posting-account-parameter / posting-account-parameter /
posting-sender-parameter / posting-sender-parameter /
posting-logging-parameter / posting-logging-parameter /
posting-date-parameter posting-date-parameter
; for {USENET}-parameters see 4.1 ; for {USENET}-parameters see 4.1
posting-host-parameter posting-host-parameter
skipping to change at page 58, line 4 skipping to change at page 59, line 38
posting-sender-parameter posting-sender-parameter
= <a parameter with attribute "sender" = <a parameter with attribute "sender"
and value some sender-value> and value some sender-value>
sender-value = mailbox / "verified" sender-value = mailbox / "verified"
posting-logging-parameter posting-logging-parameter
= <a parameter with attribute "logging-data" = <a parameter with attribute "logging-data"
and any value> and any value>
posting-date-parameter posting-date-parameter
= <a parameter with attribute "posting-date" = <a parameter with attribute "posting-date"
and value some date-time> and value some date-time>
News Article Format August 2002
An Injector-Info-header MUST NOT be added to an article by any agent An Injector-Info-header MUST NOT be added to an article by any agent
other than an injecting agent. Any Injector-Info-header present when other than an injecting agent. Any Injector-Info-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 Injector-Info-header will always relate to the injected twice, the Injector-Info-header will always relate to the
second injection. second injection.
The path-identity MUST be the same as the path-identity prepended to The path-identity MUST be the same as the path-identity prepended to
the Path-header by that same injecting agent which, following section the Path-header by that same injecting agent which, following section
skipping to change at page 58, line 28 skipping to change at page 60, line 5
Although comments and folding of white space are permitted throughout Although comments and folding of white space are permitted throughout
the Injector-Info-content specification, it is RECOMMENDED that the Injector-Info-content specification, it is RECOMMENDED that
folding is not used within any parameter (but only before or after folding is not used within any parameter (but only before or after
the ";" separating those parameters), and that comments are only used the ";" separating those parameters), and that comments are only used
following the last parameter. It is also RECOMMENDED that such following the last parameter. It is also RECOMMENDED that such
parameters as are present are included in the order in which they parameters as are present are included in the order in which they
have been defined in the syntax above. An injecting agent SHOULD use have been defined in the syntax above. An injecting agent SHOULD use
a consistent form of this header for all articles emanating from the a consistent form of this header for all articles emanating from the
same or similar origins. same or similar origins.
News Article Format February 2003
NOTE: The effect of those recommendations is to facilitate the NOTE: The effect of those recommendations is to facilitate the
recognition of articles arising from certain designated origins recognition of articles arising from certain designated origins
(as in the so-called "killfiles" which are available in some (as in the so-called "killfiles" which are available in some
reading agents). Observe that the order within the syntax has reading agents). Observe that the order within the syntax has
been chosen to place last those parameters which are most likely been chosen to place last those parameters which are most likely
to change between successive articles posted from the same to change between successive articles posted from the same
origin. origin.
NOTE: To comply with the overall "attribute = value" syntax of NOTE: To comply with the overall "attribute = value" syntax of
parameters, any value containing an IPv6address, a date-time, a parameters, any value containing an IPv6address, a date-time, a
skipping to change at page 59, line 4 skipping to change at page 60, line 39
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,
the parameters included SHOULD be sufficient to enable the the parameters included SHOULD be sufficient to enable the
administrator to identify its true origin (which parameters are administrator to identify its true origin (which parameters are
best suited to this purpose will vary with the nature of the best suited to this purpose will vary with the nature of the
injecting site and of its relationship to the posters who use it - injecting site and of its relationship to the posters who use it -
News Article Format August 2002
there is no benefit in including parameters which contribute there is no benefit in including parameters which contribute
nothing to this aim). An administrator MAY, with those parameters nothing to this aim). An administrator MAY, with those parameters
where the syntax so allows, use cryptic notations interpretable where the syntax so allows, use cryptic notations interpretable
only by himself if he considers it appropriate to protect the only by himself if he considers it appropriate to protect the
privacy of that origin. privacy of that origin.
2. To enable relaying, serving and reading agents to recognize 2. To enable relaying, serving and reading agents to recognize
articles from origins which they might wish to reject, divert, or articles from origins which they might wish to reject, divert, or
otherwise handle specially, for reasons of site policy. otherwise handle specially, for reasons of site policy.
3. To enable the timely identification of spews of articles arising 3. To enable the timely identification of spews of articles arising
from a common origin. from a common origin.
An injecting agent MUST NOT include any Injector-Info-parameter An injecting agent MUST NOT include any Injector-Info-parameter
unless it has positive evidence of its correctness. An injecting unless it has positive evidence of its correctness. An injecting
agent MAY include other-parameters with x-token attributes which will agent MAY include extension-parameters with x-token attributes which
assist in identifying the origin of the article. will assist in identifying the origin of the article.
NOTE: Administrators of injecting agents can choose which NOTE: Administrators of injecting agents can choose which
selection of the following parameters best enables them to fulfil selection of the following parameters best enables them to fulfil
their responsibilities. Some of these parameters identify the their responsibilities. Some of these parameters identify the
source of the article explicitly whereas others do so indirectly, source of the article explicitly whereas others do so indirectly,
News Article Format February 2003
thus affording more privacy to posters who value their anonymity, thus affording more privacy to posters who value their anonymity,
but also making harder the tracking of malicious disruption of the but also making harder the tracking of malicious disruption of the
network, especially so if the administrators choose not to network, especially so if the administrators choose not to
cooperate. There is thus a balance to be struck between the needs cooperate. There is thus a balance to be struck between the needs
of privacy on the one hand and the good order of Usenet on the of privacy on the one hand and the good order of Usenet on the
other, and administrators need to be aware of this when other, and administrators need to be aware of this when
formulating their policies. formulating their policies.
6.19.1.1. The posting-host-parameter 6.19.1.1. The posting-host-parameter
skipping to change at page 60, line 5 skipping to change at page 61, line 38
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 SHOULD be in a cryptic notation received the article. It SHOULD be in a cryptic notation
understandable only by the administrator of the injecting agent, but understandable only by the administrator of the injecting agent, but
it MUST be such that a given source gives rise to the same posting- it MUST be such that a given source gives rise to the same posting-
account, at least in the short term. If the injecting agent is unable account, at least in the short term. If the injecting agent is unable
to meet that obligation, then it should use a posting-logging- to meet that obligation, then it should use a posting-logging-
parameter instead. parameter instead.
News Article Format August 2002
6.19.1.3. The posting-sender-parameter 6.19.1.3. The posting-sender-parameter
This parameter identifies the mailbox of the verified sender of the This parameter identifies the mailbox of the verified sender of the
article (alternatively, it uses the token "verified" to indicate that article (alternatively, it uses the token "verified" to indicate that
at least any addr-spec in the Sender-header of the article, or in the at least any addr-spec in the Sender-header of the article, or in the
From-header if the Sender-header is absent, is correct). From-header if the Sender-header is absent, is correct).
NOTE: An injecting agent is unlikely to be able to make use of NOTE: An injecting agent is unlikely to be able to make use of
this parameter except in cases where it is running on a machine this parameter except in cases where it is running on a machine
which is aware of the user-space in which the posting agent is which is aware of the user-space in which the posting agent is
operating. This parameter should be used in preference to a operating. This parameter should be used in preference to a
posting-account-parameter in such situations. posting-account-parameter in such situations.
6.19.1.4. The posting-logging-parameter 6.19.1.4. The posting-logging-parameter
This parameter contains information (typically a session number or This parameter contains information (typically a session number or
other non-persistent means of identifying a posting account) which other non-persistent means of identifying a posting account) which
will enable the true origin of the article to be determined by will enable the true origin of the article to be determined by
reference to logging information kept by the injecting agent. reference to logging information kept by the injecting agent.
News Article Format February 2003
6.19.1.5. The posting-date-parameter 6.19.1.5. The posting-date-parameter
This parameter identifies the time at which the article was injected This parameter identifies the time at which the article was injected
(as distinct from the Date-header, which indicates when it was (as distinct from the Date-header, which indicates when it was
written). written).
6.19.2. Example 6.19.2. Example
Injector-Info: news2.isp.net; posting-host=modem-15.pop.isp.net; Injector-Info: news2.isp.net; posting-host=modem-15.pop.isp.net;
posting-account=client0002623; logging-data=2427; posting-account=client0002623; logging-data=2427;
skipping to change at page 61, line 5 skipping to change at page 62, line 38
Complaints-To-content Complaints-To-content
= address-list = address-list
A Complaints-To-header MUST NOT be added to an article by any agent A Complaints-To-header MUST NOT be added to an article 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.
News Article Format August 2002
The specified mailbox is for sending complaints concerning the The specified mailbox is for sending complaints concerning the
behaviour of the poster of the article; it SHOULD NOT be used for behaviour of the poster of the article; it SHOULD NOT be used for
matters concerning propagation, protocol problems, etc. which should matters concerning propagation, protocol problems, etc. which should
be addressed to "usenet@" or "news@" the path-identity which was be addressed to "usenet@" or "news@" the path-identity which was
prepended to the Path-header by the injecting agent, in accordance prepended to the Path-header by the injecting agent, in accordance
with section 5.6.2. In the absence of this header, complaints with section 5.6.2. In the absence of this header, complaints
concerning a poster's behaviour MAY be addressed to "abuse@" that concerning a poster's behaviour MAY be addressed to "abuse@" that
path-identity (although section 5.6.2 provides no obligation for that path-identity (although section 5.6.2 provides no obligation for that
address to be mailable at an injecting agent that is not provided for address to be mailable at an injecting agent that is not provided for
the use of the general public). the use of the general public).
skipping to change at page 61, line 29 skipping to change at page 63, line 4
6.21.1. Syntax 6.21.1. Syntax
The following headers may be used within articles conforming to this The following headers may be used within articles conforming to this
standard. standard.
MIME-Version: [RFC 2045] MIME-Version: [RFC 2045]
Content-Type: [RFC 2045],[RFC 2046] Content-Type: [RFC 2045],[RFC 2046]
Content-Transfer-Encoding: [RFC 2045] Content-Transfer-Encoding: [RFC 2045]
Content-ID: [RFC 2045] Content-ID: [RFC 2045]
News Article Format February 2003
Content-Description: [RFC 2045] Content-Description: [RFC 2045]
Content-Disposition: [RFC 2183] Content-Disposition: [RFC 2183]
Content-Location: [RFC 2557] Content-Location: [RFC 2557]
Content-Language: [RFC 3282]
Content-MD5: [RFC 1864] Content-MD5: [RFC 1864]
The RFCs listed are deemed to be incorporated into this standard to The RFCs listed are deemed to be incorporated into this standard to
the extent necessary to facilitate their usage within Netnews, the extent necessary to facilitate their usage within Netnews,
subject to the revised syntax of parameter given in this standard subject to the revised syntax of parameter given in this standard
(which permits UTF-xtra-chars to appear within quoted-strings used as (which permits UTF-xtra-chars to appear within quoted-strings used as
values), and subject to curtailment of that usage as described in the values), and subject to curtailment of that usage as described in the
following sections. Moreover, extensions to those standards following sections. Moreover, extensions to those standards
registered in accordance with [RFC 2048] are also available for use registered in accordance with [RFC 2048] are also available for use
within Netnews, as indeed is any other header in the Content-* series within Netnews, as indeed is any other header in the Content-* series
skipping to change at page 61, line 54 skipping to change at page 63, line 32
Insofar as the syntax for these headers, as given in those RFCs does Insofar as the syntax for these headers, as given in those RFCs does
not specify precisely where whitespace and comments may occur not specify precisely where whitespace and comments may occur
(whether in the form of WSP, FWS or CFWS), the usage defined in this (whether in the form of WSP, FWS or CFWS), the usage defined in this
standard, and failing that in [RFC 2822], and failing that in [RFC standard, and failing that in [RFC 2822], and failing that in [RFC
822] MUST be followed. In particular, there MUST NOT be any WSP 822] MUST be followed. In particular, there MUST NOT be any WSP
between a header-name and the following colon and there MUST be a SP between a header-name and the following colon and there MUST be a SP
following that colon. following that colon.
6.21.2. Content-Type 6.21.2. Content-Type
The Content-Type: "text/plain" is the default type for any news If the contents of an article is something other than plain text in
article, but the recommendations and limits on line lengths set out the US-ASCII charset (these being the default assumptions), an
in section 4.5 Ought to be observed. appropriate Content-Type-header MUST be included.
When the Content-Type is "text/plain", the recommendations and limits
on line lengths set out 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
News Article Format August 2002
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
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 3156] for use within application types defined in [RFC 1847] and [RFC 3156] for use within
"multipart/signed" articles, and the type "application/pgp-keys" (or "multipart/signed" articles, and the type "application/pgp-keys" (or
other similar types containing digital certificates) may be used other similar types containing digital certificates) may be used
freely. freely.
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
News Article Format February 2003
case of those prescribed for use in control messages (7.2.1.2 and case of those prescribed for use in control messages (7.2.1.2 and
7.2.4.1). 7.2.4.1).
6.21.2.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. article into several smaller ones.
NOTE: This Content-Type is not recommended for textual articles NOTE: This Content-Type is not recommended for textual articles
because the Content-Type, and in particular the charset, of the because the Content-Type, and in particular the charset, of the
skipping to change at page 63, line 5 skipping to change at page 64, line 40
IF this Content-Type is used, then the "id" parameter SHOULD be in 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 form of a unique message identifier (but different from that in
the Message-ID-header of any of the parts). The second and subsequent the Message-ID-header of any of the parts). The second and subsequent
parts SHOULD contain References-headers referring to all the previous parts SHOULD contain References-headers referring to all the previous
parts, thus enabling reading agents with threading capabilities to parts, thus enabling reading agents with threading capabilities to
present them in the correct order. Reading agents MAY then provide a present them in the correct order. Reading agents MAY then provide a
facility to recombine the parts into a single article (but this facility to recombine the parts into a single article (but this
standard does not require them to do so). standard does not require them to do so).
News Article Format August 2002
6.21.2.2. Message/rfc822 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 an email message) of complete news articles which usually, as part of an email message) of complete news articles which
have already been posted to Netnews and which are for the information have already been posted to Netnews and which are for the information
of the recipient, and do not constitute a request to repost them of the recipient, and do not constitute a request to repost them
(refer to 6.21.6.2 for the now obsolete "message/news" formerly (refer to 6.21.6.2 for the now obsolete "message/news" formerly
intended for this purpose). intended for this purpose).
In the case where such an encapsulated news article has Content- In the case where such an encapsulated news article is to be
Transfer-Encoding "8bit" or where its headers contain any UTF8-xtra- transported by email and it has Content-Transfer-Encoding "8bit", the
chars (2.4.2), it might not be possible to transport it by email Content-Transfer-Encoding may need to be changed, although there
without some prior transformations, although there should be few should be no problems if the email transport supports 8BITMIME [RFC
problems if the email transport supports 8BITMIME [RFC 2821]. The 2821]. If, however, its headers contain any UTF8-xtra-chars (2.4.2),
problems that arise are similar to those encountered by an outgoing the requirements on transformations given in section 8.8.1.1 MUST be
gateway, and therefore the advice on transformations given in section followed. It may be necessary to reverse these changes at the far end
8.8.1 should be followed. It may be necessary to reverse such if certain forms of digital signature have been employed in the
transformations at the far end if certain forms of digital signatures article.
have been employed in the article.
News Article Format February 2003
6.21.2.3. Message/external-body 6.21.2.3. Message/external-body
The Content-Type "message/external-body" could be appropriate for The Content-Type "message/external-body" could be appropriate 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.
6.21.2.4. Multipart types 6.21.2.4. Multipart types
The Content-Types "multipart/mixed", "multipart/parallel" and The Content-Types "multipart/mixed", "multipart/parallel" and
skipping to change at page 64, line 4 skipping to change at page 65, line 40
NOTE: The various recommendations given above regarding the NOTE: The various recommendations given above regarding the
usage of particular Content-Types apply also to the individual usage of particular Content-Types apply also to the individual
parts of these multiparts. parts of these multiparts.
6.21.3. Content-Transfer-Encoding 6.21.3. Content-Transfer-Encoding
"Content-Transfer-Encoding: 7bit" is sufficient for article bodies "Content-Transfer-Encoding: 7bit" is sufficient for article bodies
(or parts of multiparts) written in pure US-ASCII (or most other (or parts of multiparts) written in pure US-ASCII (or most other
material representable in 7 bits). Posting agents SHOULD specify material representable in 7 bits). Posting agents SHOULD specify
"Content-Transfer-Encoding: 8bit" for all other cases unless there "Content-Transfer-Encoding: 8bit" for all other cases unless there
News Article Format August 2002
are pressing reasons to do otherwise. They MAY use "8bit" encoding are pressing reasons to do otherwise. They MAY use "8bit" encoding
even when "7bit" encoding would have sufficed. Examples of such even when "7bit" encoding would have sufficed. Examples of such
pressing reasons are the following: pressing reasons are the following:
1. The content type implies that the content is (or may be) "8bit- 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 unsafe"; i.e. it may contain octets equivalent to the US-ASCII
characters CR or LF (other than in the combination CRLF) or NUL. characters CR or LF (other than in the combination CRLF) or NUL.
In that case one of the Content-Transfer-Encodings "base64" or In that case one of the Content-Transfer-Encodings "base64" or
"quoted-printable" MUST be used, and reading agents MUST be able "quoted-printable" MUST be used, and reading agents MUST be able
to handle both of them. Encoding "binary" MUST NOT be used (except to handle both of them. Encoding "binary" MUST NOT be used (except
in cooperating subnets with alternative transport arrangements) in cooperating subnets with alternative transport arrangements)
because this standard does not mandate a transport mechanism that because this standard does not mandate a transport mechanism that
could support it. could support it.
NOTE: If a future extension to the MIME standards were to NOTE: If a future extension to the MIME standards were to
provide a more compact encoding of binary suited to transport provide a more compact encoding of binary suited to transport
over an 8bit channel, it could be considered as an alternative over an 8bit channel, it could be considered as an alternative
to base64 once it had gained widespread acceptance. to base64 once it had gained widespread acceptance.
News Article Format February 2003
2. It is often the case that "application" Content-Types are textual 2. It is often the case that "application" Content-Types are textual
in nature, and intelligible to humans as well as to machines, and in nature, and intelligible to humans as well as to machines, and
where this state can be recognized by the posting agent (either where this state can be recognized by the posting agent (either
through knowledge of the particular application type or by through knowledge of the particular application type or by
testing) the material SHOULD NOT be treated as 8bit-unsafe; this testing) the material SHOULD NOT be treated as 8bit-unsafe; this
has the added benefit, where the posting agent uses other than has the added benefit, where the posting agent uses other than
CRLF for line endings internally, of automatically ensuring that CRLF for line endings internally, of automatically ensuring that
line endings are processed correctly during transport. line endings are processed correctly during transport.
If, on the other hand, the posting agent recognizes that the If, on the other hand, the posting agent recognizes that the
skipping to change at page 65, line 4 skipping to change at page 66, line 42
in the case of 16-bit character sets such as UTF-16 ([UNICODE 3.2] in the case of 16-bit character sets such as UTF-16 ([UNICODE 3.2]
or [ISO/IEC 10646]). In addition, where it is known that the or [ISO/IEC 10646]). In addition, where it is known that the
material is subsequently to be gatewayed from Netnews to Email material is subsequently to be gatewayed from Netnews to Email
(8.8), the encoding "quoted-printable" MAY be used (otherwise the (8.8), the encoding "quoted-printable" MAY be used (otherwise the
gateway might have to re-encode it itself). gateway might have to re-encode it itself).
4. Some protocols REQUIRE the use of a particular Content-Transfer- 4. Some protocols REQUIRE the use of a particular Content-Transfer-
Encoding. In particular, the authentication protocol based on Encoding. In particular, the authentication protocol based on
OpenPGP defined in [RFC 3156] mandates the use of one of the OpenPGP defined in [RFC 3156] mandates the use of one of the
encodings "quoted-printable" or "base64". Whilst posters might be encodings "quoted-printable" or "base64". Whilst posters might be
News Article Format August 2002
tempted to risk the use of "8bit" or "7bit" encodings (and indeed tempted to risk the use of "8bit" or "7bit" encodings (and indeed
the referenced standard recommends that signed messages using the referenced standard recommends that signed messages using
those encodings be accepted and interpreted), they should be those encodings be accepted and interpreted), they should be
warned that differences in the treatment of trailing whitespace warned that differences in the treatment of trailing whitespace
between OpenPGP [RFC 2440] and earlier versions of PGP may render between OpenPGP [RFC 2440] and earlier versions of PGP may render
signatures written with the one unverifiable by the other; and, signatures written with the one unverifiable by the other; and,
moreover, Usenet articles are very likely to include trailing moreover, Usenet articles are very likely to include trailing
whitespace in the form of a personal signature (4.3.2). whitespace in the form of a personal signature (4.3.2).
5. The Content-Type message/partial [RFC 2046] is required to use 5. The Content-Type message/partial [RFC 2046] is required to use
encoding "7bit" (the encapsulated complete message may itself use encoding "7bit" (the encapsulated complete message may itself use
encoding "quoted-printable" or "base64", but that information is encoding "quoted-printable" or "base64", but that information is
only conveyed along with the first of the partial parts). only conveyed along with the first of the partial parts).
NOTE: Although there would actually be no problem using encoding NOTE: Although there would actually be no problem using encoding
"8bit" in a pure Netnews (as opposed to Email) environment, this "8bit" in a pure Netnews (as opposed to Email) environment, this
standard discourages (see 6.21.2.1) the use of "message/partial" standard discourages (see 6.21.2.1) the use of "message/partial"
except for binary material, which will likely be encoded to pass except for binary material, which will likely be encoded to pass
through "7bit" in any case. through "7bit" in any case.
News Article Format February 2003
Injecting and relaying agents MUST NOT change the encoding of Injecting and relaying agents MUST NOT change the encoding of
articles passed to them. Gateways SHOULD NOT change the encoding articles passed to them. Gateways SHOULD NOT change the encoding
unless absolutely necessary. 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
skipping to change at page 66, line 5 skipping to change at page 67, line 40
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.2.1.2, for "application/news- For "application/news-groupinfo" see 7.2.1.2, for "application/news-
checkgroups" see 7.2.4.1, and for "application/news-transmission" see checkgroups" see 7.2.4.1, and for "application/news-transmission" see
the following section. the following section.
News Article Format August 2002
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 provides one of the methods for mailing articles to moderators type provides one of the methods for mailing articles to moderators
(see 8.2.2) and it is also the preferred method when sending to an (see 8.2.2) and it is also the preferred method when sending to an
email-to-news gateway (see 8.8.1). email-to-news gateway (see 8.8.2).
NOTE: The benefit of such encapsulation is that it removes NOTE: The benefit of such encapsulation is that it removes
possible conflict between news and email headers and it provides possible conflict between news and email headers and it provides
a convenient way of "tunnelling" a news article through a a convenient way of "tunnelling" a news article through a
transport medium that does not support 8bit characters. transport medium that does not support 8bit characters.
The MIME content type definition of "application/news-transmission" The MIME content type definition of "application/news-transmission"
is: is:
MIME type name: application MIME type name: application
MIME subtype name: news-transmission MIME subtype name: news-transmission
Required parameters: none Required parameters: none
Optional parameters: usage=moderate Optional parameters: usage=moderate
News Article Format February 2003
usage=inject usage=inject
usage=relay usage=relay
Encoding considerations: A transfer-encoding (such as Quoted- Encoding considerations: A transfer-encoding (such as Quoted-
Printable or Base64) different from that of Printable or Base64) different from that of
the article transmitted MAY be supplied the article transmitted MAY be supplied
(perhaps en route) to ensure correct (perhaps en route) to ensure correct
transmission over some 7bit transport transmission over some 7bit transport
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
skipping to change at page 67, line 5 skipping to change at page 68, line 39
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 August 2002
batch = 1*( batch-header article ) batch = 1*( batch-header article )
batch-header = "#!" SP rnews SP article-size CRLF batch-header = "#!" SP rnews SP article-size CRLF
rnews = %x72.6E.65.77.73 ; case sensitive "rnews" rnews = %x72.6E.65.77.73 ; case sensitive "rnews"
article-size = 1*DIGIT article-size = 1*DIGIT
Thus a batch is a sequence of articles, each prefixed by a header Thus a batch is a sequence of articles, each prefixed by a header
line that includes its size. The article-size is a decimal count of line that includes its size. The article-size is a decimal count of
the octets in the article, counting each CRLF as one octet regardless the octets in the article, counting each CRLF as one octet regardless
of how it is actually represented. of how it is actually represented.
skipping to change at page 67, line 28 skipping to change at page 69, line 4
UNIX script, it is EXTREMELY unwise to feed such a batch into a UNIX script, it is EXTREMELY unwise to feed such a batch into a
command interpreter in anticipation of it running a command command interpreter in anticipation of it running a command
named "rnews"; the security implications of so doing would be named "rnews"; the security implications of so doing would be
disastrous. disastrous.
6.21.6.2. Message/news obsoleted 6.21.6.2. Message/news obsoleted
The Content-Type "message/news", as previously registered with IANA, The Content-Type "message/news", as previously registered with IANA,
is hereby declared obsolete. It was never widely implemented, and its is hereby declared obsolete. It was never widely implemented, and its
default treatment as "application/octet-stream" by agents that did default treatment as "application/octet-stream" by agents that did
News Article Format February 2003
not recognize it was counter productive. The Content-Type not recognize it was counter productive. The Content-Type
"message/rfc822" SHOULD be used in its place, as already described "message/rfc822" SHOULD be used in its place, as already described
above. above.
6.22. Obsolete Headers 6.22. Obsolete Headers
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
skipping to change at page 68, line 4 skipping to change at page 69, line 39
This is to ensure that the message propagates to all sites which This is to ensure that the message propagates 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 may newsgroup-names so as to improve propagation (but this practice may
cause the control message to propagate also to places where it is cause the control message to propagate also to places where it is
unwanted, or even cause it not to propagate where it should, so it unwanted, or even cause it not to propagate where it should, so it
should not be used without good reason). should not be used without good reason).
The descriptions below set out REQUIREMENTS to be followed by sites The descriptions below set out REQUIREMENTS to be followed by sites
that receive control messages and choose to honour them. However, that receive control messages and choose to honour them. However,
nothing in these descriptions should be taken as overriding the right nothing in these descriptions should be taken as overriding the right
News Article Format August 2002
of any such site, in accordance with its local policy, to deny any of any such site, in accordance with its local policy, to deny any
particular control message, or to refer it to an administrator for particular control message, or to refer it to an administrator for
approval (either as a class or on a case-by-case basis). In approval (either as a class or on a case-by-case basis). In
particular, sites Ought to deny messages not issued by the particular, sites Ought to deny messages not issued by the
appropriate administrative agencies, and therefore SHOULD take such appropriate administrative agencies, and therefore SHOULD take such
steps as are reasonably practicable to validate their authenticity steps as are reasonably practicable to validate their authenticity
(see, for example, section 7.1 below). (see, for example, section 7.1 below).
Relaying Agents MUST propagate even control messages that they do not Relaying Agents MUST propagate even control messages that they do not
recognize. recognize.
skipping to change at page 68, line 27 skipping to change at page 70, line 4
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. Digital Signature of Headers 7.1. Digital Signature of Headers
It is most desirable that group control messages (7.2) in particular It is most desirable that group control messages (7.2) in particular
be authenticated by incorporating them within some digital signature be authenticated by incorporating them within some digital signature
scheme that encompasses other headers closely associated with them scheme that encompasses other headers closely associated with them
(including at least the Approved-, Message-ID- and Date-headers). At (including at least the Approved-, Message-ID- and Date-headers). At
News Article Format February 2003
the time of writing, this is usually done by means of a protocol the time of writing, this is usually done by means of a protocol
known as "PGPverify" ([PGPVERIFY]), and continued usage of this is known as "PGPverify" ([PGPVERIFY]), and continued usage of this is
encouraged at least as an interim measure. encouraged at least as an interim measure.
However, PGPverify is not considered suitable for standardization in However, PGPverify is not considered suitable for standardization in
its present form, for various technical reasons. It is therefore its present form, for various technical reasons. It is therefore
expected that an early extension to this standard will provide a expected that an early extension to this standard will provide a
robust and general purpose digital authentication mechanism with robust and general purpose digital authentication mechanism with
applicability to all situations requiring protection against applicability to all situations requiring protection against
malicious use of, or interference with, headers. That extension malicious use of, or interference with, headers. That extension
skipping to change at page 69, line 4 skipping to change at page 70, line 37
(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.
7.2.1. The 'newgroup' Control Message 7.2.1. The 'newgroup' Control Message
control-message =/ Newgroup-message control-message =/ Newgroup-message
Newgroup-message = "newgroup" Newgroup-arguments Newgroup-message = "newgroup" Newgroup-arguments
Newgroup-arguments = CFWS newsgroup-name [ CFWS newgroup-flag ] Newgroup-arguments = CFWS newsgroup-name [ CFWS newgroup-flag ]
newgroup-flag = "moderated" newgroup-flag = "moderated"
News Article Format August 2002
The "newgroup" control message requests that the specified group be The "newgroup" control message requests that the specified group be
created or changed. If the request is honoured, or if the group created or changed. If the request is honoured, or if the group
already exists on the serving agent, and if the newgroup-flag already exists on the serving agent, and if the newgroup-flag
"moderated" is present, then the group MUST be marked as moderated, "moderated" is present, then the group MUST be marked as moderated,
and vice versa. "Moderated" is the only such flag defined by this and vice versa. "Moderated" is the only such flag defined by this
standard; other flags MAY be defined for use in cooperating subnets, standard; other flags MAY be defined for use in cooperating subnets,
but newgroup messages containing them MUST NOT be acted on outside of but newgroup messages containing them MUST NOT be acted on outside of
those subnets. those subnets.
skipping to change at page 69, line 27 skipping to change at page 71, line 5
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 and control messages with such non-standard flags standard and control messages with such non-standard flags
should be ignored. should be ignored.
The message body comprises or includes an "application/news- The message body comprises or includes an "application/news-
groupinfo" (7.2.1.2) part containing machine- and human-readable groupinfo" (7.2.1.2) part containing machine- and human-readable
information about the group. information about the group.
News Article Format February 2003
It is REQUIRED that the newsgroup-name conforms to all requirements It is REQUIRED that the newsgroup-name conforms to all requirements
set out in section 5.5. This includes the restrictions as to the set out in section 5.5. This includes the restrictions as to the
permitted characters, and the requirement that they be invariant permitted characters, and the requirement that they be invariant
under NFKC normalization. It is essential that those who issue under NFKC normalization. It is essential that those who issue
newgroup messages are aware of their responsibility to enforce this newgroup messages are aware of their responsibility to enforce this
requirement, since some of those conditions are hard to enforce requirement, since some of those conditions are hard to enforce
mechanically. mechanically.
Additionally, the newsgroup-name Ought to conform to whatever Additionally, the newsgroup-name Ought to conform to whatever
policies have been established by the administrative agency, if any, policies have been established by the administrative agency, if any,
skipping to change at page 70, line 5 skipping to change at page 71, line 38
1. An "application/news-groupinfo" part (7.2.1.2) containing the name 1. An "application/news-groupinfo" part (7.2.1.2) containing the name
and newsgroups-line of the group(s). This part MUST be present. and newsgroups-line of the group(s). This part MUST be present.
2. Other parts containing useful information about the background of 2. Other parts containing useful information about the background of
the newgroup message (typically of type "text/plain"). the newgroup message (typically of type "text/plain").
3. Parts containing initial articles for the newsgroup. See section 3. Parts containing initial articles for the newsgroup. See section
7.2.1.3 for details. 7.2.1.3 for details.
News Article Format August 2002
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.
7.2.1.2. Application/news-groupinfo 7.2.1.2. Application/news-groupinfo
The "application/news-groupinfo" body part contains brief information The "application/news-groupinfo" body part contains brief information
skipping to change at page 70, line 30 skipping to change at page 72, line 4
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].
The MIME content type definition of "application/news-groupinfo" is: The MIME content type definition of "application/news-groupinfo" is:
MIME type name: application MIME type name: application
MIME subtype name: news-groupinfo MIME subtype name: news-groupinfo
Required parameters: none Required parameters: none
Disposition: by default, inline Disposition: by default, inline
News Article Format February 2003
Encoding considerations: "7bit" or "8bit" is sufficient and MUST be Encoding considerations: "7bit" or "8bit" is sufficient and MUST be
used to maintain compatibility. used to maintain compatibility.
Security considerations: this type MUST NOT be used except as part Security considerations: this type MUST NOT be used except as part
of a control message for the creation or of a control message for the creation or
modification of a Netnews newsgroup modification of a Netnews newsgroup
Published specification: [USEFOR] Published specification: [USEFOR]
The content of the "application/news-groupinfo" body part is defined The content of the "application/news-groupinfo" body part is defined
as: as:
skipping to change at page 71, line 5 skipping to change at page 72, line 35
[ 1*WSP moderation-flag ] [ 1*WSP moderation-flag ]
newsgroup-description newsgroup-description
= utext *( *WSP utext ) = utext *( *WSP utext )
moderation-flag = %x28.4D.6F.64.65.72.61.74.65.64.29 moderation-flag = %x28.4D.6F.64.65.72.61.74.65.64.29
; case sensitive "(Moderated)" ; case sensitive "(Moderated)"
The newsgroup-description MUST NOT contain any occurrence of the The newsgroup-description MUST NOT contain any occurrence of the
string "(Moderated)" within it. The whole groupinfo-body is intended string "(Moderated)" within it. The whole groupinfo-body is intended
to be interpreted as a text written in the UTF-8 character set. to be interpreted as a text written in the UTF-8 character set.
News Article Format August 2002
The "application/news-groupinfo" is used in conjunction with the The "application/news-groupinfo" is used in conjunction with the
"newgroup" (7.2.1) and "mvgroup" (7.2.3) control messages. The "newgroup" (7.2.1) and "mvgroup" (7.2.3) control messages. The
newsgroup-name in the newsgroups-line MUST agree with the newsgroup- newsgroup-name in the newsgroups-line MUST agree with the newsgroup-
name in the "newgroup" or "mvgroup" control message. The Content- name in the "newgroup" or "mvgroup" control message. The Content-
Type "application/news-groupinfo" MUST NOT be used except as a part Type "application/news-groupinfo" MUST NOT be used except as a part
of such control messages. Although optional, the newsgroups-tag of such control messages. Although optional, the newsgroups-tag
SHOULD be included until such time as this standard has been widely SHOULD be included until such time as this standard has been widely
adopted, to ensure compatibility with present practice. adopted, to ensure compatibility with present practice.
Moderated newsgroups MUST be marked by appending the case sensitive Moderated newsgroups MUST be marked by appending the case sensitive
skipping to change at page 71, line 32 skipping to change at page 73, line 5
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.
News Article Format February 2003
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 serving NEWSGROUPS command, it would also be convenient for serving
agents that keep a "newsgroups" file to store them in that form, agents that keep a "newsgroups" file to store them in that form,
so as to avoid unnecessary conversions. so as to avoid unnecessary conversions.
[If, at the time of publication of this standard, [NNTP] is still [RFC [If, at the time of publication of this standard, [NNTP] is still [RFC
977], that NOTE will need to be changed to indicate that "it is expected 977], that NOTE will need to be changed to indicate that "it is expected
skipping to change at page 72, line 4 skipping to change at page 73, line 36
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).
The Newsgroups-header of the proto-article MUST include the The Newsgroups-header of the proto-article MUST include the
newsgroup-name of the newly created or modified group. It MAY include newsgroup-name of the newly created or modified group. It MAY include
other newsgroup-names. If the proto-article includes a Message-ID- other newsgroup-names. If the proto-article includes a Message-ID-
header, the message identifier in it MUST be different from that of header, the message identifier in it MUST be different from that of
any existing article and from that of the control message as a whole. any existing article and from that of the control message as a whole.
Alternatively such a message identifier MAY be derived by the Alternatively such a message identifier MAY be derived by the
News Article Format August 2002
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 in question has processes the control message AFTER the newsgroup in question has
been created or modified. It MUST NOT be injected if the newsgroup been created or modified. It MUST NOT be injected if the newsgroup
is not, in fact, created (for whatever reason). It MUST NOT be is not, in fact, created (for whatever reason). It MUST NOT be
submitted to any relaying agent for transmission beyond the serving submitted to any relaying agent for transmission beyond the serving
agent(s) upon which the newsgroup creation has just been effected (in agent(s) upon which the newsgroup creation has just been effected (in
other words, it is to be treated as having a "Distribution: local" other words, it is to be treated as having a "Distribution: local"
skipping to change at page 72, line 31 skipping to change at page 74, line 4
except as might arise from that possibility, any except as might arise from that possibility, any
"application/news-transmission" within some nested "multipart/*" "application/news-transmission" within some nested "multipart/*"
structure within the proto-article is not to be activated. structure within the proto-article is not to be activated.
7.2.1.4. Example 7.2.1.4. Example
A "newgroup" with its charter: A "newgroup" with its charter:
From: "example.all Administrator" <admin@noc.example> From: "example.all Administrator" <admin@noc.example>
Newsgroups: example.admin.info,example.admin.announce Newsgroups: example.admin.info,example.admin.announce
News Article Format February 2003
Date: 27 Feb 2002 12:50:22 +0200 Date: 27 Feb 2002 12:50:22 +0200
Subject: cmsg newgroup example.admin.info moderated Subject: cmsg newgroup example.admin.info moderated
Approved: admin@noc.example Approved: admin@noc.example
Control: newgroup example.admin.info moderated Control: newgroup example.admin.info moderated
Message-ID: <ng-example.admin.info-20020227@noc.example> Message-ID: <ng-example.admin.info-20020227@noc.example>
MIME-Version: 1.0 MIME-Version: 1.0
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.
skipping to change at page 73, line 4 skipping to change at page 74, line 34
Newsgroups: example.admin.info Newsgroups: example.admin.info
From: "example.all Administrator" <admin@noc.example> From: "example.all Administrator" <admin@noc.example>
Subject: Charter for example.admin.info Subject: Charter for example.admin.info
Message-ID: <charter-example.admin.info-20020227@noc.example> Message-ID: <charter-example.admin.info-20020227@noc.example>
Distribution: local Distribution: local
Content-Type: text/plain; charset=us-ascii Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
The group example.admin.info contains regularly posted The group example.admin.info contains regularly posted
News Article Format August 2002
information on the example.* hierarchy. information on the example.* hierarchy.
--nxtprt-- --nxtprt--
7.2.2. The 'rmgroup' Control Message 7.2.2. The 'rmgroup' Control Message
control-message =/ Rmgroup-message control-message =/ Rmgroup-message
Rmgroup-message = "rmgroup" Rmgroup-arguments Rmgroup-message = "rmgroup" Rmgroup-arguments
Rmgroup-arguments = CFWS newsgroup-name Rmgroup-arguments = CFWS newsgroup-name
skipping to change at page 73, line 32 skipping to change at page 75, line 4
it ceases to accept new articles. it ceases to accept new articles.
7.2.2.1. Example 7.2.2.1. Example
Plain "rmgroup": Plain "rmgroup":
From: "example.all Administrator" <admin@noc.example> From: "example.all Administrator" <admin@noc.example>
Newsgroups: example.admin.obsolete, example.admin.announce Newsgroups: example.admin.obsolete, example.admin.announce
Date: 4 Apr 2002 22:04 -0900 (PST) Date: 4 Apr 2002 22:04 -0900 (PST)
Subject: cmsg rmgroup example.admin.obsolete Subject: cmsg rmgroup example.admin.obsolete
News Article Format February 2003
Message-ID: <rm-example.admin.obsolete-20020404@noc.example> Message-ID: <rm-example.admin.obsolete-20020404@noc.example>
Approved: admin@noc.example Approved: admin@noc.example
Control: rmgroup example.admin.obsolete Control: rmgroup example.admin.obsolete
The group example.admin.obsolete is obsolete. Please remove it The group example.admin.obsolete is obsolete. Please remove it
from your system. from your system.
7.2.3. The 'mvgroup' Control Message 7.2.3. The 'mvgroup' Control Message
control-message =/ Mvgroup-message control-message =/ Mvgroup-message
skipping to change at page 74, line 4 skipping to change at page 75, line 34
"rmgroup" control message for the first group. "rmgroup" control message for the first group.
The second (new-)newsgroup-name MUST conform to all requirements The second (new-)newsgroup-name MUST conform to all requirements
prescribed for the newsgroup-name of a "newgroup" control message prescribed for the newsgroup-name of a "newgroup" control message
(7.2.1) and Ought, similarly, to conform to any established policies (7.2.1) and Ought, similarly, to conform to any established policies
of the hierarchy. The message body contains an "application/news- of the hierarchy. The message body contains an "application/news-
groupinfo" part (7.2.1.2) containing machine- and human-readable groupinfo" part (7.2.1.2) containing machine- and human-readable
information about the new group, and possibly other subparts as for a information about the new group, and possibly other subparts as for a
"newgroup" control message. The information conveyed in the "newgroup" control message. The information conveyed in the
"application/news-groupinfo" body part, notably its newsgroups-line "application/news-groupinfo" body part, notably its newsgroups-line
News Article Format August 2002
(7.2.1.2), is applied to the new group. (7.2.1.2), is applied to the new group.
When this message is received, the new group is created (if it does When this message is received, the new group is created (if it does
not exist already) as for a "newgroup" control message, and MUST in not exist already) as for a "newgroup" control message, and MUST in
any case be made moderated if a newgroup-flag "moderated" is present, any case be made moderated if a newgroup-flag "moderated" is present,
and vice versa. At the same time, arrangements SHOULD be made to and vice versa. At the same time, arrangements SHOULD be made to
remove the old group (as with a "rmgroup" control message), but only remove the old group (as with a "rmgroup" control message), but only
after a suitable overlap period to allow the network to adjust to the after a suitable overlap period to allow the network to adjust to the
new arrangement. new arrangement.
skipping to change at page 74, line 32 skipping to change at page 76, line 4
NOTE: It is to be expected that different serving agents will NOTE: It is to be expected that different serving agents will
act on this message at different points of time, users of the act on this message at different points of time, users of the
old group will have to become accustomed to the new arrangement, old group will have to become accustomed to the new arrangement,
and followups to already established threads will likely and followups to already established threads will likely
continue under the old group. Therefore, there needs to be an continue under the old group. Therefore, there needs to be an
overlap period during which articles may continue to be accepted overlap period during which articles may continue to be accepted
by relaying and serving agents in either group. This standard by relaying and serving agents in either group. This standard
does not specify any standard period of overlap (though it would does not specify any standard period of overlap (though it would
be expected to be expressed in days rather than in months). The be expected to be expressed in days rather than in months). The
News Article Format February 2003
inhibition of injection of new articles to the old group may inhibition of injection of new articles to the old group may
seem draconian, but it is the surest way to prevent the seem draconian, but it is the surest way to prevent the
changeover from dragging on indefinitely. changeover from dragging on indefinitely.
Since the "mvgroup" control message is newly introduced in this Since the "mvgroup" control message is newly introduced in this
standard and may not be widely implemented initially, it SHOULD be standard and may not be widely implemented initially, it SHOULD be
followed shortly afterwards by a corresponding "newgroup" control followed shortly afterwards by a corresponding "newgroup" control
message; and again, after a reasonable overlap period, it MUST be message; and again, after a reasonable overlap period, it MUST be
followed by a "rmgroup" control message for the old group. followed by a "rmgroup" control message for the old group.
skipping to change at page 75, line 4 skipping to change at page 76, line 34
present when they were injected). On the other hand, the Xref-header present when they were injected). On the other hand, the Xref-header
MAY contain entries for either group (or even both). MAY contain entries for either group (or even both).
NOTE: Some serving agents that use an "active" file permit an NOTE: Some serving agents that use an "active" file permit an
entry of the form "oldgroup xxx yyy =newgroup", which enables entry of the form "oldgroup xxx yyy =newgroup", which enables
any articles arriving for oldgroup to be diverted to newgroup, any articles arriving for oldgroup to be diverted to newgroup,
thus providing a simple implementation of this feature. However, thus providing a simple implementation of this feature. However,
it is known that not all current serving agents will find it is known that not all current serving agents will find
implementation so easy (especially in the short term) which is implementation so easy (especially in the short term) which is
why it is not mandated by this standard. Nevertheless, its why it is not mandated by this standard. Nevertheless, its
News Article Format August 2002
eventual implementation in all serving agents is to be eventual implementation in all serving agents is to be
considered highly desirable. considered highly desirable.
On the other hand, it is recognized that this feature would On the other hand, it is recognized that this feature would
likely not be implementable if the new group was already in likely not be implementable if the new group was already in
existence with existing articles in it. This situation should existence with existing articles in it. This situation should
not normally arise except when there is already some confusion not normally arise except when there is already some confusion
as to which groups are, or are not, supposed to exist in that as to which groups are, or are not, supposed to exist in that
hierarchy. Note that the "mvgroup" control message is not really hierarchy. Note that the "mvgroup" control message is not really
intended to be used for merging two existing groups. intended to be used for merging two existing groups.
7.2.3.1. Example 7.2.3.1. Example
From: "example.all Administrator" <admin@noc.example> From: "example.all Administrator" <admin@noc.example>
Newsgroups: example.oldgroup,example.newgroup,example.admin.announce Newsgroups: example.oldgroup,example.newgroup,example.admin.announce
Date: 30 Apr 2002 22:04 -0500 (EST) Date: 30 Apr 2002 22:04 -0500 (EST)
Subject: cmsg mvgroup example.oldgroup example.newgroup moderated Subject: cmsg mvgroup example.oldgroup example.newgroup moderated
Message-ID: <mvgroup-example.oldgroup-20020430@noc.example> Message-ID: <mvgroup-example.oldgroup-20020430@noc.example>
Approved: admin@noc.example Approved: admin@noc.example
Control: mvgroup example.oldgroup example.newgroup moderated Control: mvgroup example.oldgroup example.newgroup moderated
News Article Format February 2003
MIME-Version: 1.0 MIME-Version: 1.0
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.newgroup The new replacement group (Moderated) example.newgroup The new replacement group (Moderated)
--nxt --nxt
skipping to change at page 76, line 5 skipping to change at page 77, line 41
Checkgroup-arguments= [ chkscope ] [ chksernr ] Checkgroup-arguments= [ chkscope ] [ chksernr ]
chkscope = 1*( CFWS ["!"] newsgroup-name ) chkscope = 1*( CFWS ["!"] newsgroup-name )
chksernr = CFWS "#" 1*DIGIT chksernr = CFWS "#" 1*DIGIT
A "checkgroups" message applies to any (sub-)hierarchy with a prefix A "checkgroups" message applies to any (sub-)hierarchy with a prefix
listed in the chkscope parameter, provided that the rightmost listed in the chkscope parameter, provided that the rightmost
matching newsgroup-name in the list is not immediately preceded by a matching newsgroup-name in the list is not immediately preceded by a
"!". If no chkscope parameter is given, it applies to all "!". If no chkscope parameter is given, it applies to all
hierarchies for which group statements appear in the message. hierarchies for which group statements appear in the message.
News Article Format August 2002
NOTE: Some existing software does not support the "chkscope" NOTE: Some existing software does not support the "chkscope"
parameter. Thus a "checkgroups" message SHOULD also contain the parameter. Thus a "checkgroups" message SHOULD also contain the
groups of other subhierarchies the sender is not responsible groups of other subhierarchies the sender is not responsible
for. "New" software MUST ignore groups which do not fall within for. "New" software MUST ignore groups which do not fall within
the chkscope parameter of the "checkgroups" message. the chkscope parameter of the "checkgroups" message.
The chksernr parameter is a serial number, which can be any positive The chksernr parameter is a serial number, which can be any positive
integer (e.g. just numbered or the date in YYYYMMDD). It SHOULD integer (e.g. just numbered or the date in YYYYMMDD). It SHOULD
increase by an arbitrary value with every change to the group list increase by an arbitrary value with every change to the group list
and MUST NOT ever decrease. and MUST NOT ever decrease.
NOTE: This was added to circumvent security problems in NOTE: This was added to circumvent security problems in
situations where the Date-header cannot be authenticated. situations where the Date-header cannot be authenticated.
Example: Example:
Control: checkgroups de !de.alt #248 Control: checkgroups de !de.alt #248
which includes the whole of the 'de.*' hierarchy, with the exception which includes the whole of the 'de.*' hierarchy, with the exception
News Article Format February 2003
of its 'de.alt.*' sub-hierarchy. of its 'de.alt.*' sub-hierarchy.
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 message is intended to synchronize the NOTE: The checkgroups message is intended to synchronize the
list of newsgroups stored by a serving agent, and their list of newsgroups stored by a serving agent, and their
newsgroup-descriptions, with the lists stored by other serving newsgroup-descriptions, with the lists stored by other serving
agents throughout the network. However, it might be inadvisable agents throughout the network. However, it might be inadvisable
skipping to change at page 77, line 5 skipping to change at page 78, line 41
Required parameters: none Required parameters: none
Disposition: by default, inline Disposition: by default, inline
Encoding considerations: "7bit" or "8bit" is sufficient and MUST be Encoding considerations: "7bit" or "8bit" is sufficient and MUST be
used to maintain compatibility. used to maintain compatibility.
Security considerations: this type MUST NOT be used except as part Security considerations: this type MUST NOT be used except as part
of a checkgroups control message of a checkgroups control message
The content of the "application/news-checkgroups" body part is The content of the "application/news-checkgroups" body part is
defined as: defined as:
News Article Format August 2002
checkgroups-body = *( valid-group CRLF ) checkgroups-body = *( valid-group CRLF )
valid-group = newsgroups-line ; see 7.2.1.2 valid-group = newsgroups-line ; see 7.2.1.2
The 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.
The "application/news-checkgroups" content type is used in The "application/news-checkgroups" content type is used in
conjunction with the "checkgroups" control message (7.2.4). conjunction with the "checkgroups" control message (7.2.4).
NOTE: The possibility of removing a complete hierarchy by means NOTE: The possibility of removing a complete hierarchy by means
of an "invalidation" line beginning with a '!' is no longer of an "invalidation" line beginning with a '!' is no longer
provided by this standard. The intent of the feature was widely provided by this standard. The intent of the feature was widely
misunderstood and it was misused more often than it was used misunderstood and it was misused more often than it was used
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.
News Article Format February 2003
7.3. Cancel 7.3. 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.
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
skipping to change at page 78, line 4 skipping to change at page 79, line 44
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.
control-message =/ Cancel-message control-message =/ Cancel-message
Cancel-message = "cancel" Cancel-arguments Cancel-message = "cancel" Cancel-arguments
Cancel-arguments = CFWS msg-id [CFWS] Cancel-arguments = CFWS msg-id [CFWS]
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
News Article Format August 2002
the same newsgroup, with the same distribution, as the article it is the same newsgroup, with the same distribution, as the article it is
attempting to cancel. attempting to cancel.
A serving agent that elects to honour a cancel message SHOULD make A serving agent that elects to honour a cancel message SHOULD make
the article unavailable for relaying or serving (perhaps by deleting the article unavailable for relaying or serving (perhaps by deleting
it completely). If the target article is unavailable, and the it completely). If the target article is unavailable, and the
acceptability of the cancel message cannot be established without it, acceptability of the cancel message cannot be established without it,
activation of the cancel message SHOULD be delayed until the target activation of the cancel message SHOULD be delayed until the target
article has been seen. See also sections 8.3 and 8.4. article has been seen. See also sections 8.3 and 8.4.
NOTE: It is expected that the security extension envisaged in NOTE: It is expected that the security extension envisaged in
section 7.1 will make more detailed provisions for establishing section 7.1 will make more detailed provisions for establishing
whether honouring a particular cancel message is in order. In whether honouring a particular cancel message is in order. In
particular, it is likely that there will be provision for the particular, it is likely that there will be provision for the
digital signature of 3rd party cancels. digital signature of 3rd party cancels.
News Article Format February 2003
NOTE: A cancel submitted by the poster for an article in a
moderated group will be forwarded to the moderator of that
group, and it is up to that moderator to act upon it (8.7).
NOTE: The former requirement [RFC 1036] that the From and/or NOTE: The former requirement [RFC 1036] that the From and/or
Sender-headers of the cancel message should match those of the Sender-headers of the cancel message should match those of the
original article has been removed from this standard, since it original article has been removed from this standard, since it
only encouraged cancel issuers to conceal their true identity, only encouraged cancel issuers to conceal their true identity,
and it was not usually checked or enforced by canceling and it was not usually checked or enforced by canceling
software. Therefore, both the From and/or Sender-headers and software. Therefore, both the From and/or Sender-headers and
any Approved-header should now relate to the entity responsible any Approved-header should now relate to the entity responsible
for issuing the cancel message. for issuing the cancel message.
7.4. Ihave, sendme 7.4. Ihave, sendme
skipping to change at page 79, line 4 skipping to change at page 80, line 48
control-message =/ Sendme-message control-message =/ Sendme-message
Sendme-message = "sendme" Sendme-arguments Sendme-message = "sendme" Sendme-arguments
Sendme-arguments = Ihave-arguments Sendme-arguments = Ihave-arguments
relayer-name = path-identity ; see 5.6.1 relayer-name = path-identity ; see 5.6.1
ihave-body = *( msg-id CRLF ) ihave-body = *( msg-id CRLF )
sendme-body = ihave-body sendme-body = ihave-body
The body of the message consists of a list of msg-ids, one per line. The body of the message consists of a list of msg-ids, one per line.
[RFC 1036] also permitted the list of msg-ids to appear in the Ihave- [RFC 1036] also permitted the list of msg-ids to appear in the Ihave-
or Sendme-arguments with the syntax or Sendme-arguments with the syntax
News Article Format August 2002
Ihave-arguments = [FWS] *( msg-id FWS ) [relayer-name] Ihave-arguments = [FWS] *( msg-id FWS ) [relayer-name]
but this form SHOULD NOT now be used, though relaying agents MAY but this form SHOULD NOT now be used, though relaying agents MAY
recognize and process it for backward compatibility. recognize and process it for backward compatibility.
The ihave message states that the named relaying agent has received The ihave message states that the named relaying agent has received
articles with the specified message identifiers, which may be of articles with the specified message identifiers, which may be of
interest to the relaying agents receiving the ihave message. The interest to the relaying agents receiving the ihave message. The
sendme message requests that the agent receiving it send the articles sendme message requests that the agent receiving it send the articles
having the specified message identifiers to the named relaying agent. having the specified message identifiers to the named relaying agent.
These control messages are normally sent essentially as point-to- These control messages are normally sent essentially as point-to-
point messages, by using newsgroup-names in the Newsgroups-header of point messages, by using newsgroup-names in the Newsgroups-header of
the form "to." followed by one (or possibly more) components in the the form "to." followed by one (or possibly more) components in the
News Article Format February 2003
form of a relayer-name (see section 5.5.1 which forbids "to" as the form of a relayer-name (see section 5.5.1 which forbids "to" as the
first component of a newsgroup-name). The control message SHOULD then first component of a newsgroup-name). The control message SHOULD then
be delivered ONLY to the relaying agent(s) identified by that be delivered ONLY to the relaying agent(s) identified by that
relayer-name, and any relaying agent receiving such a message which relayer-name, and any relaying agent receiving such a message which
includes its own relayer-name MUST NOT propagate it further. Each includes its own relayer-name MUST NOT propagate it further. Each
pair of relaying agent(s) sending and receiving these messages MUST pair of relaying agent(s) sending and receiving these messages MUST
be immediate neighbors, exchanging news directly with each other. be immediate neighbors, exchanging news directly with each other.
Each relaying agent advertises its new arrivals to the other using Each relaying agent advertises its new arrivals to the other using
ihave messages, and each uses sendme messages to request the articles ihave messages, and each uses sendme messages to request the articles
it lacks. it lacks.
skipping to change at page 79, line 51 skipping to change at page 81, line 38
standard: standard:
sendsys sendsys
version version
whogets whogets
senduuname senduuname
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. Insofar as
these duties are described as sequences of steps to be followed, it
should be understood that it is the effect of these sequences that is
important, and implementations may use any method that gives rise to
that same effect.
In this section, the word "trusted", as applied to the source of some In this section, the word "trusted", as applied to the source of some
article, means that an agent processing that article has verified, by article, means that an agent processing that article has verified, by
some means, the identity of that source (which may be another agent some means, the identity of that source (which may be another agent
or a poster). or a poster).
News Article Format August 2002
NOTE: In many implementations, a single agent may perform NOTE: In many implementations, a single agent may perform
various combinations of the injecting, relaying and serving various combinations of the injecting, relaying and serving
functions. Its duties are then the union of the various duties functions. Its duties are then the union of the various duties
concerned. concerned.
8.1. General principles to be followed 8.1. General principles to be followed
There are two important principles that news implementors (and There are two important principles that news implementors (and
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:
News Article Format February 2003
Be liberal in what you accept, and conservative in what you Be liberal in what you accept, and conservative in what you
send. send.
However, in the case of news there is an even more important However, in the case of news there is an even more important
principle, derived from a much older code of practice, the principle, derived from a much older code of practice, the
Hippocratic Oath (we may thus call this the Hippocratic Principle): Hippocratic Oath (we may thus call this the Hippocratic Principle):
First, do no harm. First, do no harm.
It is VITAL to realize that decisions which might be merely It is VITAL to realize that decisions which might be merely
skipping to change at page 81, line 4 skipping to change at page 82, line 50
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:
Message-Id-header, Date-header, Path-header (and even From-header if Message-Id-header, Date-header, Path-header (and even From-header if
the particular injecting agent can derive that information from other the particular injecting agent can derive that information from other
News Article Format August 2002
sources). These headers MUST NOT contain invalid values; they MUST sources). These headers MUST NOT contain invalid values; they MUST
either be correct or not present at all. either be correct or not present at all.
A proto-article SHOULD NOT contain the '%' path-delimiter in any A proto-article SHOULD NOT contain the '%' path-delimiter in any
Path-header, except in the rare cases where an article gets injected Path-header, except in the rare cases where an article gets injected
twice. It MAY contain path-identities with other path-delimiters in twice. It MAY contain path-identities with other path-delimiters in
the pre-injection portion of the Path-header (5.6.3). the pre-injection portion of the Path-header (5.6.3).
News Article Format February 2003
8.2.2. Procedure to be followed by Injecting Agents 8.2.2. Procedure to be followed by Injecting Agents
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
skipping to change at page 81, line 46 skipping to change at page 83, line 39
2. It SHOULD verify that the article is from a trusted source. 2. It SHOULD verify that the article is from a trusted source.
However, it MAY allow articles in which headers contain "forged" However, it MAY allow articles in which headers contain "forged"
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. In which contains any header that does not have syntactically legal
particular, it MUST reject any article whose Newsgroups-header or contents. In particular, it MUST either reject any article whose
Followup-To-header contains an encoded newsgroup-name (5.5.2); Newsgroups-header or Followup-To-header contains an encoded
alternatively, it MAY decode those newsgroup-names and continue newsgroup-name (5.5.2) or, alternatively, decode those newsgroup-
(this being a useful service for moderators using that injecting names and continue (this being a useful service for moderators
agent, see 8.7). It SHOULD reject any article which contains any using that injecting agent, see 8.7). It SHOULD reject any
header deprecated for Netnews (4.2.1). article which contains any header deprecated for Netnews (4.2.1).
5. If the article is rejected (for reasons given above, or for other 5. If the article is rejected (for reasons given above, or for other
formatting errors or matters of site policy) the posting agent formatting errors or matters of site policy) the posting agent
SHOULD be informed (such as via an NNTP 44x response code) that SHOULD be informed (such as via an NNTP 44x response code) that
posting has failed and the article MUST NOT then be processed posting has failed and the article MUST NOT then be processed
further. further.
News Article Format August 2002
6. The Message-ID and Date-headers (and their contents) MUST be added 6. The Message-ID and Date-headers (and their contents) 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
article is to be forwarded to a moderator). article is to be forwarded to a moderator).
News Article Format February 2003
8. The path-identity of the injecting agent with a '%' path-delimiter 8. The path-identity of the injecting agent with a '%' path-delimiter
(5.6.2) MUST be prepended to the Path-header; moreover, that (5.6.2) MUST be prepended to the Path-header; moreover, that
path-identity MUST be an FQDN mailable address (5.6.2). path-identity MUST be an FQDN mailable address (5.6.2).
9 An Injector-Info-header (6.19) SHOULD be added, identifying the 9. An Injector-Info-header (6.19) SHOULD be added, identifying the
trusted source of the article, and a suitable Complaints-To-header trusted source of the article, and a suitable Complaints-To-header
(6.20) MAY be added (except that these two headers SHOULD NOT be (6.20) MAY be added (except that these two headers MUST NOT be
added if the article is to be forwarded to a moderator). added if the article is to be forwarded to a moderator).
10.The injecting agent MUST NOT alter the body of the article in any 10.The injecting agent MUST NOT alter the body of the article in any
way. It MAY add other headers not already provided by the poster, way. It MAY add other headers not already provided by the poster,
but SHOULD NOT alter, delete, or reorder any existing header, with but SHOULD NOT alter, delete, or reorder any existing header, with
the specific exception of "tracing" headers such as Injector-Info the specific exception of "tracing" headers such as Injector-Info
and Complaints-To, which are to be removed as already mentioned. and Complaints-To, which are to be removed as already mentioned.
NOTE: The addition of non-mandatory headers by the injecting NOTE: The addition of non-mandatory headers by the injecting
agent may alter the posting agent's preferred presentation of agent may alter the posting agent's preferred presentation of
skipping to change at page 83, line 5 skipping to change at page 84, line 52
"application/news-transmission" (6.21.6.1) with any usage "application/news-transmission" (6.21.6.1) with any usage
parameter set to "moderate". Moreover, there SHOULD NOT be parameter set to "moderate". Moreover, there SHOULD NOT be
more than one encapsulated article within the one email. more than one encapsulated article within the one email.
This method has the advantage of removing any possible This method has the advantage of removing any possible
conflict between Netnews and Email headers, or of changes to conflict between Netnews and Email headers, or of changes to
those headers during transport through email (and in those headers during transport through email (and in
particular, it ensures that any UTF8-xtra-chars within those particular, it ensures that any UTF8-xtra-chars within those
headers will pass safely through any email transport even if headers will pass safely through any email transport even if
it is 8bit-unsafe). it is 8bit-unsafe).
News Article Format August 2002
(b) The article is sent as an email as it stands, with the (b) The article is sent as an email as it stands, with the
addition of such extra headers (e.g. a To-header) as are addition of such extra headers (e.g. a To-header) as are
necessary for an email. Since the article is, in effect, necessary for an email. Since the article is, in effect,
being gatewayed into Email, the provisions of section 8.8.1 being gatewayed into Email, if the headers contain any UTF8-
apply. In particular, if the headers contain any UTF8-xtra- xtra-chars the transformations described in section 8.8.1.1
chars, it may be necessary to apply encodings, specifically MUST be applied.
the encoding defined in section 5.5.2 in the case of the
article's Newsgroups- and Followup-To-headers. News Article Format February 2003
Although both of these methods have seen use in the past, the Although both of these methods have seen use in the past, the
preponderance of current usage on Usenet has been for method (b) preponderance of current usage on Usenet has been for method (b)
and many moderators are ill-prepared to deal with method (a). and many moderators are ill-prepared to deal with method (a).
Therefore, method (a) SHOULD NOT be used until such time as the Therefore, method (a) SHOULD NOT be used until such time as the
majority of moderators are able to accept it. majority of moderators are able to accept it.
13.This standard does not prescribe how the email address of the 13.This standard does not prescribe how the email address of the
moderator is to be determined, that being a matter of policy to be moderator is to be determined, that being a matter of policy to be
arranged by the agency responsible for the oversight of each arranged by the agency responsible for the oversight of each
skipping to change at page 84, line 5 skipping to change at page 85, line 52
path-delimiter (5.6.2). path-delimiter (5.6.2).
2. It MUST reject any article whose Date-header is stale (see 5.1). 2. It MUST 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.
News Article Format August 2002
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 matches an already received 6. It SHOULD reject any article that matches an already received
cancel message (or an equivalent Supersedes-header) issued by its cancel message (or an equivalent Supersedes-header) issued by its
poster or by some other trusted entity. poster or by some other trusted entity.
News Article Format February 2003
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).
8. It then passes articles which match mutually agreed criteria on to 8. It then passes articles which match mutually agreed criteria on to
neighbouring relaying and serving agents. However, it SHOULD NOT neighbouring 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.
skipping to change at page 85, line 5 skipping to change at page 86, line 51
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).
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").
News Article Format August 2002
A serving agent processes articles as follows: A serving agent processes articles as follows:
1. It MUST verify the leftmost entry in the Path-header and then 1. It MUST verify the leftmost entry in the Path-header and then
prepend its own path-identity with a '/' path-delimiter, and prepend its own path-identity with a '/' path-delimiter, and
possibly also the verified path-identity of its source with a '?' possibly also the verified path-identity of its source with a '?'
path-delimiter (5.6.2). path-delimiter (5.6.2).
2. It MUST reject any article whose Date-header is stale (see 5.1). 2. It MUST reject any article whose Date-header is stale (see 5.1).
News Article Format February 2003
3. It MUST reject any article that does not have the correct 3. It MUST reject any article that does not have the correct
mandatory headers (section 5) present, or which contains any mandatory headers (section 5) present, or which contains any
header that does not have legal contents. header that does not have legal contents.
4. It SHOULD reject any article that has already been sent to it (a 4. It SHOULD reject any article that has already been sent to it (a
database of message identifiers of recent messages is usually kept database of message identifiers of recent messages is usually kept
and matched against). and matched against).
5. It SHOULD reject any article that matches an already received 5. It SHOULD reject any article that matches an already received
cancel message (or an equivalent Supersedes-header) issued by its cancel message (or an equivalent Supersedes-header) issued by its
skipping to change at page 86, line 5 skipping to change at page 87, line 51
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
providing correctly adjusted forms of those headers described as providing correctly adjusted forms of those headers described as
inheritable (4.2.5.2), notably the Newsgroups-header (5.5), the inheritable (4.2.5.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).
News Article Format August 2002
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 poster 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
News Article Format February 2003
is so emailed. is so emailed.
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.
Articles will be received by the moderator either encapsulated as an
object of Content-Type application/news-transmission (or possibly
encapsulated but without an explicit Content-Type-header), or else
directly as an email already containing all the headers appropriate
for a Netnews article (see 8.2.2). Moderators SHOULD be prepared to
accept articles in either format.
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
his group, whether to accept or reject the article. He MAY do this his group, whether to accept or reject the article. He MAY do this
manually, or else partially or wholly with the aid of appropriate manually, or else partially or wholly with the aid of appropriate
software for whose operation he is then responsible. He MAY modify software for whose operation he is then responsible. If the
the article if that is in accordance with the applicable article is a cancel nessage (7.3) issued by the poster of an
moderation policy (and in particular he MAY remove redundant earlier article, then he Ought to cancel it (in which case there
headers and add Comments and other informational headers). He MAY is no more to be done). He MAY modify the article if that is in
inform the poster as to whether the article has been accepted or accordance with the applicable moderation policy (and in
rejected. particular he MAY remove redundant headers and add Comments and
other informational headers). He also needs to be aware if any
change he makes to the article will invalidate some authentication
check provided by the poster or by an earlier moderator.
If the article is rejected, then it fails for all the newsgroups He MAY inform the poster if the article is accepted, and he Ought
for which it was intended (in particular the moderator SHOULD NOT to inform the poster if it is rejected. If it is rejected, then
resubmit the article, with a reduced Newsgroups-header, to any it normally fails for all the newsgroups for which it was
remaining groups, especially if this will break any authentication intended. If it is accepted, the moderator proceeds with the
checks present in the article). If the article is accepted, the following steps.
moderator proceeds with the following steps.
2. The Date-header SHOULD be retained, except that if it is stale 2. If the Newsgroups-header contains further moderated newsgroups for
which approval has not already been given, he adds an indication
(identifying both himself and the name of the group) that he
approves the article, and then forwards it to the moderator of the
leftmost unapproved group (which, if this standard has been
followed correctly, will generally be the next moderated group to
the right of his own). There are two ways to do this:
(a) He emails it to the submission address of the next moderator
(see section 8.2.2 for the proper method of doing this), or
(b) he rotates the newsgroup-names in the Newsgroups-header to
the left so that the targeted group is the leftmost moderated
group in that header, and injects it as below (thus causing
the injecting agent to email it to the correct moderator).
However, he MUST first ensure that the article contains no
Approved-header.
News Article Format February 2003
NOTE: This standard does not prescribe how a moderator's
approval is to be indicated (though a future standard may do
so). Possible methods include adding an Approved header (or a
similar but differently named header if method (b) is being
used) listing all the approvals made so far, or adding a
separate header for each individual approval (the header X-Auth
is sometimes used for this purpose). The approval may also be
confirmed with some form of digital signature (7.1).
3. If the Newsgroups-header contains no further unapproved moderated
groups, he adds an Approved-header (6.14) identifying himself and,
insofar as is possible, all the other moderators who have approved
the article. He thus assumes responsibility for having ensured
that the article was acceptable to the moderators of all the
moderated groups involved.
4. A moderator Ought Not (absent any established and widely
promulgated policy to the contrary) to remove any newsgroup-name
from the Newsgroups-header, nor split an article into two versions
with disjoint Newsgroups-headers. These are matters more usually
within the prerogative of the poster; moreover splitting can lead
to fragmentation of threads.
5. 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 variant then take responsibility for any loops that ensue). The Message-
headers (4.2.5.3) MUST be removed, except that a Path-header MAY ID-header SHOULD also be retained unless it is obviously non-
be truncated to only its pre-injection region (5.6.3). Any compliant with this standard.
Injector-Info-header (6.19) or Complaints-To-header (6.20) MUST be
removed.
3. He adds an Approved-header (6.14) containing a mailbox identifying
himself (or, if the article already contains an Approved-header
from another moderator, he adds that identifying information to
it). He MAY also include that Approved-header within some digital
signature scheme (see 7.1).
News Article Format August 2002 NOTE: A message identifier created by a conforming posting or
injecting agent, or even by a mail user agent conforming to [RFC
2822], may reasonably be supposed to be conformant (and will, in
any case, be caught by the injecting agent if it is not).
4. If the Newsgroups-header contains further moderated newsgroups for 6. Any variant headers (4.2.5.3) MUST be removed, except that a
which approval has not already been given, he forwards the article Path-header MAY be truncated to only its pre-injection region
to the moderator of the leftmost such group (which, if this (5.6.3). Any Injector-Info-header (6.19) or Complaints-To-header
standard has been followed correctly, will always be the group (6.20) MUST be removed.
immediately to the right of the group(s) for which he is
responsible). However, he MUST NOT alter the order in which the
newsgroups are listed in the Newsgroups-header.
5. Otherwise, he causes the article to be injected, having first 7. He then causes the article to be injected, having first decoded
decoded any encoded newsgroup-name (5.5.2), unless his injecting any encoded newsgroup-name (5.5.2), unless his injecting agent
agent offers that service (8.2.2), and having observed all the offers that service (8.2.2), and having observed all the duties of
duties of a posting agent (8.5). a posting agent.
NOTE: This standard does not prescribe how the moderator or NOTE: This standard does not prescribe how the moderator or
moderation policy for each newsgroup is established; rather it moderation policy for each newsgroup is established; rather it
assumes that whatever agencies are responsible for the relevant assumes that whatever agencies are responsible for the relevant
network or hierarchy (1.1) will have made appropriate network or hierarchy (1.1) will have made appropriate
arrangements in that regard. arrangements in that regard.
Articles will be received by the moderator either encapsulated as an News Article Format February 2003
object of Content-Type application/news-transmission (8.2.2) (or
possibly encapsulated but without an explicit Content-Type-header),
or else directly as an email already containing all the headers
appropriate for a Netnews article (see 8.2.2) in which case he needs
to be aware of the Duties of an Incoming Gateway (8.8.2) (and, in
particular, he SHOULD adopt the Message-ID- and Date-headers of the
email message, though he SHOULD NOT add any Sender-header).
Moderators SHOULD be prepared to accept articles in either format.
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.
skipping to change at page 88, line 4 skipping to change at page 90, line 32
The primary dictat for a gateway is: The primary dictat for a gateway is:
Above all, prevent loops. Above all, prevent loops.
Transformation of an article into another medium stands a very high Transformation of an article into another medium stands a very high
chance of discarding or interfering with the protection inherent in chance of discarding or interfering with the protection inherent in
the news system against duplicate articles. The most common problem the news system against duplicate articles. The most common problem
caused by gateways is "spews," gateway loops that cause previously caused by gateways is "spews," gateway loops that cause previously
posted articles to be reinjected repeatedly into Usenet. To prevent posted articles to be reinjected repeatedly into Usenet. To prevent
this, a gateway MUST take precautions against loops, as detailed this, a gateway MUST take precautions against loops, as detailed
News Article Format August 2002
below. below.
If bidirectional gatewaying (both an incoming and an outgoing If bidirectional gatewaying (both an incoming and an outgoing
gateway) is being set up between Netnews and some other medium, the gateway) is being set up between Netnews and some other medium, the
incoming and outgoing gateways SHOULD be coordinated to avoid incoming and outgoing gateways SHOULD be coordinated to avoid
reinjection of gated articles. Circular gatewaying (gatewaying a reinjection of gated articles. Circular gatewaying (gatewaying a
message into another medium and then back into Netnews) SHOULD NOT be message into another medium and then back into Netnews) SHOULD NOT be
done; encapsulation of the article SHOULD be used instead where this done; encapsulation of the article SHOULD be used instead where this
is necessary. is necessary.
skipping to change at page 88, line 33 skipping to change at page 91, line 5
It is worth noting that safe bidirectional gatewaying between a It is worth noting that safe bidirectional gatewaying between a
mailing list and a newsgroup is far easier if the newsgroup is mailing list and a newsgroup is far easier if the newsgroup is
moderated. Posts to the moderated group and submissions to the moderated. Posts to the moderated group and submissions to the
mailing list can then go through a single point that does the mailing list can then go through a single point that does the
necessary gatewaying and then sends the message out to both the necessary gatewaying and then sends the message out to both the
newsgroup and the mailing list at the same time, eliminating most of newsgroup and the mailing list at the same time, eliminating most of
the possibility of loops. Bidirectional gatewaying between a mailing the possibility of loops. Bidirectional gatewaying between a mailing
list and an unmoderated newsgroup, in contrast, is difficult to do list and an unmoderated newsgroup, in contrast, is difficult to do
correctly and is far more fragile. correctly and is far more fragile.
News Article Format February 2003
Newsgroups intended to be bidirectionally gated to a mailing list Newsgroups intended to be bidirectionally gated to a mailing list
SHOULD therefore be moderated where possible, even if the moderator SHOULD therefore be moderated where possible, even if the moderator
is a simple gateway and injecting agent that correctly handles is a simple gateway and injecting agent that correctly handles
crossposting to other moderated groups and otherwise passes all crossposting to other moderated groups and otherwise passes all
traffic. traffic.
8.8.1. Duties of an Outgoing Gateway 8.8.1. Duties of an Outgoing Gateway
From the perspective of Netnews, an outgoing gateway is just a From the perspective of Netnews, an outgoing gateway is just a
special type of reading agent. The exact nature of what the outgoing special type of reading agent. The exact nature of what the outgoing
gateway will need to do to articles depends on the medium to which gateway will need to do to articles depends on the medium to which
the articles are being gated. The operation of the outgoing gateway the articles are being gated. The operation of the outgoing gateway
is only subject to additional constraints in the presence of one or is only subject to additional constraints in the presence of one or
more corresponding incoming gateways back from that medium to more corresponding incoming gateways back from that medium to
Netnews, since this opens the possibility of loops. Netnews, since this opens the possibility of loops.
Where the format of the news article is incompatible with that of the Where the format of the news article is incompatible with that of the
target medium, it may be necessary to apply transformations. target medium, it may be necessary to apply transformations (see
8.8.1.1 for the particular case when the target is Email).
It is not the purpose of this standard to set requirements to be
followed by implementors of outgoing gateways. Those implementors are
in the best position to know the capabilities of the systems to which
the article is to be sent, the purposes for which it is being sent,
and the extent to which those purposes will be vitiated if the
content of some header is mutilated en route, or fails to display
correctly upon arrival; this is a matter for their judgement.
Nevertheless, it is useful to draw attention to a few transformations
News Article Format August 2002
which such implementors might find useful.
o Transporting headers containing non-ASCII characters without first
encoding them is contrary to the current Email standards [RFC
2821] and [RFC 2822]. This applies both to the top-level headers
of the email, and also to headers contained within any embedded
message or multipart Content-Types (and so recursively). However,
it is well known that most mail transport agents will in fact
convey these characters intact, especially for non-top-level
headers in the case of transports which support the 8BITMIME
extension, and it is to be expected that the prevalence of this
ability will increase in the future (and may even be compliant
with future versions of the Email standards). Moreover, many mail
user agents will also display such characters correctly, or at
least adequately. Therefore, some implementors of gateways may
consider it an acceptable risk not to transform these headers in
any way, especially in the case of the lower-level ones.
NOTE: It is not the purpose of this standard either to condemn
or to condone behaviours which may be non-compliant with other
standards. That is a matter for those implementors.
o Where an implementor considers the risk too high for the top-level
headers, encapsulating the whole article as a message/rfc822
(6.21.2.2) may make it less likely to be mutilated during
transport, especially where 8BITMIME is supported. Alternatively,
encapsulating as an application/news-transmission (6.21.6.1) will
guarantee correct transmission in all cases and is the method of
choice where the intent is to gateway it back into Netnews later
on.
o To ensure full compliance with the Email standards it is necessary
to encode words containing UTF8-xtra-chars according to [RFC 2047]
(but only where permitted by that standard, i.e. within phrases
and unstructured headers, although many user agents will display
this encoding correctly in other contexts also). Likewise, within
parameters the proper encoding is that defined in [RFC 2231]. In
both cases, it is preferable to encode using the charset UTF-8,
although it might be wise first to confirm that that is indeed the
charset which had been used (see 4.4.1).
o In the case of newsgroup-names, as found in Newsgroups-headers,
Followup-To-headers and some Control-headers, [RFC 2047] is not
applicable (even though some mail reading agents might
nevertheless display it correctly). Therefore, it is necessary to
use the encoding described in section 5.5.2. Even if it is not
decoded at the far end, it is preferable to display such an
encoded form than to display nothing at all. Note, however, that
such encoded newsgroup-names MUST be restored to their canonical
form before reinjection into any Netnews system.
In general, the following practices are recommended for all outgoing In general, the following practices are recommended for all outgoing
gateways, regardless of whether there is known to be a related gateways, regardless of whether there is known to be a related
incoming gateway, both as a precautionary measure and as a guideline incoming gateway, both as a precautionary measure and as a guideline
to quality of implementation. to quality of implementation.
News Article Format August 2002
1. The message identifier of the news article should be preserved if 1. The message identifier of the news article should be preserved if
at all possible, preferably as or within the corresponding unique at all possible, preferably as or within the corresponding unique
identifier of the other medium, but if not at least as a comment identifier of the other medium, but if not at least as a comment
in the message. This helps greatly with preventing loops. in the message. This helps greatly with preventing loops.
2. The Date of the news article should also be preserved if possible, 2. The Date of the news article should also be preserved if possible,
for similar reasons. for similar reasons.
3. The message should be tagged in some way so as to prevent its 3. The message should be tagged in some way so as to prevent its
reinjection into Netnews. This may be impossible to do without reinjection into Netnews. This may be impossible to do without
knowledge of potential incoming gateways, but it is better to try knowledge of potential incoming gateways, but it is better to try
to provide some indication even if not successful; at the least, a to provide some indication even if not successful; at the least, a
human-readable indication that the article should not be gated human-readable indication that the article should not be gated
back to Netnews can help locate a human problem. back to Netnews can help locate a human problem.
4. Netnews control messages should not be gated to another medium 4. Netnews control messages should not be gated to another medium
unless they would somehow be meaningful in that medium. unless they would somehow be meaningful in that medium.
8.8.1.1. Gatewaying into email
Although headers containing non-ASCII characters may well be conveyed
intact by many (if not most) current mail transport agents, that
ability is not a requirement of some transport protocols, notably of
SMTP [RFC 2821]. Likewise, although many mail user agents may
currently display (or be configurable to display) such headers
correctly, or at least adequately, messages containing such headers
are not compliant with the current Email standards, notably with [RFC
2822]. Note that non-ASCII body part headers [RFC 2046] (including
non-ASCII headers of a message/rfc822) are equally at variance with
News Article Format February 2003
the current Email standards.
If, at some future time, the Email standards should be updated so as
to allow such headers, it would then become possible to transport
Netnews articles containing them over Email without further ado.
Until such a time, however, if a Netnews article is to be gatewayed
into Email with the intention that it be received and accepted by any
arbitrarily chosen destination, and if it contains any UTF8-xtra-char
in any of its headers or body part headers, then it MUST first be
transformed so as to conform to [RFC 2822] and/or [RFC 2046]. In
particular, articles emailed to moderators (8.2.2) MUST be so
transformed.
NOTE: It is not precluded that a gatewayer who knows, or is able
to control, the capabilities of the particular sites for which
an article is destined and of the transport paths leading to
those sites, may choose to send the article without
transformation, or at least without transformation of any
contained body part headers.
The surest way to transport an article containing non-ASCII headers
through Email is by encapsulation as an application/news-transmission
(6.21.6.1). However this method is not currently available for
sending to moderators for reason explained in section 8.2.2 step 12.
Until this method is considered safe to use, therefore,
transformation of those headers will be necessary. This can be
accomplished in the following steps: