INTERNET-DRAFT Charles H. Lindsey
Usenet Format Working Group University of Manchester
March 2005
Usenet Best Practice
<draft-ietf-usefor-useage-01.txt>
Status of this Memo
By submitting this Internet-Draft, I certify that any applicable
patent or other IPR claims of which I am aware have been
disclosed, or will be disclosed, and any of which I become aware
will be disclosed, in accordance with RFC 3668.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet-Drafts
as reference material or to cite them other than as "work in
progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.html.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire in September 2005.
Abstract
This Draft is intended to become a "Best Current Practice" RFC.
Its purpose is to set out how software should behave and
conventions which users should observe, in order that Netnews in
general, and Usenet in particular, should provide the most
effective service to its users.
[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
explain matters amongst ourselves, or to point out alternatives, or to
assist the RFC Editor.]
[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-
ietf-nntpext-base-*.txt, in the event that such RFC has been accepted at
the time this document is published.
C. H. Lindsey [Page 1]
Usenet Best Practice March 2005
Table of Contents
1. Introduction .................................................. 4
1.1. Basic Concepts ............................................ 4
1.2. Objectives ................................................ 4
2. Definitions, Notations and Conventions ........................ 5
2.1. Definitions ............................................... 5
2.2. Textual Notations ......................................... 5
3. The Well-Behaved User Agent ................................... 6
3.1. The Well-Behaved Posting Agent ............................ 6
3.1.1. Construction of Headers ............................... 7
3.1.1.1. Date .............................................. 8
3.1.1.2. From .............................................. 8
3.1.1.3. Message-ID ........................................ 9
3.1.1.4. Subject ........................................... 9
3.1.1.5. Newsgroups ........................................ 10
3.1.1.6. Reply-To .......................................... 10
3.1.1.7. Organization ...................................... 10
3.1.1.8. Distribution ...................................... 10
3.1.1.9. Followup-To ....................................... 10
3.1.1.10. User-Agent ....................................... 10
3.1.2. Construction of Bodies ................................ 11
3.1.2.1. Signatures ........................................ 11
3.1.2.2. Usage of MIME ..................................... 12
3.1.2.3. Content-Transfer-Encoding ......................... 13
3.2. The Well-Behaved Followup Agent ........................... 15
3.2.1. Construction of Headers ............................... 15
3.2.1.1. Subject ........................................... 15
3.2.1.1.1. Examples ...................................... 17
3.2.1.2. Newsgroups ........................................ 17
3.2.1.3. Mail-Copies-To .................................... 17
3.2.1.4. References ........................................ 18
3.2.2. Construction of Bodies ................................ 18
3.2.2.1. Quoting and Attributions .......................... 18
3.2.2.2. Signatures ........................................ 20
3.2.2.3. Usage of MIME ..................................... 20
3.3. The Well-Behaved Reading Agent ............................ 20
3.3.1. Display of Headers .................................... 20
3.3.2. Presentation of Articles .............................. 21
3.3.2.1. Threading ......................................... 21
3.3.2.2. Killfiles ......................................... 23
3.3.2.3. Interpretation of Distributions ................... 23
3.3.3. Interpretation of Bodies .............................. 23
3.3.3.1. Usage of MIME ..................................... 24
3.4. The Well-Behaved Reply Agent .............................. 25
3.5. User Interfaces ........................................... 25
4. The Well-Behaved Injecting Agent .............................. 26
4.1. Construction of Headers ................................... 27
4.1.1. Sender ................................................ 27
4.1.2. Organization .......................................... 27
4.1.3. User-Agent ............................................ 27
4.1.4. Injection-Info ........................................ 28
C. H. Lindsey [Page 2]
Usenet Best Practice March 2005
5. The Well-Behaved Relaying Agent ............................... 28
5.1. The Path Header ........................................... 29
5.1.1. Suggested Verification Methods ........................ 29
6. The Well-Behaved Serving Agent ................................ 30
6.1. Control Messages .......................................... 30
6.1.1. The 'newgroup' and 'mvgroup' Control Messages ......... 30
6.1.2. Cancel Messages ....................................... 30
7. The Well-Behaved Hierarchy Administrator ...................... 31
7.1. Control Messages .......................................... 31
7.2. Naming of Newsgroups ...................................... 32
7.3. Format of Bodies .......................................... 33
7.4. Promulgation .............................................. 34
8. The Well-Behaved Moderator .................................... 34
9. The Well-Behaved Poster ....................................... 34
9.1. Construction of Headers ................................... 34
9.1.1. From .................................................. 35
9.1.2. Summary ............................................... 35
9.1.3. Expires ............................................... 35
9.2. Construction of Bodies .................................... 35
10. References ................................................... 36
11. Acknowledgements ............................................. 37
12. Contact Address .............................................. 37
Appendix A - Notices .............................................. 38
C. H. Lindsey [Page 3]
Usenet Best Practice March 2005
1. Introduction
1.1. Basic Concepts
"Netnews" is a set of protocols for generating, storing and
retrieving news "articles" (which resemble email messages) and for
exchanging them amongst a readership which is potentially widely
distributed. It is organized around "newsgroups", with the
expectation that each reader will be able to see all articles posted
to each newsgroup in which he participates. The syntax of such
articles is defined in [USEFOR] and the actual protocols in [USEPRO].
"Usenet" is a particular worldwide open network based upon the
Netnews protocols, with the newsgroups being organized into
recognized "hierarchies". Anybody can join (it is simply necessary
to negotiate an exchange of articles with one or more other
participating hosts).
Usenet "belongs" to those who administer the hosts of which it is
comprised. There is no Cabal with overall authority to direct what is
to be be allowed. Nevertheless, there do exist agencies within Usenet
that have authority to establish policies and to perform
administrative functions, but such authority derives solely from the
consent of those sites which choose to recognize it (and who can
decline to exchange articles with sites which choose not to recognize
it). Usually, the authority of such an agency is restricted to a
particular hierarchy, or group of hierarchies.
A "policy" is a rule intended to facilitate the smooth operation of a
network by establishing parameters which restrict behaviour that,
whilst technically unexceptionable, would nevertheless contravene
some accepted standard of "Good Netkeeping". Since the ultimate
beneficiaries of a network are its human readers, who will be less
tolerant of poorly designed interfaces than mere computers, articles
in breach of established policy can cause considerable annoyance to
their recipients.
1.2. Objectives
The purpose of this document is to set out how software should behave
and conventions which users should observe, in order that Netnews in
general, and Usenet in particular, should provide the most effective
service to its users.
[USEFOR] and [USEPRO] are standards, and hence their requirements are
mandatory. The requirements set out here are in addition to those.
Their purpose is to establish "Best Current Practice", and hence they
are advisory. Nevertheless, failure to observe them will severely
prejudice the good order of Usenet, and cause great inconvenience to
the users of that medium.
NOTE: The extreme irritation caused to other readers by such
violations is not to be underestimated; however, enforcement of
such rules is more a matter of sensible design or of social
C. H. Lindsey [Page 4]
Usenet Best Practice March 2005
pressure (whose effectiveness should not be underestimated, even
though it cannot be prescribed).
Many of these requirements are matters of policy which may vary from
network to network, from hierarchy to hierarchy within one network,
and even between individual newsgroups within one hierarchy. It is
assumed, for the purposes of this document, that agencies with
varying degrees of authority to establish such policies will exist,
and that where they do not, policy will be established by mutual
agreement. However, it is NOT the purpose of this document to define
how the authority of various agencies to exercise control or
oversight of the various parts of Usenet is established (that is
itself a matter of policy). For the benefit of networks and
hierarchies without such established agencies, and to provide a basis
upon which all agencies can build, this present document often
provides default policy parameters, usually introducing them by a
phrase such as "As a matter of policy ...".
NOTE: The practices recommended here relate only to Netnews and
Usenet, and not to any other medium. Nevertheless, it may be
that some of them may turn out to be helpful for other media
such as mailing lists.
2. Definitions, Notations and Conventions
2.1. Definitions
All the technical terms defined in F-1.5 and P-2.1 are considered to
be defined in this document also.
2.2. Textual Notations
In this document, references to sections in [USEFOR] are prefixed
with "F-" and references to sections in [USEPRO] are prefixed with
"P-".
This document contains explanatory NOTEs using the following format.
These may be skipped by persons interested solely in the content of
the specification. The purpose of the notes is to explain why choices
were made, to place them in context, or to suggest possible
implementation techniques.
NOTE: While such explanatory notes may seem superfluous in
principle, they often help the less-than-omniscient reader
understand the true intent of the specification in cases where
the wording is not entirely clear.
Certain words, when capitalized, are used to define the significance
of individual requirements. The key words "MUST", "REQUIRED",
"SHOULD", "RECOMMENDED", "MAY" and "OPTIONAL", and any of those words
associated with the word "NOT", are to be interpreted as described in
[RFC 2119].
C. H. Lindsey [Page 5]
Usenet Best Practice March 2005
However, as provided in that RFC, the force of these words is lower
here than would have been the case in a standards track document. In
particular, violation of a MUST or SHOULD does not necessarily imply
a failure of interoperability, but rather that established policy or
accepted best practice would be breached, to the detriment of the
good order of Usenet.
NOTE: A requirement imposed on a relaying or serving agent
regarding some particular article should be understood as
applying only if that article is actually accepted for
processing (since any agent may always reject any article
entirely, for reasons of site policy).
[That NOTE can probably be removed, or severely rewritten, once we have
a better idea of the requirements/recommendations we are going to make
in this document.]
Wherever the context permits, use of the masculine includes the
feminine and use of the singular includes the plural, and vice versa.
Throughout this document we will give various examples. In order to
prevent possible conflict with "Real World" entities and people the
top level domain ".example" is used in all sample domains and
addresses. The hierarchy "example.*" is also used as a sample
hierarchy. Information on the ".example" top level domain is in [RFC
2606].
3. The Well-Behaved User Agent
The term "user agent" comprises posting agents, reading agents and
followup agents as defined in [USEPRO], and also reply agents, by
which is meant a user agent that is generating an email, presumably
addressed to the poster of an article. Although it is usual for all
these functionalities to be included within a single piece of
software, it is convenient to discuss them separately here.
This section is addressed primarily to the implementors of user
agents. Whilst it is common for such agents to combine the functions
of a Netnews User Agent (NUA) and a Mail User Agent (MUA), it needs
to be realized that they serve different functions, and adding a few
extra features to an MUA is unlikely to result in a good NUA, any
more than adding a few extra features to an NUA would result in a
good MUA.
3.1. The Well-Behaved Posting Agent
The implementor of a posting agent SHOULD make it possible for a
suitably perseverent poster to generate any article, however absurd,
that conforms strictly to [USEFOR]. On the other hand, it needs to
be understood that the difference between a good posting agent and a
bad posting agent lies in its ability to encourage the poster to
adhere to good standards of "netkeeping", by making it easy to
generate articles that will be widely acceptable to the conventions
and expectations of the Usenet community, and hard to generate
articles outside of those norms. This is largely a matter of choosing
C. H. Lindsey [Page 6]
Usenet Best Practice March 2005
appropriate defaults for various parameters and settings.
Here it shold be noted that what is acceptable in Email (which is a
one-to-few communication where the author can be expected to be aware
of the capabilities and preferences of his correspondents) may not be
acceptable in Netnews (which is a one-to-many communication directed
at an unseen and unknown audience). Much grief has arisen in the
past from poorly designed agents which tried to imppose onto Usenet
defaults and practices which were perfectly appropriate for Email.
3.1.1. Construction of Headers
Whilst it SHOULD be possible to insert any legitimate header, not
limited to those defined in [USEFOR] and including experimental
headers, there are certain essential headers, namely the Subject,
Newsgroups, Followup-To and Reply-To headers which the poster MUST be
able to insert and/or edit (and to do so at any stage during the
composition of the article). Note that this specifically includes the
possibility of setting the followup to "poster".
[s/experimental headers/X-headers/ if the term is not defined in
USEFOR.]
NOTE: This does not mean that header must be presented for
editing in the exact form specified in [USEFOR]; a graphical
interface for editing the various header contents would suffice,
although it would be useful if that included the facility for
the poster to determine the folding.
Posting agents SHOULD permit the poster to include headers of
arbitrary length (and MUST permit at least 79 characters). However,
they SHOULD endeavour to keep individual header lines, so far as is
possible, within 79 characters (or other established policy limit) by
folding them at suitable places (however, the limit of 998 octets
[RFC 2822]) on any individual header line still applies); but if the
poster has manually folded a header within the accepted limits (to
achieve some pleasing layout, for example) the posting agent SHOULD
respect the poster's intent.
NOTE: The reason for the figure 79 is to ensure that all lines
will fit in a standard 80-column screen without having to be
wrapped. The limit is 79 not 80 because, while 80 fit on a
line, any character in the last column often forces a line-wrap.
Although headers are defined in such a way that folding can take
place between many of the lexical tokens (and even within some of
them), [RFC 2822] RECOMMENDS that folding be limited to placing the
CRLF at higher-level syntactic breaks and that, if a header content
is defined as comma-separated values, folding occur after the comma
separating the values, even if it is allowed elsewhere. It SHOULD
also avoid leaving trailing WSP on the preceding line.
There is a preferred case convention, which posters and posting
agents SHOULD use: each hyphen-separated "word" has its initial
letter (if any) in uppercase and the rest in lowercase, except that
C. H. Lindsey [Page 7]
Usenet Best Practice March 2005
some abbreviations have all letters uppercase (e.g. "Message-ID" and
"MIME-Version").
[If USEFOR follows this, then add "The forms given in the various rules
defining headers in [USEFOR] show the preferred forms (but relaying and
reading agents are expected to tolerate articles not obeying this
convention)."]
A comment [RFC 2822]) is normally used to provide some human readable
informational text, except at the end of a mailbox which contains no
phrase, as in
[email protected] (Fred Bloggs)
as opposed to
"Fred Bloggs" <
[email protected]> .
The former is a deprecated, but commonly encountered, usage for
indicating the name of the person whose mailbox it is. Posting agents
SHOULD NOT now be generating it.
Headers that merely state defaults explicitly (e.g., a Followup-To
header with the same content as the Newsgroups header, or a MIME
Content-Type header with contents "text/plain; charset=us-ascii"), or
state information that reading agents can typically determine easily
themselves (e.g. the length of the body in octets) are redundant and
posting agents SHOULD NOT include them.
There follow some recommendations specific to particular headers.
3.1.1.1. Date
It is RECOMMENDED to add a comment, after the <date-time>, containing
the time zone in human-readable form. However, many of the
abbreviations commonly used for this purpose are ambiguous, and so
the value given by the <zone> is the only definitive form. For
example:
Date: Sat, 26 May 2001 11:13:00 -0500 (EST)
3.1.1.2. From
The mailboxes in the From header MUST contain syntactically valid
email addresses identifying the poster(s). Each such mailbox SHOULD
be a working email address, belonging to the poster(s) of the
article, or the person or agent on whose behalf the article is
posted. When, for whatever reason, a poster does not wish ro use a
working address, the mailbox concerned SHOULD end in the top level
domain ".invalid" [RFC 2606] (cf. P-7.5).
NOTE: It is fashionable for posters to disguise their mail
addresses to discourage malicious harvesting and for other
purposes. Whilst the circumstances which might make this seem
desirable are much to be regretted, the practice cannot be
regarded as in the best interests of Usenet, and this document
does not seek to promote the practice, even though it shows how
to do it "correctly". Therefore, it is NOT recommended that
C. H. Lindsey [Page 8]
Usenet Best Practice March 2005
implementors should go out of their way to facilitate it.
3.1.1.3. Message-ID
Posting agents have the option of generating their own message
identifiers, or of leaving it to the injecting agent. Recall that it
is an absolute requirement of [RFC 2822] and [USEFOR] that message
identifiers should be unique with regard to all other Netnews
articles or Email messages, past, present or future. Although it
would in practice be sufficient to ensure that there were
astronomical odds against a duplicated message identifier, the method
RECOMMENDED in [RFC 2822] for bringing this about is by using the
domain name (or possibly the IP address) of the originating site in
the <id-right> of the <msg-id>, together with the time of composition
and other disambiguating material (such as a process number or a
serial number) in the <id-left>. It is also in order to include
additional information of significance to the poster within the <id-
left>, and even to deliberately make a non-unique identifier in cases
where the identical message is to be posted by several posters (for
example, a cancel for an article which may also be cancelled by
others).
[Recall that we have two drafts regarding the construction of message
identifiers on www.landfield.com/usefor that were written in the early
days of Usefor. Maybe these should be dusted down, published, and
referred to here.]
3.1.1.4. Subject
There is a temptation amongst inventors of new protocols, and even
amongst lawmakers [MALAMUD], to require particular phrases to be
inserted or regognized automatically at particular places within the
Subject header. This temptation is strongly to be resisted.
[Remove the reference to [MALAMUD] if it has not made it to RFC by the
time we go to press.]
There are, however, two exceptions to this principle which have
become hallowed by longstanding usage:
1. There is an established convention for the Subject header in a
followup to begin with "Re: ", and this SHOULD be supported (see
3.2.1.1).
2. The former practice whereby a Subject starting with "cmsg" was
construed as a control message (P-6) is now deprecated but, on
account of legacy software, non-control messages SHOULD NOT start
with the string "cmsg ". Nevertheless, it is still customary for
the Subject content of a control message (i.e. an article that
also contains a Control header) to start with the string "cmsg ",
and this convention MAY be followed.
Subject headers are for humans to read, and the most that user agents
should do is to filter them as directed by their human readers. If
some enhancement to Netnews requires support within the headers, then
the proper procedure is to invent a new header for the purpose, or to
C. H. Lindsey [Page 9]
Usenet Best Practice March 2005
adapt an existing header (supposing it had the capability to support
such adaptations).
3.1.1.5. Newsgroups
There are restrictions on the length of components of <newsgroup-
name>s, and on the <newsgroup-name>s themselves, as described more
fully in 7.2. Posting and injecting agents MAY attempt to enforce
them but, because of the possibility that hierarchy policies or
future standards may relax them, it SHOULD be possible for posters to
override such checks, and software MUST be so written that they can
be disabled altogether.
Posting agents MAY (and followup agents SHOULD) accept articles
crossposted to newsgroups which do not exist on their local hosts,
though posting agents SHOULD at least alert the poster to the
situation and request confirmation.
3.1.1.6. Reply-To
In the absence of Reply-To, the reply address(es) is the address(es)
in the From header. For this reason a Reply-To SHOULD NOT be included
if it just duplicates the From header.
NOTE: Use of a Reply-To header is preferable to including a
similar request in the article body, because replying agents can
take account of Reply-To automatically.
3.1.1.7. Organization
Posting agents are discouraged from providing a default value for
this header unless it is acceptable to all posters using those agents
and unless it contains useful information (including some indication
of the poster's physical environment). See section 4.1.2 for an even
stronger discouragement for injecting agents.
3.1.1.8. Distribution
Posting agents SHOULD NOT provide a default Distribution header
without giving the poster an opportunity to override it.
3.1.1.9. Followup-To
A Followup-To header SHOULD NOT be included if it just duplicates the
Newsgroups header. At least one of its <newsgroup-name>s SHOULD
exist on the posting agent's host (since a well behaved poster ought
not to be setting followups to a place that he cannot read). Cf. a
similar rule regarding crossposting in section P-7.2.2.
3.1.1.10. User-Agent
Comments in User-Agent headers should be restricted to information
regarding the product named to their left, such as its full name or
platform information, and should be concise. Use as an advertising
C. H. Lindsey [Page 10]
Usenet Best Practice March 2005
medium (in the mundane sense) is discouraged.
3.1.2. Construction of Bodies
It was the fashion at one time to indicate underlining within body
texts using Backspace, in the form of an underscore (US-ASCII 95), a
backspace, and a character, repeated for each character that should
be underlined. Posting agents MAY support this mechanism, although it
is no longer so common for reading agents to process it.
NOTE: using this precise method should ensure that reading
agents that cannot display the text underlined will at least
display it correctly in an un-underlined form.
The formfeed character (US-ASCII 12) (which is sometimes referred to
as the "spoiler character") MAY be used (see 3.3.3 for its effect on
reading agents).
In plain-text articles (those with no MIME headers, or those with a
MIME Media Type of "text/plain") posting agents SHOULD endeavour to
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
79 characters at most, and preferably within 72 characters (to allow
room for quoting in followups). Except where "format=flowed" is
being used (3.1.2.2), the line breaks shown to the poster during
editing SHOULD be exactly as they will appear in the posted article.
NOTE: That policy limit (e.g. 72 or 79) should be expressed as a
number of characters (as they will be displayed by a reading
agent) rather than as the number of octets used to encode them.
For use on occasions where established policy prescribes
different line lengths (this usually arises in groups where the
charset for the language used is best represented using double
width characters) the preferred line length SHOULD be a
configurable option.
Posting agents MUST permit the poster to create individual lines
longer than the default or configured length if he so insists (which
may require the cessation of any automatic generation of flowed lines
[RFC 3676] on a temporary basis), but it SHOULD be made apparent to
the poster (e.g. by issuing a warning) that the article contains
lines longer that the customary length.
If the software uses an external editor, the editor called by default
SHOULD be able to meet all the requirements of this section.
3.1.2.1. Signatures
A "personal signature" is a short closing text automatically added to
the end of articles by posting agents, identifying the poster and
giving his network addresses, etc. Whenever a poster or posting agent
appends such a signature to an article, it MUST be preceded with a
delimiter line containing (only) two hyphens (US-ASCII 45) followed
by one SP (US-ASCII 32). The signature is considered to extend from
C. H. Lindsey [Page 11]
Usenet Best Practice March 2005
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).
Posting agents SHOULD provide a facility to enable the poster to add
such signatures, and SHOULD discourage (at least with a warning)
signatures of excessive length (4 lines is a commonly accepted
limit).
3.1.2.2. Usage of MIME
When the Media Type is "text/plain", the recommendations and limits
on line lengths set out above SHOULD be observed.
Posting agents MAY use the "format=flowed" parameter of "text/plain"
(and also the "DelSp=yes" if appropriate) defined in [RFC 3676] so as
to allow suitably equipped reading agents to reformat flowed
paragraphs to suit the width of their display areas. However, it must
be understood that many reading agents do not support that feature,
and therefore the physical length of all lines SHOULD be restricted
to the default preferred length of 72 characters, rather than the 78
recommended in [RFC 3676]. However, single words longer than that
length (and this specifically applies to URIs [RFC 3986]) which MUST
NEVER be split across more than one physical line. Exceptionally, it
is suggested in [RFC 3986] that URIs MAY contain embedded whitespace
and hence be split across lines, but in practice many user agents
fail to recognize URIs split in this way.
Other forms of text, such as "text/html" SHOULD NOT be used except in
groups where established policy or custom so allows (7.3). However,
where they are so used then, for the benefit of readers who see it
only in its transmitted form, the material SHOULD be "pretty-printed"
(for example by restricting its line length as above and by keeping
sequences which control its layout or style separate from the
meaningful text).
Likewise, Media Types requiring special processing for their display,
notably the "binary" Media Types "image", "audio" and "video"
(including also material encoded by the "uuencode" protocol),
together with most "application" types, SHOULD NOT be used except in
groups where established policy or custom so allows (7.3).
Exceptionally, those application types defined in [RFC 1847] and [RFC
3156] for use within "multipart/signed" articles, and the type
"application/pgp-keys" (or other similar types containing digital
certificates) may be used freely.
The Media Type "message/partial" is not recommended for textual
articles because the Media Type, and in particular the charset, of
the complete article cannot be determined by examination of the
second and subsequent parts, and hence (except when they are written
in pure US-ASCII) it is not possible to read them as separate
articles (as by a reader who wanted to "browse ahead" to see whether
it was worth his while to read the whole set). Moreover, for full
compliance with [RFC 2046] it would be necessary to use the "quoted-
printable" encoding to ensure the material was 7bit-safe. In any
case, breaking such long texts into several parts is usually
C. H. Lindsey [Page 12]
Usenet Best Practice March 2005
unnecessary, since modern transport agents should have no difficulty
in handling articles of arbitrary length.
On the other hand, "message/partial" may be useful for binaries of
excessive length, since reading of the individual parts on their own
is not required and they would likely already be encoded in a manner
that was 7bit-safe.
The Media Type "message/rfc822" SHOULD be used where complete news
articles or email messages are to be included within another article
(P-5.2).
The Media Type "message/external-body" could be appropriate for texts
which it would be uneconomic (in view of the likely readership) to
distribute to the entire network.
The Media Types "multipart/mixed", "multipart/parallel" and
"multipart/signed" may be used freely in news articles. However,
except where policy or custom so allows, the Media Type
"multipart/alternative" SHOULD NOT be used, on account of the extra
bandwidth consumed and the difficulty of quoting in followups.
The Media Type "multipart/digest" is commended for any article
composed of multiple messages more conveniently viewed as separate
entities, thus enabling reading agents to move rapidly between them.
The "boundary" should be composed of 28 hyphens (US-ASCII 45) (which
makes each boundary delimiter 30 hyphens, or 32 for the final one) so
as to enable reading agents which currently support the digest usage
described in [RFC 1153] to continue to operate correctly.
NOTE: The various recommendations given above regarding the
usage of particular Media Types apply also within the individual
parts of these multiparts.
A multipart is preceded and followed by some spare text (a preamble
before the first boundary and an epilogue after the last one). It is
clear from [RFC 2046] that these texts are not to be considered part
of the official message and SHOULD NOT be displayed by reading
agents. It is useful for the preamble to contain words such as "This
is a multipart message in MIME format" for the benefit of older
reading agents that do not support MIME, but the epilogue SHOULD be
empty and, in particular, it SHOULD NOT be used to hold the signature
(3.1.2.1), as is sometimes done.
3.1.2.3. Content-Transfer-Encoding
The normal expectation is that the Content-Transfer-Encoding [RFC
2045] will be "8bit (or maybe "7bit" if the charset allows it). Other
Content-Transfer-Encodings SHOULD NOT be used unless there are
pressing reasons to do so.
The following are examples of such situations where a Content-
Transfer-Encoding of other that "8bit" may be necessary.
C. H. Lindsey [Page 13]
Usenet Best Practice March 2005
1. The content type implies that the content is (or may be) "8bit-
unsafe"; i.e. it may contain octets equivalent to the US-ASCII
characters CR or LF (other than in the combination CRLF) or NUL.
In that case one of the Content-Transfer-Encodings "base64" or
"quoted-printable" MUST be used, and reading agents MUST be able
to handle both of them.
NOTE: If a future extension to the MIME standards were to
provide a more compact encoding of binary suited to transport
over an 8bit channel, it could be considered as an alternative
to base64 once it had gained widespread acceptance.
2. It is often the case that "application" Media Types are textual in
nature, and intelligible to humans as well as to machines, and
where this state can be recognized by the posting agent (either
through knowledge of the particular application type or by
testing) the material SHOULD NOT be treated as 8bit-unsafe; this
has the added benefit, where the posting agent uses other than
CRLF for line endings internally, of automatically ensuring that
line endings are processed correctly during transport.
If, on the other hand, the posting agent recognizes that the
material is not textual, or cannot reasonably determine it to be
so, then the material MUST be encoded as for 8bit-unsafe (however,
in that case, it is the responsibility of the agent generating the
material to ensure that lines endings, if any, are represented
correctly).
NOTE: All the application types defined by P-5, namely
"application/news-transmission", "application/news-groupinfo"
and "application/news-checkgroups" are textual, and indeed
designed for human reading.
3. Although the "text" Media Types should normally be encoded as 8bit
(or 7bit), if the character set specified by the "charset="
parameter can include the 3 disallowed octets, then the material
MUST be encoded as for 8bit-unsafe. This is most likely to arise
in the case of 16-bit character sets such as UTF-16 ([UNICODE 3.2]
or [ISO/IEC 10646]). In addition, where it is known that the
material is subsequently to be gatewayed from Netnews to Email P-
7.9), the encoding "quoted-printable" MAY be used (otherwise the
gateway might have to re-encode it itself).
4. Some protocols REQUIRE the use of a particular Content-Transfer-
Encoding. In particular, the authentication protocol based on
OpenPGP defined in [RFC 3156] mandates the use of one of the
encodings "quoted-printable" or "base64". Whilst posters might be
tempted to risk the use of "8bit" or "7bit" encodings (and indeed
the referenced standard recommends that signed messages using
those encodings be accepted and interpreted), they should be
warned that differences in the treatment of trailing whitespace
between OpenPGP [RFC 2440] and earlier versions of PGP may render
signatures written with the one unverifiable by the other; and,
moreover, Usenet articles are very likely to include trailing
C. H. Lindsey [Page 14]
Usenet Best Practice March 2005
whitespace in the form of a personal signature (3.1.2.1).
5. The Media Type message/partial [RFC 2046] is required to use
encoding "7bit" (the encapsulated complete message may itself use
encoding "quoted-printable" or "base64", but that information is
only conveyed along with the first of the partial parts).
NOTE: Although there would actually be no problem using encoding
"8bit" in a pure Netnews (as opposed to Email) environment, this
document discourages the use of "message/partial" except for
binary material, which will likely be encoded to pass through
"7bit" in any case.
It may be necessary to change the Content-Transfer-Encoding at
gateways. For example in the case where such an encapsulated news
article with the Media Type "message/rfc822" is to be transported by
email and it has Content-Transfer-Encoding "8bit", the Content-
Transfer-Encoding may need to be changed, although there may well be
no problems in practice if the email transport supports 8BITMIME [RFC
2821].
3.2. The Well-Behaved Followup Agent
Usenet is primarily a medium for discussion. The majority of articles
that are posted are in fact followups to previous articles, and
exceedingly complex threads can develop. Therefore, it is essential
that user agents provide facilities for followups that will enable
such elongated discussions to proceed smoothly.
3.2.1. Construction of Headers
The requirements on inserting and editing headers already set out in
3.1.1 still apply, and apply in particular to those headers for which
the followup agent has set default values.
3.2.1.1. Subject
The Subject of the followup is, by default, taken from that of the
precursor, but users are able to override that default; indeed they
are to be encouraged to do so whenever appropriate in order to avoid
long threads which have wandered far from the topic with which they
originated, but which still adhere to the original Subject.
It has been a long standing practice, both on Usenet and in Email, to
prepend the "back-reference" "Re: " ,. [RFC 2822] and P-7.6) to the
Subject when preparing a followup, as an indication to the reader
that this is a continuation of discussion of an earlier topic rather
than the start of a new one. [USEPRO] does not require this practice,
but permits it so long as it is not applied if such a back-reference
is already present, and provided no string other that "Re: " is used
for the purpose.
C. H. Lindsey [Page 15]
Usenet Best Practice March 2005
However, the practice is not without its difficulties:
1. Although the "Re" (which is an abbreviation for the Latin "In re",
meaning "in the matter of", and not an abbreviation of "Reference"
as is sometimes erroneously supposed) may be understood by English
speakers, and indeed by speakers of most European Languages, its
use in a newsgroup where articles were customarily written in
Arabic, or Hindi, or Chinese would be less than helpful.
2. It requires extra processing (to ignore it) in some reading agents
which choose to consult the Subject header when deciding the best
order in which to present articles to the reader (see 3.3.2.1).
This burden has to be weighed against the relatively small benefit
of the indication provided directly to readers.
3. Sometimes, followup agents attempt to use translations of "Re: "
into other languages, as in "Sv: " and "Antwort: ". But it is not
practicable for those reading agents which take some special note
of "Re: " also to take note of translations into an indeterminate
number of other languages, and for this reason [USEPRO] does not
permit such translations.
4. Even the presence of "Re: " at the start of a Subject may
occasionally be misleading, because it might have been
deliberately placed there by a poster rather than having been
generated automatically by a followup agent.
5. And finally, there are philosophical arguments against features
within an unstructured header which imply specific recognition and
support within user agents (for reason already explained in
3.1.1.4). Indeed, the only reason why [USEPRO] permits this
particular exception is on account of its current widespread
usage.
For these reasons, this document does not seek to perpetuate this
practice, and indeed it might be better if its use were eventually to
be phased out. Nevertheless, it is certain that it will continue to
happen for some considerable period of time in newgroups where
English is the primary language, simply on account of the inertia
already behind it. For this reason, section 3.3.2.1 RECOMMENDS
striping away any initial "Re: " when comparing Subjects.
It would be wiser for any followup agents which can detect apparent
non-standard back-references such as "Re(2): ", "Sv: ", etc. to
refrain from prepending anything further, but other attempts to mend
that problem are likely to do more harm than good.
As well as the addition of "Re: ", the Subject header MAY be refolded
(which MAY include collapsing/expanding whitespace to/from a single
SP at any point where the folding is changed). However, it MUST NOT
(except by deliberate act of the poster) be truncated, extended or
changed in any other way that might cause a reading agent to deduce
that the subject of a thread had changed.
C. H. Lindsey [Page 16]
Usenet Best Practice March 2005
[Bruce wants users users to be requested to confirm that they are happy
with the default Subject as provided.]
3.2.1.1.1. Examples
In the following examples, please note that only "Re: " has any
official status (and hence may be utilized by reading agents).
"was: " is a convention used by many English-speaking posters to
signal a change in subject matter. Software can always recognize
that such changes have occurred from the References header.
Subject: Film at 11
Subject: Re: Film at 11
Subject: Godwin's law considered harmful (was: Film at 11)
Subject: Godwin's law (was: Film at 11)
Subject: Re: Godwin's law (was: Film at 11)
Subject: Re: Godwin's law
3.2.1.2. Newsgroups
The Newsgroups of the followup are, by default, taken from those of
the precursor, or from the precursor's Followup-To header (P-7.6).
But if the precursor's Followup-To header is set to "poster", the
user MUST be warned if he attempts to force the followup to be
posted.
Followup agents SHOULD accept articles crossposted to newsgroups
which do not exist on their local hosts (as opposed to posting
agents, for which that requirement is only "MAY").
3.2.1.3. Mail-Copies-To
[This header may yet be removed from the drafts.]
If the user attempts to email the poster as well as to followup, in
the case where the Mail-Copies-To header is absent, and even more so
when it is present and there is an explicit "nobody", contrary to the
RECOMMENDATION in P-7.6, then the followup agent SHOULD issue a
warning and ask for confirmation.
NOTE: This header is only relevant when posting followups to
Netnews articles, and is to be ignored when sending pure email
replies to the poster, which are handled as prescribed under the
Reply-To header.
[USEPRO] RECOMMENDS that where a followup is also emailed to the
poster, a suitable Posted-And-Mailed header be added.
NOTE: In addition to the Posted-And-Mailed header, some followup
agents also include within the body a mention that the article
is both posted and mailed, for the benefit of reading agents
that do not normally show that header.
C. H. Lindsey [Page 17]
Usenet Best Practice March 2005
3.2.1.4. References
Followup agents SHOULD trim message identifiers out of a References
header but SHOULD NOT do so until the number of message identifiers
exceeds 21, at which time trimming SHOULD be done by removing
sufficient identifiers starting with the second from the left so as
to bring the total down to 21 (but the first message identifier MUST
NOT be trimmed). However, it would be wrong to assume that References
headers containing more than 21 message identifiers will not occur.
[21 was the figure agreed by the WG, but I think it would be better to
recommend an overall cutoff at 998 characters, because I have seen
followup agents that systematically undo the folding carefully put their
by precursors.]
3.2.2. Construction of Bodies
Followup agents SHOULD follow policies already described for posting
agents (3.1.2) regarding the length of lines when generating new text
Exceptionally, they SHOULD NOT adjust the length of quoted lines
(3.2.2.1) in followups unless they are able to reformat them in a
consistent manner.
3.2.2.1. Quoting and Attributions
It is customary for the body of a followup to commence with an
"attribution" referring to the "precursor" and to "quote" any text
copied verbatim from the precursor with a suitable prefix. Followup
agents MUST facilitate the automatic incorporation of these things,
even though they are not mandated by any standard, in a manner
consistent with the conventions described below.
These conventions for quotations and attributions describe widely
used practices. Since much software will attempt to recognize and act
upon them, questions of interoperability can arise, and so the words
"MUST", "SHOULD", etc. are here to be understood as more than
advisory.
When the precursor had used the "format=flowed" parameter of
text/plain [RFC 3676], and when the followup agent also supports
"format-flowed", flowed paragraphs in the precursor (including any
flowed lines within quotations in the precursor) SHOULD be reflowed.
Thus, if all agents supported "format=flowed", no physical line,
quoted ot not, would ever exceed the default (or policy) limit,
except by the deliberate intent of the poster. Where the precursor
was not flowed, its lines SHOULD initially be left alone when
quoting, except that already quoted lines which appeared (from the
presence of trailing SP) to have been flowed by one of the
precursor's precursors MAY be treated as such.
For use when "format-flowed" is not available, or when it fails to
resolve the problem, the poster SHOULD be provided with a facility to
rewrap lines of quoted text (but only lines all at the same quoting
level).
C. H. Lindsey [Page 18]
Usenet Best Practice March 2005
When a followup agent incorporates the "precursor" as a quotation, it
MUST be distinguished from the surrounding text in some way, and
SHOULD be so dintinguished by prefacing each line of the quoted text
(even if it is empty) with the character ">" (or perhaps with "> " in
the case of a previously unquoted line). This will result in multiple
levels of ">" when quoted content itself contains quoted content, and
it will also facilitate the automatic analysis of articles. A
facility SHOULD be provided for the poster to select less than the
complete body of the precursor in the quotation.
NOTE: Whilst posters should edit quoted context to trim it down
to the minimum necessary, followup agents SHOULD NOT attempt to
enforce this beyond issuing a warning (past attempts to do so
have been found to be notably counter-productive).
Care needs to be taken to use appropriate charsets in the outbound
followup, and to record them in a Content-Type header. A followup to
an article containing non-ASCII material is very likely to contain
non-ASCII material itself.
The followup agent SHOULD also precede the quoted content by an
"attribution line" (however, readers are warned not to assume that
they are accurate, especially within multiply nested quotations). The
following convention for such lines is intended to facilitate their
automatic recognition and processing by sophisticated reading agents.
The attribution SHOULD contain the name and/or the email address of
the precursor's poster, as in
Joe D. Bloggs <
[email protected]> wrote:
or
Helmut Schmidt <
[email protected]> schrieb:
The attribution MAY contain also a single <newsgroup-name> (the one
from which the followup is being made), the precursor's message
identifier and/or the precursor's Date and Time. Any of these that
are present, SHOULD precede the name and/or email address. However,
the inclusion or not of such fields SHOULD always be under the
control of the poster.
To enable this line, and the message identifier and the email address
within it, to be recognized (for example to enable suitable reading
agents to retrieve the precursor or email its poster by clicking on
them), the following conventions SHOULD be observed:
o The precursor's message identifier SHOULD be enclosed within
<...> or <news:...>
o The precursor's poster's email address SHOULD be enclosed within
<...>
o The various fields may be separated by arbitrary text and they
may be folded in the same way as headers, but attributions SHOULD
always be terminated by a ":" followed by CRLF.
Further examples:
On comp.foo in <
[email protected]> on 24 Dec 2001 16:40:20 +0000,
"Joe D. Bloggs" <
[email protected]> wrote:
C. H. Lindsey [Page 19]
Usenet Best Practice March 2005
Am 24. Dez 2002 schrieb Helmut Schmidt <
[email protected]>:
3.2.2.2. Signatures
Followup agents, when incorporating quoted text from a precursor,
SHOULD NOT include the signature in the quotation.
3.2.2.3. Usage of MIME
Followup agents which quote parts of a precursor SHOULD initially
include all parts of the precursor that were displayed inline, as if
they were a single part.
3.3. The Well-Behaved Reading Agent
3.3.1. Display of Headers
The set of headers displayed to the reader of each article is usually
a configurable option, but it MUST by default include at least the
following:
o From header
o Subject header
o Newsgroups header
o Followup-To header
o Reply-To header
and SHOULD include the following:
o Distribution header
o Posted-And-Mailed header
o Summary header
o Control header
Moreover it MUST include a facility to "Display ALL headers" on
demand.
NOTE: There is no necessity to display anything at all for a
header that is completely absent, and indeed some of the ones
listed may seldom, if ever, be seen; they are included simply
because it is essential for the reader to be aware of them on
the rare occasions when they do occur.
There is no requirement to display the headers in the exact format
defined in [USEFOR] (for example, header-names may be displayed in
some local language), but all the information in each header MUST be
shown in some form. It may be necessary to provide a scrollbar or
some equivalent means in order to display long headers (particularly
long Subject headers); alternatively, long headers can be folded for
display (although any folding provided by the original poster SHOULD
be retained if it will fit in the display area). In any case, the
display area SHOULD be able to accomodate up to 79 characters (or
other established policy limit - see 7.3). Even if some header
appears to be non-compliant with [USEFOR], it is better to display it
exactly as received rather than not to display it at all.
C. H. Lindsey [Page 20]
Usenet Best Practice March 2005
Reading agents need to be prepared for ancient usages (and even non-
compliance) which nevertheless still appear from time to time. In
particular, the following is often seen:
[email protected] (Fred Bloggs)
as opposed to
"Fred Bloggs" <
[email protected]> .
The former is a deprecated, but commonly encountered, usage and
reading agents SHOULD take special note of such comments as
indicating (e.g. in killfiles) the name of the person whose mailbox
it is.
3.3.2. Presentation of Articles
3.3.2.1. Threading
Reading agents SHOULD present the articles in each newsgroup in an
order which ensures that the reader never sees a followup or reply to
an article unless he has already had an opportunity to read the
original. However, this may be easier said than done. Here are some
methods commonly used to fulfil this aim; none of them works
perfectly.
1. Present the articles in the order they were received at the local
serving agent. However, articles propagated via different routes
with different delays may well arrive out of order, so this may
not be reliable.
2. Sort the articles into order according to their Date headers. This
will usually be better than the first method, but relies on the
clock and timezone settings in posting agents being approximately
correct. And although it satisfies the minimal recommendation at
the head of this section, it will likely result in totally
separate threads of discussion being merged in an unhelpful order.
3. Sort the articles according to their Subject headers (or group
them according to their Subject headers, with the groups being
presented in order of the Date header of the first article in each
group). Within a group with the same Subject, sort according to
the Date header. This works tolerably well, but within a long
discussion with many divergent subthreads, those subthreads are
still merged in an unhelpful order. Moreover, it will
occasionally bring together totally unrelated articles that just
happen to have the same Subject by chance.
4. Construct a tree in which each article is within a sub-tree headed
by each article mentioned in its References header, and present
articles by a depth-first traversal of that tree, sorting the
siblings within each branch according to their Date headers. This
method is usually superior to the ones mentioned earlier, but it
can go wrong for a number of reasons.
C. H. Lindsey [Page 21]
Usenet Best Practice March 2005
a) References headers are sometimes absent, or incomplete (and
are even permitted to be trimmed when they get too long),
and earlier articles in the threads may have expired off the
local server. Nevertheless, with careful implementation,
these problems are mostly surmountable.
b) A poster may join an existing discussion (and clearly intend
to do so by using the same Subject header, possibly with a
prepended "Re: ") and yet his article might not be created
as a followup to any specific precursor and hence would not
have a References header. Hence it would be presented quite
apart from the other (sub-)threads of that discussion.
c) Conversely, the topic of some sub-thread might have diverged
so far from the original topic of discussion that some
poster decides to create a totally new Subject for his
followup. Nevertheless, that followup, and the whole sub-
thread which issues from it, will still be presented in the
midst of the other sub-threads of the original discussion.
5. To counter these various deficiences, various hybrid schemes have
been devised which take account of all three headers, References,
Subject and Date, and these often succeed in providing a more
pleasing presentation to the reader. However, different readers
can be pleased in different ways, and so it is often the case that
reading agents provide configurable options to choose between
several methods.
This document does not single out any particular method as "the
best". They are all to be considered acceptable, and implementors are
encouraged to experiment accordingly. Nevertheless, it is inevitable
that some combination of Subjects and followups will eventually arise
that defeats even the most sophisticated scheme.
It must be noted, however, in the case of those methods which rely on
the comparison of Subject headers, whether to detect equality or for
sorting, that there are certain additional precautions that need to
be taken, such as:
a) [USEPRO] permits a back-reference "Re: " to be prepended
(optionally) to a Subject when creating a followup. Therefore,
that back-reference SHOULD be stripped away before performing any
comparison of Subjects. On the other hand, "Re:" is the only
back-reference permitted, and therefore it is not necessary for
translations of "Re: " into other languages to be recognized (even
though such translations are sometimes generated by non-compliant
followup agents). Likewise, that "Re: " is case-sensitive,
although non-compliant agents that generate "RE: " are common
enough that it might be wiser to accept that form also.
b) It is not unknown for non-compliant followup agents to truncate
the Subject header. Some reading agents therefore truncate the
Subject before making any comparison. Sometimes this makes things
better; sometimes it makes them worse.
C. H. Lindsey [Page 22]
Usenet Best Practice March 2005
c) The use of <encoded-word>s ([RFC 2047]) within Subject headers can
give rise to different ways of encoding the same Subject.
Therefore, such encoding SHOULD be undone before any comparison of
Subject headers is made. It cannot even be assumed that the back-
reference "Re: " is not within an <encoded-word>.
3.3.2.2. Killfiles
The reader SHOULD be provided with a list of articles available for
reading, as set out more fully in section 3.3.2. Within the list of
articles presented, the reader SHOULD be given the choice of seeing
only articles that have not yet been read, or of seeing all articles
available in the particular newsgroup. Moreover, articles
crossposted to many newsgroups SHOULD be considered to have been read
once they have been seen in any of those groups.
There SHOULD be a facility (usually known as a "killfile") for
filtering out classes of article that the reader does not wish to
see. As a minimum, it SHOULD be possible to filter on the Subject
header (preferably using regular expressions to describe the filter)
and on the From header, but ideally it should be possible on any
header (so, for example, it would be possible to filter out excessive
crossposting, or crossposts to particular groups). Moreover, it
SHOULD be possible to filter out all followups to some given article,
by filtering on the References header or by building upon whatever
threading facility has been provided.
The filters included in a killfile may be permanent, or for a limited
period. A corresponding set of filters to preselect articles for
reading MAY also be provided.
3.3.2.3. Interpretation of Distributions
A reading agent MAY be configured so that articles whose Distribution
headers contained unwanted <dist-name>s do not get displayed (this
would be in addition to any filtering on distributions already
performed by relaying and serving agents - see P-7.3). This might
well be achieved by an appropriate application of killfiles.
3.3.3. Interpretation of Bodies
Implementors of reading agents need to be aware of ancient usages
(and even non-compliance) which nevertheless still appear from time
to time, and SHOULD endeavour to recognize them and display them
appropriately.
An example of this is the use of Backspace by posting agents in order
to construct composite characters (e.g. by underlining) (3.1.2).
Tab (US-ASCII 9) SHOULD be interpreted as sufficient horizontal white
space to reach the next of a set of fixed positions (customarily set
at every 8th character). Formfeed (US-ASCII 12) (which is sometimes
referred to as the "spoiler character") signifies a point at which
the reading agent SHOULD pause and await reader interaction before
C. H. Lindsey [Page 23]
Usenet Best Practice March 2005
displaying further text.
Reading agents MUST provide facilities to display the whole of long
lines up to the maximum of 998 characters (whether by wrapping or by
providing horizontal scroll bars). However, cutting and pasting of
wrapped lines SHOULD copy the original unwrapped line (i.e. all CRLFs
not in the original should be discarded).
It is common for reading agents to recognize the presence of URIs in
the bodies of articles and to permit them to be clicked upon. In such
cases, URIs which contain whitespace or are split over lines SHOULD
be recognized, as is recommended in Appendix C of [RFC 3986].
3.3.3.1. Usage of MIME
Even though this document, or applicable policy, may discourage the
use of some Media Types, all reading agents SHOULD make some
realistic attempt to display at least all text types (especially
where the Content-Disposition is "inline", even if all that can be
done is to exhibit any formatting information as received (thus
allowing a suitably knowledgeable reader to interpret it manually).
The same applies to unrecognized charsets. It is not expected that
reading agents will necessarily be able to present characters in all
possible charsets (for example, a reading agent might be able to
present only the ISO-8859-1 (Latin 1) characters [ISO 8859]), but
where unpresentable characters arise they SHOULD be presented in some
escaped notation, e.g. octal or hexadecimal (rather than as some
single distinctive glyph or by exhibiting a warning).
Reading agents MAY interpret image, audio and video Media Types
inline, but few in fact do so (and the use of such Media Types is
anyway deprecated in the absence of established policy to the
contrary - see 3.1.2.2). Likewise, reading agents MAY interpret
"application" types (and SHOULD at least display those types which
are inherently textual in nature). However, there are security risks
inherent in some application types, and even in "text/html" (P-
8.2.2). Even requiring the reader to click on some icon before
proceeding with the application has proven notoriously ineffective
against malicious attacks. The only safe alternative is to execute
the application within a protected environment, or "sandbox", outside
of which its side effects cannot occur.
Of the multipart Media Types, reading agents MUST handle correctly at
least "multipart/mixed" and "multipart/alternative". Other multipart
types that are not implemented directly MUST be treated as
"multipart/mixed". It is a regular practice for some Usenet articles
to consist of digests of other messages or informative documents
(usually known as "FAQ"s). These take the form of digests, as defined
in [RFC 1153] or of the MIME Media Type "multipart/digest". Reading
agents SHOULD recognize both of these formats and enable the
individual digest items to be presented separately, as if they were
separate articles.
C. H. Lindsey [Page 24]
Usenet Best Practice March 2005
Reading agents SHOULD honour any Content-Disposition header that is
provided (in particular, they SHOULD display any part of a multipart
for which the disposition is "inline", possibly distinguished from
adjacent parts by some suitable separator). In the absence of such a
header, the body of an article or any part of a multipart with Media
Type "text" SHOULD be displayed inline.
3.4. The Well-Behaved Reply Agent
First and foremost, a reply agent is an Email agent, and therfore its
primary responsibility is to generate messages that are compliant
with [RFC 2822] and other applicable Email standards and conventions.
When a reply is to be emailed to the poster of an article, the reply
agent MUST initially create a To header from the Reply-To or From
header, as appropriate, of the precursor.
NOTE: A distinction is to be made between when a reply is
emailed to the poster of an article, and when such a reply is
also posted during the course of generating a followup; in the
latter case (but not the former) it is expected that any Mail-
Copies-To header will have been observed.
Note also that use of the Posted-And-Mailed header is
appropriate whenever a message is both posted and emailed,
whether or not this is done during the course of a formal
followup.
[Remove those NOTEs if those headers disappear.]
Since addresses ending in ".invalid" are undeliverable, reply agents
SHOULD warn any user attempting to reply to them and SHOULD NOT, in
any case, attempt to deliver to them (since that would be pointless
anyway).
3.5. User Interfaces
The basic functionalities provided to the poster MUST include the
following:
o To Post a new article;
o To Followup to a an existing article;
o To Reply by email to the poster of an existing article (assuming,
of course, that an email capability is available);
and SHOULD include
o To Cancel or Supersede articles previously posted by that same
user (though this mechanism MUST NOT be available for other
people's articles).
The commands provided to the user to instigate these operations
SHOULD, in the case of agents designed for English speakers at least,
make use of the words "Post", "Followup", "Reply" and "Cancel" (or of
their initial letters). It is NOT sufficient, particularly in the
case of user agents intended for dual Email and Netnews use, simply
to re-use the words for the corresponding Email operations (such as
"Send" instead of "Post" or "Reply" instead of "Followup" or "Delete"
C. H. Lindsey [Page 25]
Usenet Best Practice March 2005
instead of "Cancel"). It SHOULD be immediately evident to an
ordinary, untrained user which command to use for each of the
operations.
There MAY also be a separate facility encompassing "Followup and
Reply", but in that case the provisions of any Mail-Copies-To header
in the precursor (3.2.1.3) SHOULD be observed. It SHOULD be possible
to switch between the Followup, Reply and "do both" commands, even
after the article body has been edited. If, for whatever reason,
there is only one command encompassing all of these operations, its
default action MUST be to Reply (with no possibility to configure it
otherwise).
The user is responsible for providing at least the Newsgroups and
Subject headers of the new article; in the case of Followups and
Replies, it is usual for the user agent to provide defaults for
these, but in all cases facilites for the user to edit these MUST be
provided. In particular, it MUST be possible to specify multiple
Newsgroups (the effect of which MUST be for them to be cross-posted
rather than multi-posted), but the poster SHOULD be prevented (or at
least warned) from excessive crossposting and SHOULD be offered the
opportunity to set a Followup-To header if he insists on an excessive
cross-post. Excessive numbers of newsgroups in a Followup-To header
SHOULD be discouraged likewise.
The user MUST be warned (and SHOULD be prevented) if he attempts to
post an article whose body is empty, or which contains only quoted
text.
When the article is finally posted, the user MUST be warned (with
severe wording) (and SHOULD be prevented) if he attempts to post the
same article again, unless the system is able to report explicitly
that the original posting had failed.
See section 3.1 for further requirements and recommendations to be
followed when posting articles.
4. The Well-Behaved Injecting Agent
The injecting agent bears a responsibility towards the rest of the
network for ensuring both that the articles it injects are compliant
with [USEFOR], and that they conform with the general expectations of
the rest of the network as to what constitutes "proper behaviour".
[USEPRO] therefore imposes a duty on it to check articles for
compliance rather thoroughly, but also a general duty to be
responsive to complaints concerning the behaviour of those who are
permitted to post through it.
An injecting agent MAY take account of the policies of any newsgroups
or hierarchies that the article is posted to (though it would be
unreasonable to expect it to be aware of the policies and
idiosyncrasies of all the hierarchies that it might encounter).
C. H. Lindsey [Page 26]
Usenet Best Practice March 2005
As part of their responsibility for the actions of their posters,
injecting agents MAY cancel articles which they have previously
injected (P-6.3).
[That paragraph will move back to USEPRO if the rules governing who may
issue cancels are moved back.]
4.1. Construction of Headers
According to [USEPRO], an injecting agent MAY add other headers not
already provided by the poster, but SHOULD NOT alter, delete, or
reorder any existing header. However, the addition of non-mandatory
headers by the injecting agent may alter the posting agent's
preferred presentation of information.
Insofar as the injecting agent needs to add headers not present in
the proto-article (whether mandatory headers or otherwise), it MUST
also behave as a well-behaved posting agent (3.1) with regard to
those headers, including the insertion of appropriate folding so as
to keep line lengths within the accepted limits.
4.1.1. Sender
The generation of the Sender header is to be regarded as the
responsibility of the posting agent. Although adding this header by
injecting agents is not forbidden by [USEPRO] (though overwriting an
existing one is), and although some agents indeed do so, this
practice SHOULD be phased out. Exposing a sender's mailbox has
privacy implications; where the main or only purpose for doing so is
as tracing information, it is preferable to use instead one of the
options provided for the Injection-Info header.
4.1.2. Organization
The general discouragement from providing a default value for this
header (3.1.1.7) applies even more to injecting agents. Where all the
posters using a given injecting agent belong to a single
organization, including the name of that organization as the default
might well be reasonable. But if the injecting agent is merely
providing a service to the general public, providing the name of the
service provider as the default organization is mere advertising, and
makes no allowance for the possibility that subscribers to the
service who do not provide an Organization header of their own might
prefer not to have one at all.
4.1.3. User-Agent
There is provision in [USEPRO] for injecting agents to include (or
augment if already present) a User-Agent header to identify the
software that they use but, again, use as an advertising medium (in
the mundane sense) is discouraged (cf. 3.1.1.10).
C. H. Lindsey [Page 27]
Usenet Best Practice March 2005
4.1.4. Injection-Info
Various headers such as NNTP-Posting-[Host, Date, etc.] (which
actually had nothing to do with NNTP) and X-trace have not been
standardized in [USEFOR], but have instead been incporporated in the
new Injection-Info header (whose syntax incorporates more room for
future extension). Use of those headers SHOULD therefore be phased
out.
The purpose of the various parameters of the Injection-Info header is
to enable the injecting agent to make assertions about the origin of
the article, in fulfilment of its responsibilities towards the rest
of the network. These assertions can then be utilized as follows:
1. To enable the administrator of the injecting agent to respond to
complaints and queries concerning the article. For this purpose,
the parameters included SHOULD be sufficient to enable the
administrator to identify its true origin (which parameters are
best suited to this purpose will vary with the nature of the
injecting site and of its relationship to the posters who use it -
there is no benefit in including parameters which contribute
nothing to this aim). An administrator MAY, with those parameters
where the syntax so allows, use cryptic notations interpretable
only by himself if he considers it appropriate to protect the
privacy of that origin.
2. To enable relaying, serving and reading agents to recognize
articles from origins which they might wish to reject, divert, or
otherwise handle specially, for reasons of site policy.
3. To enable the timely identification of spews of articles arising
from a common origin.
NOTE: Administrators of injecting agents can choose which
selection of the various parameters best enables them to fulfil
their responsibilities. Some of these parameters identify the
source of the article explicitly whereas others do so
indirectly, thus affording more privacy to posters who value
their anonymity, but also making harder the tracking of
malicious disruption of the network, especially so if the
administrators choose not to 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 other, and administrators need
to be aware of this when formulating their policies.
5. The Well-Behaved Relaying Agent
[USEPRO] establishes as a basic principle that relaying agents are
not to alter articles in any way during transmission (except for
those headers explicitly defined to be "variant"). This applies even
if the article is perceived not to be conformant with [USEFOR]; in
such a case it MUST either be passed on as it stands, or else it
should be discarded altogether. In this way, it will be ensured that
all copies of a given article, wherever they appear throughout
C. H. Lindsey [Page 28]
Usenet Best Practice March 2005
Usenet, will be identical.
In particular, [USEPRO] requires serving and relaying agents to
accept any syntactially correct <newsgroup-name> in Newsgroups
headers, even if it would violate one or more of the policy
restrictions set out in section 7.2; i.e. the injecting agent is the
last place for such checks to be made (3.1.1.5).
Even if relaying agents do not, as a matter of local policy, intend
to honour certain control messages, they MUST still propagate them in
the normal manner.
5.1. The Path Header
It is important to be able to determine where a given article was
injected into Usenet and the route it took to reach each site at
which it appears. Both the Path and Injection-Info headers have an
important part to play in this. [USEPRO] therefore imposes a strong
obligation on relaying agents to verify where articles reached them
from and to record this information in the Path header. It is
important that these new requirements in [USEPRO] be adopted by all
injecting and relaying agents at the earliest opportunity.
[However, the precise form of the Path header is still under
discussion.]
5.1.1. Suggested Verification Methods
It is preferable to verify the claimed <path-identity> against the
source than to make routine use of the '?' <path-delimiter> with
consequential wasteful double-entry Path additions.
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
already have been checked against a list of known FQDNs, IP
addresses, or other registered aliases that the receiving site has
agreed to peer with.
Since the source host may have several IP addresses, checking the
claimed FQDN or IP address against the source IP, or finding a
suitable FQDN to report with a '?' <path-delimiter>, may involve
several DNS lookups, following CNAME chains as required. Note that
any reverse DNS lookup that is involved needs to be confirmed by a
forward one.
If the incoming article arrives through some other protocol, such as
UUCP, that protocol MUST include a means of verifying the source
site. In UUCP implementations, commonly each incoming connection has
a unique login name and password, and that login name (or some alias
registered for it) would be expected as the <path-identity>.
If none of these methods is applicable, relaying agents SHOULD
require connecting hosts to identify themselves using some
cryptographic authentication mechanism (e.g. [NNTP-AUTH]).
C. H. Lindsey [Page 29]
Usenet Best Practice March 2005
6. The Well-Behaved Serving Agent
The principles set out in section 5 regarding not altering articles
in any way apply equally to serving agents. The article as stored
MUST be identical to the article as injected (variant headers
excepted).
Serving agents commonly insert an Xref header into articles that they
store (P-7.4) so as to enable reading agents to avoid displaying that
article in more than one of the groups that it is crossposted to, and
to enable them to distinguish that particular serving agent from
others known to them. It is convenient, though not required, for a
serving agent to use the same <server-name> in Xref headers as the
<path-identity> it inserts into Path headers.
6.1. Control Messages
Serving agents SHOULD deny group control messages not issued by the
appropriate administrative agencies, and therefore SHOULD take such
steps as are reasonably practicable to validate their authenticity,
e.g. by checking digital signatures in cases where they are provided.
6.1.1. The 'newgroup' and 'mvgroup' Control Messages
Serving agents SHOULD, insofar as they are conveniently able to,
reject all 'newgroup' and 'mvgroup' messages not meeting the policies
of the relevant hierarchy.
Since the 'mvgroup' control message was a feature newly introduced by
[USEPRO], the requirements set for it were relatively light, so as to
facilitate a rapid deployment within Usenet (treating it as a
'newgroup' message is minimally conformant). Nevertheless, to achieve
full benefit, serving agents need to arrange to service requests for
access to the old group by providing access to the new. [USEPRO]
states how that MAY be done, but this documents goes further; serving
agents SHOULD be upgraded to do so at the earliest opportunity.
6.1.2. Cancel Messages
A cancel message may be issued in the following circumstances.
1. The poster of an article (or, more specifically, any entity
mentioned in the From header or the Sender header, whether or not
that entity was the actual poster) is always entitled to issue a
cancel message for that article, and serving agents SHOULD honour
such requests. Posting agents SHOULD facilitate the issuing of
cancel messages by posters fulfilling these criteria.
2. The agent which injected the article onto the network (more
specifically, the entity identified by the <path-identity> in
front of the leftmost '%' delimiter in the Path header or in the
Injection-Info header and, where appropriate, the moderator (more
specifically, any entity mentioned in the Approved header) is
always entitled to issue a cancel message for that article, and
C. H. Lindsey [Page 30]
Usenet Best Practice March 2005
serving agents SHOULD honour such requests.
3. Other entities MAY be entitled to issue a cancel message for that
article, in circumstances where established policy for any
hierarchy or group in the Newsgroups header, or established custom
within Usenet, so allows (such policies and customs are not
defined by this document). Such cancel messages MUST include an
Approved header identifying the responsible entity. Serving agents
MAY honour such requests, but SHOULD first take steps to verify
their appropriateness.
[There was one request to move that back into [USEPRO]. Any one else?]
7. The Well-Behaved Hierarchy Administrator
The term "hierarchy administrator" means any agency responsible for
administration of a (sub-)hierarchy (1.1), or in the absence of such
an agency, the custom and usage generally accepted for that
(sub-)hierarchy, insofar as such can be determined.
7.1. Control Messages
In those hierarchies where appropriate administrative agencies exist
(see 1.1), group control messages SHOULD NOT be issued except as
authorized by those agencies, in which case the administrator needs
to establish just what person (or other entity) is to be permitted to
issue those messages; moreover he should at the same time establish s
digital signature key to be used for authenticating them (P-6.1), and
finally he SHOULD ensure that this information is widely promulgated
for use by serving agents worldwide.
Those issuing control messages should be aware that the former
practice of using a Subject starting with "cmsg" in lieu of a control
message is now deprecated (3.1.1.4) although they MAY continue to use
that convention in addition to using a proper Control leader.
The <newsgroup-name> in 'newgroup' control messages (and the second
<(new-)newsgroup-name> in 'mvgroup' control messages) SHOULD conform
to whatever policies have been established by the administrator
(7.2).
Although, in accordance with [RFC 2822], a <newsgroups-line> (as
found in both 'newgroup' and 'checkgroups' messages) could have a
maximum length of 998 octets, as a matter of policy a far lower
limit, expressed in characters, SHOULD be set. The current convention
is to limit its length so that the <newsgroup-name>, the HTAB(s)
(interpreted as 8-character tabs that takes one at least to column
24) and the <newsgroup-description> (excluding any <moderation-flag>)
fit into 79 characters. This document does not seek to enforce any
such rule, but any decision to extend it should be made as a specific
decision for the hierarchy. Reading agents SHOULD therefore enable a
<newsgroups-line> of any length to be displayed, e.g. by wrapping it
as required.
C. H. Lindsey [Page 31]
Usenet Best Practice March 2005
7.2. Naming of Newsgroups
Because group control messages can only be issued on the authority of
the responsible agency, it follows that the agency has complete
control of the names of the newsgroups to be considered as valid
members of that (sub-)hierarchy. Consequently, it needs to establish
policies for the format of the <newsgroup-name>s it intends to
permit; these policies can be both technical and aesthetic.
[USEFOR] provides by default the following technical restrictions
upon which hierarchy administrators can then build, and which SHOULD
in any case be applied in hierarchies not subject to such management.
[Well, it doesn't provide them yet, but it needs to.]
NOTE: These restrictions are intended to reflect existing
practice and are intended both to avoid certain technical
difficulties and to avoid unnecessary confusion. They may well
change over time in the light of future experience.
1. Uppercase letters are forbidden.
NOTE: Traditionally, <newsgroup-name>s have been written in
lowercase. However, posting agents SHOULD NOT convert uppercase
characters to the corresponding lowercase forms except under the
explicit instructions of the poster.
2. A <component> is forbidden to consist entirely of digits.
NOTE: This requirement was in [RFC 1036] but nevertheless
several such groups have appeared in practice and implementors
should be prepared for them. A common implementation technique
uses each <component> as the name of a directory and uses
numeric filenames for each article within a group. Such an
implementation needs to be careful when this could cause a clash
(e.g. between article 123 of group xxx.yyy and the directory for
group xxx.yyy.123). Once the latter group exists, the
subsequent creation of the former would be precluded for all
time.
3. A <component> is limited to 30 <component-char>s and a
<newsgroup-name> to 66 <component-char>s (counting also the '.'s
separating the <component>s).
NOTE: Whilst there is no longer any technical reason to limit
the length of a <component> (formerly, it was limited to 14
octets) nor of a <newsgroup-name>, it should be noted that these
names are also used in the <newsgroups-line> where another
overall policy limit applies (7.1) and, moreover, excessively
long names can be exceedingly inconvenient in practical use. The
66 limit on <newsgroup-name>s ensures that a Followup-To Header
with such a name will still fit within 79 characters overall.
C. H. Lindsey [Page 32]
Usenet Best Practice March 2005
In the event that some future extension to [USEFOR] allows
internationalized <newsgroup-name>s including non-ASCII characters,
there will be further technical issues to be taken into account,
including:
4. What non-ASCII punctuations and other symbols are to be allowed.
5. What normalizations need to be observed to overcome multiple ways
of constructing glyphs with identical or similar appearance.
6. Restrictions on mixing alphabets within one <component> of a name
(so as to avoid confusion between, for example, Latin A and Greek
Alpha, and similar confusions between some Latin and Cyrillic
letters - though retaining the restriction on uppercase letters
will mitigate these problems somewhat).
Aesthetic reasons for policy limitations are likely to include
insistence upon a clear hierarchical structure (the tree of names
needs to be neither too broad nor too deep), that the <component>s of
<newsgroup-name>s are meaningful in the context of the language(s)
expected to be used, that frivolous names are avoided, and that
abbreviations are likely to be recognized by the intended readership.
[David Wright has a FAQ on hierarchical naming which might give us some
help.]
7.3. Format of Bodies
Hierarchy administrators MAY declare, as a matter of policy, which
languages and charsets are to be considered appropriate within their
hierarchies (or within particular groups). Whereas in principle, any
character set may be specified in the "charset=" parameter of a Media
Type, readers cannot be expected to possess agents capable of
displaying characters not needed for those chosen languages, hence
administrators SHOULD choose charsets accordingly and/or limit the
planes to be allowed within charsets based on [UNICODE 3.2], such
UTF-8.
This document has already provided (3.1.2,3.2.2) for a default limit
on the length of lines (79, or preferably 72) within plain-text
articles, and hierarchy administrators MAY change this, as a matter
of policy (though there would seems to be little reason to do so
except where the intended language and charsets so dictate - e.g.
because of a need to use double-width characters).
This document has also limited (3.1.2.2), by default, the Media types
that may be used in articles to "text/plain". Hierarchy
administrators MAY relax this, as a matter of policy (by allowing,
for example, "text/http", the "binary" types "audio", "image" and
"video", and selected "application" types), and they MAY similarly
regulate the use of "message/partial".
Hierarchy administrators MAY also impose other restrictions relevant
to the nature of their hierarchy, such as limits on the overall size
of articles, on the length of signatures, the topics to be discussed
C. H. Lindsey [Page 33]
Usenet Best Practice March 2005
(usually set out in a charter for each newsgroup) and the extent of
advertising to be permitted.
7.4. Promulgation
The policies established by each hierarchy administrator SHOULD be
publicised (in the form of guidelines, FAQs and charters) in suitable
*.announce groups within each hierarchy, and also on suitable web
sites (although it should be understood that Usenet exists as a
separate entity from the World Wide Web, and it would be wrong to
assume that every Usenet user has web - or even email - access).
NOTE: The promulgation of policies is one thing; the enforcement
of policies is quite another. With the exception of <newsgroup-
name>s, for which technical controls exist, policy enforcement
is a matter of peer pressure (which, when consistently applied,
can be remarkably effective), possibly with the aid of the
administrators of injecting agents through their ability, and
even duty (4), to apply disciplinary pressure to their users.
8. The Well-Behaved Moderator
A moderator MAY inform the poster if an article is accepted, and he
SHOULD inform the poster if it is rejected (except where it appears
to be a deliberate and malicious attempt to disrupt).
A moderator SHOULD NOT (absent any established and widely promulgated
policy to the contrary) 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.
9. The Well-Behaved Poster
[What you see here is but the tip of a very large iceberg, being the
particular advice to posters which has been transported from the earlier
drafts of [ARTICLE]. There is much more that could, and probably
should, be said.
However, it would first be advsisable to study [RFC 1855] and to decide
whether we want to adopt and adapt what is already stated there, even to
the extent of obsoleting it entirely.]
9.1. Construction of Headers
Posters SHOULD NOT include redundant headers such as Reply-To and
Followup-To that merely duplicate the defaults (c.f. 3.1.1.6 and
3.1.1.9).
C. H. Lindsey [Page 34]
Usenet Best Practice March 2005
9.1.1. From
Whether or not a valid address can subsequently be extracted from an
address ending in ".invalid" falls outside the scope of this document
but, obviously, posters wishing to disguise their address should not
suppose that just adding ".invalid" to it will achieve that effect.
9.1.2. Summary
The summary should be terse. Posters SHOULD avoid trying to cram
their entire article into the headers; even the simplest query
usually benefits from a sentence or two of elaboration and context,
and not all reading agents display all headers. On the other hand the
summary should give more detail than the Subject.
9.1.3. Expires
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
expected for such articles (for example, a notice for a meeting to be
held tomorrow on the one hand, or a FAQ which should remain on
servers until its next issue on the other). Local policy for each
serving agent will dictate whether and when this header is obeyed and
posters SHOULD NOT depend on it being completely followed.
9.2. Construction of Bodies
Posters SHOULD avoid using control characters and escape sequences
except for tab (US-ASCII 9), formfeed (US-ASCII 12) and, possibly,
backspace (US-ASCII 8), for reasons already explained in section
3.3.3.
NOTE: Backspace was historically used for underlining, done by
an underscore (US-ASCII 95), a backspace, and a character,
repeated for each character that should be underlined. Posters
are warned that underlining is not available on all output
devices or supported by all reading agents and is best not
relied on for essential meaning.
When preparing followups, posters SHOULD edit quoted context to trim
it down to the minimum necessary.
Posters SHOULD observe the policies established for each hierarchy
(7.3) or, in the absence of such policies, to the defaults set out in
this document, as regards:
o The languages and charsets to be used;
o The length of lines;
o The acceptability of various Media Types, and especially of
"text/html" and the "binary" types;
o Conventions regarding the advisability of using
"message/partial";
o Limits on the overall size of articles;
o The topics to discussed in each group, as determined by its
charter;
C. H. Lindsey [Page 35]
Usenet Best Practice March 2005
o The acceptability of advertising.
10. References
[ARTICLE] Charles H. Lindsey, "News Article Format and Transmission",
draft-ietf-usefor-article-format-*.txt.
[ISO 8859] International Standard - Information Processing - 8-bit
Single-Byte Coded Graphic Character Sets. Part 1: Latin
alphabet No. 1, ISO 8859-1, 1987. Part 2: Latin alphabet No. 2,
ISO 8859-2, 1987. Part 3: Latin alphabet No. 3, ISO 8859-3,
1988. Part 4: Latin alphabet No. 4, ISO 8859-4, 1988. Part 5:
Latin/Cyrillic alphabet, ISO 8859-5, 1988. Part 6: Latin/Arabic
alphabet, ISO 8859-6, 1987. Part 7: Latin/Greek alphabet, ISO
8859-7, 1987. Part 8: Latin/Hebrew alphabet, ISO 8859-8, 1988.
[ISO/IEC 10646] "International Standard - Information technology -
Universal Multiple-Octet Coded Character Set (UCS) - Part 1:
Architecture and Basic Multilingual Plane", ISO/IEC 10646-
1:2000, 2000.
[MALAMUD] "Labels in Subject Headers Considered Ineffective At Best",
draft-malamud-subject-line-*.txt.
[NNTP-AUTH] J. Vinocur, K. Murchison, and C. Newman, "NNTP Extension
for Authentication", draft-ietf-nntpext-authinfo-*.txt.
[RFC 1036] M. Horton and R. Adams, "Standard for Interchange of
USENET Messages", RFC 1036, December 1987.
[RFC 1153] F. Wancho, "Digest Message Format", RFC 1153, April 1990.
[RFC 1847] J. Galvin, S. Murphy, S. Crocker, and N. Freed, "Security
Multiparts for MIME: Multipart/Signed and Multipart/Encrypted",
RFC 1847, October 1995.
[RFC 1855] S. Hambridge, "Netiquette Guidelines", RFC 1855, October
1995.
[RFC 2045] N. Freed and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Bodies",
RFC 2045, November 1996.
[RFC 2046] N. Freed and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part Two: Media Types", RFC 2046, November
1996.
[RFC 2047] K. Moore, "MIME (Multipurpose Internet Mail Extensions)
Part Three: Message Header Extensions for Non-ASCII Text", RFC
2047, November 1996.
[RFC 2119] S. Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, March 1997.
C. H. Lindsey [Page 36]
Usenet Best Practice March 2005
[RFC 2396] T. Berners-Lee, R. Fielding, U.C. Irvine, and L. Masinter,
"Uniform Resource Identifiers (URI): Generic Syntax", RFC 2396,
August 1998.
[RFC 2440] J. Callas, L. Donnerhacke, H. Finney, and R. Thayer,
"OpenPGP Message Format", RFC 2440, November 1998.
[RFC 2606] D. Eastlake and A. Panitz, "Reserved Top Level DNS Names",
RFC 2606, June 1999.
[RFC 2821] John C. Klensin and Dawn P. Mann, "Simple Mail Transfer
Protocol", RFC 2821, April 2001.
[RFC 2822] P. Resnick, "Internet Message Format", RFC 2822, April
2001.
[RFC 3156] M. Elkins, D. Del Torto, R. Levien, and T. Roessler, "MIME
Security with OpenPGP", RFC 3156, August 2001.
[RFC 3676] R. Gellens, "The Text/Plain Format and DelSp Parameters",
RFC 3676, February 2004.
[RFC 3986] T. Berners-Lee, R. Fielding, and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", RFC 3986, January
2005.
[UNICODE 3.2] The Unicode Consortium, "The Unicode Standard - Version
3.2, being an amendment to [UNICODE 3.1]", Unicode Standard
Annex #28 <
http://www.unicode.org/unicode/reports/tr28>, 2002.
[USEFOR] K. Murchison et al, "News Article Format", draft-ietf-
usefor-usefor-*.txt.
[USEPRO] C. H. Lindsey, "News Article Architecture and Protocols",
draft-ietf-usefor-usepro-*.txt.
11. Acknowledgements
12. Contact Address
Editor
Charles. H. Lindsey
5 Clerewood Avenue
Heald Green
Cheadle
Cheshire SK8 3JU
United Kingdom
Phone: +44 161 436 6131
Email:
[email protected]
C. H. Lindsey [Page 37]
Usenet Best Practice March 2005
[
Working group chair
Alexey Melnikov <
[email protected]>
]
Comments on this draft should preferably be sent to the mailing list
of the Usenet Format Working Group at
[email protected].
Appendix A - Notices
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf-
[email protected].
Full Copyright Statement
Copyright (C) The Internet Society (2005). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
C. H. Lindsey [Page 38]