usefor-article-07 May 2002
[< Prev]
[TOC]
13. Contact Address
Editor
Charles. H. Lindsey
5 Clerewood Avenue
Heald Green
Cheadle
Cheshire SK8 3JU
United Kingdom
Phone: +44 161 436 6131
Email: chl@clw.cs.man.ac.uk
[
Working group chair
David Barr
Digital Island
Email: barr@visi.com
]
Comments on this draft should preferably be sent to the mailing list
of the Usenet Format Working Group at
usenet-format@landfield.com.
This draft expires six months after the date of publication (see Page
1) (i.e. in Nov 2002).
Appendix A.1 - A-News Article Format
The obsolete "A News" article format consisted of exactly five lines
of header information, followed by the body. For example:
Aeagle.642
news.misc
cbosgd!mhuxj!mhuxt!eagle!jerry
Fri Nov 19 16:14:55 1982
Usenet Etiquette - Please Read
body
body
body
The first line consisted of an "A" followed by an article ID
(analogous to a message ID and used for similar purposes). The
second line was the list of newsgroups. The third line was the path.
The fourth was the date, in the format above (all fields fixed
width), resembling an Internet date but not quite the same. The fifth
was the subject.
This format is documented for archeological purposes only. Articles
MUST NOT be generated in this format.
Appendix A.2 - Early B-News Article Format
The obsolete pseudo-Internet article format, used briefly during the
transition between the A News format and the modern format, followed
the general outline of a MAIL message but with some non-standard
headers. For example:
From: cbosgd!mhuxj!mhuxt!eagle!jerry (Jerry Schwarz)
Newsgroups: news.misc
Title: Usenet Etiquette -- Please Read
Article-I.D.: eagle.642
Posted: Fri Nov 19 16:14:55 1982
Received: Fri Nov 19 16:59:30 1982
Expires: Mon Jan 1 00:00:00 1990
body
body
body
The From-header contained the information now found in the Path-
header, plus possibly the full name now typically found in the From-
header. The Title-header contained what is now the Subject-content.
The Posted-header contained what is now the Date-content. The
Article-I.D.-header contained an article ID, analogous to a message
ID and used for similar purposes. The Newsgroups- and Expires-headers
were approximately as now. The Received-header contained the date
when the latest relayer to process the article first saw it. All
dates were in the above format, with all fields fixed width,
resembling an Internet date but not quite the same.
This format is documented for archeological purposes only. Articles
MUST NOT be generated in this format.
Appendix A.3 - Obsolete Headers
Early versions of news software following the modern format sometimes
generated headers like the following:
Relay-Version: version B 2.10 2/13/83; site cbosgd.UUCP
Posting-Version: version B 2.10 2/13/83; site eagle.UUCP
Date-Received: Friday, 19-Nov-82 16:59:30 EST
Relay-Version contained version information about the relayer that
last processed the article. Posting-Version contained version
information about the posting agent that posted the article. Date-
Received contained the date when the last relayer to process the
article first saw it (in a slightly nonstandard format).
In addition, this present standard obsoletes certain headers defined
in [Son-of-1036] (see 6.22
Also-Control: cancel <9urrt98y53@site.example>
See-Also: <i4g587y@site1.example> <kgb2231+ee@site2.example>
Article-Names: comp.foo:charter
Article-Updates: <i4g587y@site1.example>
Also-Control indicated a control message that was also intended to be
filed as a normal article. See-Also listed related articles, but
without the specific relationship with followups that pertains to the
References-header. Article-Names indicated some special significance
of that article in relation to the indicated newsgroup. Article-
Updates indicated that an earlier article was updated, without at the
same time being superseded.
These headers are documented for archeological purposes only.
Articles containing these headers MUST NOT be generated.
Appendix A.4 - Obsolete Control Messages
This present standard obsoletes certain control messages defined in
[RFC 1036] (see 7.5 all of which had the effect of requesting a
description of a relaying or serving agent's software, or its peering
arrangements with neighbouring sites, to be emailed to the article's
reply address. Whilst of some utility when Usenet was much smaller
than it is now, they had become no more than a tool for the malicious
sending of mailbombs. Moreover, many organizations now consider
information about their internal connectivity to be confidential.
version
sendsys
whogets
senduuname
"Version" requested details of the transport software in use at a
site. "Sendsys" requested the full list of newsgroups taken, and the
peering arrangements. "Who gets" was similar, but restricted to a
named newsgroup. "Senduuname" resembled "sendsys" but restricted to
the list of peers connected by UUCP.
Historically, a checkgroups body consisting of one or two lines, the
first of the form "-n newsgroup", caused check-groups to apply to
only that single newsgroup.
Historically, an article posted to a newsgroup whose name had exactly
three components of which the third was "ctl" signified that article
was to be taken as a control message. The Subject-header specified
the actions, in the same way the Control-header does now.
These forms are documented for archeological purposes only; they MUST
NO LONGER be used.
Appendix B - Collected Syntax
Appendix B.1 - Characters, Atoms and Folding
In the following syntactic rules, numbers in the left hand margin
indicate rules taken from other documents, specifically:
2 from [RFC 2822] with the exception of those elements described
therein as "obsolete";
3 from [RFC 2373]
4 from [RFC 2234];
5 from [RFC 2045].
Where the number is followed by an asterisk ('*'), it indicates that
the rule in question has been modified for the purposes of this
standard.
4 ALPHA = %x41-5A / ; A-Z
%x61-7A ; a-z
2 CFWS = *([FWS] comment) (([FWS] comment) / FWS )
4 CR = %x0D ; carriage return
4 CRLF = CR LF
4 DIGIT = %x30-39 ; 0-9
4 DQUOTE = %d34 ; quote mark
2 FWS = ([*WSP CRLF] 1*WSP); Folding whitespace
4 HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
4 HTAB = %x09 ; horizontal tab
4 LF = %x0A ; line feed
2 NO-WS-CTL = %d1-8 / ; US-ASCII control characters
%d11 / ; which do not include the
%d12 / ; carriage return, line feed,
%d14-31 / ; and whitespace characters
%d127
4 SP = %x20 ; space
4 WSP = SP / HTAB ; Whitespace characters
UTF8-xtra-2-head = %xC2-DF
UTF8-xtra-3-head = %xE0 %xA0-BF / %xE1-EC %x80-BF /
%xED %x80-9F / %xEE-EF %x80-BF
UTF8-xtra-4-head = %xF0 %x90-BF / %xF1-F7 %x80-BF
UTF8-xtra-5-head = %xF8 %x88-BF / %xF9-FB %x80-BF
UTF8-xtra-6-head = %xFC %x84-BF / %xFD %x80-BF
UTF8-xtra-char = UTF8-xtra-2-head 1( UTF8-xtra-tail ) /
UTF8-xtra-3-head 1( UTF8-xtra-tail ) /
UTF8-xtra-4-head 2( UTF8-xtra-tail ) /
UTF8-xtra-5-head 3( UTF8-xtra-tail ) /
UTF8-xtra-6-head 4( UTF8-xtra-tail )
UTF8-xtra-tail = %x80-BF
2 atext = ALPHA / DIGIT /
"!" / "#" / ; Any character except
"$" / "%" / ; controls, SP, and specials.
"&" / "'" / ; Used for atoms
"*" / "+" /
"-" / "/" /
"=" / "?" /
"^" / "_" /
"`" / "{" /
"|" / "}" /
"~"
2 atom = [CFWS] 1*atext [CFWS]
2 ccontent = ctext / quoted-pair / comment
2 comment = "(" *([FWS] ccontent) [FWS] ")"
2* ctext = NO-WS-CTL / ; all of <text> except
%d33-39 / ; SP, HTAB, "(", ")"
%d42-91 / ; and "\"
%d93-126 /
UTF8-xtra-char
2 dcontent = dtext / quoted-pair
2 dot-atom = [CFWS] dot-atom-text [CFWS]
2 dot-atom-text = 1*atext *( "." 1*atext )
2 dtext = NO-WS-CTL / ; Non white space controls
%d33-90 / ; The rest of the US-ASCII
%d94-126 ; characters not including
; "[", "]", or "
2 phrase = 1*word
2 qcontent = qtext / quoted-pair
2* qtext = NO-WS-CTL / ; all of <text> except
%d33 / ; SP, HTAB, "\" and DQUOTE
%d35-91 /
%d93-126 /
UTF8-xtra-char
2 quoted-pair = "\" text
2 quoted-string = [CFWS] DQUOTE
*( [FWS] qcontent ) [FWS]
DQUOTE [CFWS]
2 specials = "(" / ")" / ; Special characters used in
"<" / ">" / ; other parts of the syntax
"[" / "]" /
":" / ";" /
"@" / "\" /
"," / "." /
DQUOTE
strict-qcontent = strict-qtext / strict-quoted-pair
strict-quoted-pair = "\" strict-text
strict-quoted-string
= [CFWS] DQUOTE
*( [FWS] strict-qcontent ) [FWS]
DQUOTE [CFWS]
strict-qtext = NO-WS-CTL / ; qtext restricted to
%d33 / ; US-ASCII
%d35-91 /
%d93-126
strict-text = %d1-9 / ; text restricted to
%d11-12 / ; US-ASCII
%d14-127
2* text = %d1-9 / ; all UTF-8 characters except
%d11-12 / ; US-ASCII NUL, CR and LF
%d14-127 /
UTF8-xtra-char
5 tspecials = "(" / ")" / "<" / ">" / "@" /
"," / ";" / ":" / "\" / DQUOTE /
"/" / "[" / "]" / "?" / "="
2* unstructured = 1*( [FWS] utext ) [FWS]
2* utext = NO-WS-CTL / ; Non white space controls
%d33-126 / ; The rest of US-ASCII
UTF8-xtra-char
2 word = atom / quoted-string
Appendix B.2 - Basic Forms
2 addr-spec = local-part "@" domain
2 address = mailbox / group
2 address-list = address *( "," address )
2 angle-addr = [CFWS] "<" addr-spec ">" [CFWS]
article = 1*( header CRLF ) separator body
5* attribute = [CFWS] token [CFWS]
body = *( *998text CRLF )
2 display-name = phrase
2 date = day month year
2 date-time = [ day-of-week "," ] date FWS time [CFWS]
2 day = [FWS] 1*2DIGIT
2 day-name = "Mon" / "Tue" / "Wed" / "Thu" /
"Fri" / "Sat" / "Sun"
2 day-of-week = [FWS] day-name
2 domain = dot-atom / domain-literal
2 domain-literal = [CFWS] "[" *([FWS] dcontent) [FWS] "]" [CFWS]
2 group = display-name ":" [ mailbox-list / CFWS ] ";"
[CFWS]
header-name = 1*name-character *( "-" 1*name-character )
2 hour = 2DIGIT
2* local-part = dot-atom / strict-quoted-string
2 mailbox = name-addr / addr-spec
2 mailbox-list = mailbox *( "," mailbox )
2 minute = 2DIGIT
2 month = FWS month-name FWS
2 month-name = "Jan" / "Feb" / "Mar" / "Apr" /
"May" / "Jun" / "Jul" / "Aug" /
"Sep" / "Oct" / "Nov" / "Dec"
2 name-addr = [display-name] angle-addr
name-character = ALPHA / DIGIT
other-header = header-name ":" 1*SP other-content
other-content
= <the content of a header defined by some
other standard>
other-parameter
= <a parameter not defined by this standard>
5 parameter = attribute "=" value
2 second = 2DIGIT
separator = CRLF
2 time = time-of-day FWS zone
2 time-of-day = hour ":" minute [ ":" second ]
5 token = 1*<any (US-ASCII) CHAR except SP, CTLs,
or tspecials>
5 value = [CFWS] token [CFWS] / quoted-string
5* x-token = "x-" token
2 year = 4*DIGIT
2* zone = (( "+" / "-" ) 4DIGIT) / "UT" / "GMT"
Appendix B.3 - Headers
Appendix B.3.1 - Header outlines
header = other-header /
Date-header /
From-header /
Message-ID-header /
Subject-header /
Newsgroups-header /
Path-header /
Reply-To-header /
Sender-header /
Organization-header /
Keywords-header /
Summary-header /
Distribution-header /
Followup-To-header /
Mail-Copies-To-header /
Posted-And-Mailed-header /
References-header /
Expires-header /
Archive-header /
Control-header /
Approved-header /
Supersedes-header /
Xref-header /
Lines-header /
User-Agent-header /
Injector-Info-header /
Complaints-To-header
Approved-content = From-content
Approved-header = "Approved" ":" SP Approved-content
*( ";" other-parameter )
Archive-content = [CFWS] ("no" / "yes" ) [CFWS]
Archive-header = "Archive" ":" SP Archive-content
*( ";" ( Archive-parameter /
other-parameter ) )
Archive-parameter = <a parameter with attribute "filename"
and any value>
Complaints-To-content= address-list
Complaints-To-header = "Complaints-To" ":" SP Complaints-To-content
Control-content = [CFWS] control-message [CFWS]
Control-header = "Control" ":" SP Control-content
*( ";" other-parameter )
Date-content = date-time
Date-header = "Date" ":" SP Date-content
*( ";" other-parameter )
Distribution-content = distribution *( dist-delim distribution )
Distribution-header = "Distribution" ":" SP Distribution-content
*( ";" other-parameter )
Expires-content = date-time
Expires-header = "Expires" ":" SP Expires-content
*( ";" other-parameter )
Followup-To-content = Newsgroups-content / [FWS] "poster" [FWS]
Followup-To-header = "Followup-To" ":" SP Followup-To-content
*( ";" other-parameter )
From-content = mailbox-list
From-header = "From" ":" SP From-content
Injector-Info-content= [CFWS] path-identity [CFWS]
Injector-Info-header = "Injector-Info" ":" SP Injector-Info-content
*( ";" ( Injector-Info-parameter /
other-parameter ) )
Injector-Info-parameter
= posting-host-parameter /
posting-account-parameter /
posting-sender-parameter /
posting-logging-parameter /
posting-date-parameter
Keywords-content = phrase *( "," phrase )
Keywords-header = "Keywords" ":" SP Keywords-content
*( ";" other-parameter )
Lines-content = [CFWS] 1*DIGIT [CFWS]
Lines-header = "Lines" ":" SP Lines-content
*( ";" other-parameter )
Mail-Copies-To-content
= copy-addr / [CFWS] ( "nobody" /
"poster" ) [CFWS]
Mail-Copies-To-header= "Mail-Copies-To" ":" SP Mail-Copies-To-content
Message-ID-content = msg-id
Message-ID-header = "Message-ID" ":" SP Message-ID-content
*( ";" other-parameter )
Newsgroups-content = [FWS] newsgroup-name
*( [FWS] ng-delim [FWS] newsgroup-name )
[FWS]
Newsgroups-header = "Newsgroups" ":" SP Newsgroups-content
*( ";" other-parameter )
Organization-content = unstructured
Organization-header = "Organization" ":" SP Organization-content
Path-content = [FWS] *( path-identity [FWS]
path-delimiter [FWS]
) tail-entry [FWS]
Path-header = "Path" ":" SP Path-content
*( ";" other-parameter )
Posted-And-Mailed-content
= [CFWS] ( "yes" / "no" ) [CFWS]
Posted-And-Mailed-header
= "Posted-And-Mailed" ":" SP
Posted-And-Mailed-content
*( ";" other-parameter )
References-content = msg-id *( CFWS msg-id )
References-header = "References" ":" SP References-content
*( ";" other-parameter )
Reply-To-content = address-list
Reply-To-header = "Reply-To" ":" SP Reply-To-content
Sender-content = mailbox
Sender-header = "Sender" ":" SP Sender-content
*( ";" other-parameter )
Subject-content = [ [FWS] back-reference ] pure-subject
Subject-header = "Subject" ":" SP Subject-content
Summary-content = unstructured
Summary-header = "Summary" ":" SP Summary-content
Supersedes-content = msg-id
Supersedes-header = "Supersedes" ":" SP Supersedes-content
*( ";" other-parameter )
User-Agent-content = product-token *( CFWS product-token )
User-Agent-header = "User-Agent" ":" SP User-Agent-content
*( ";" other-parameter )
Xref-content = [CFWS] server-name 1*( CFWS location ) [CFWS]
Xref-header = "Xref" ":" SP Xref-content
*( ";" other-parameter )
Appendix B.3.2 - Control-message outlines
control-message = <empty> /
Newgroup-message /
Rmgroup-message /
Mvgroup-message /
Checkgroup-message /
Cancel-message /
Ihave-message /
Sendme-message
Cancel-arguments = CFWS msg-id
Cancel-message = "cancel" Cancel-arguments
Checkgroup-arguments = [ chkscope ] [ chksernr ]
Checkgroup-message = "checkgroups" Checkgroup-arguments
Ihave-arguments = relayer-name
Ihave-message = "ihave" Ihave-arguments
Mvgroup-arguments = CFWS newsgroup-name CFWS newsgroup-name
[ CFWS newgroup-flag ]
Mvgroup-message = "mvgroup" Mvgroup-arguments
Newgroup-arguments = CFWS newsgroup-name [ CFWS newgroup-flag ]
Newgroup-message = "newgroup" Newgroup-arguments
Rmgroup-arguments = CFWS newsgroup-name
Rmgroup-message = "rmgroup" Rmgroup-arguments
Sendme-arguments = Ihave-arguments
Sendme-message = "sendme" Sendme-arguments
Appendix B.3.3 - Other header rules
article-locator = 1*( %x21-27 / %x29-3A / %x3C-7E )
; US-ASCII printable characters
; except'(' and ';'
article-size = 1*DIGIT
back-reference = %x52.65.3A.20
; which is a case-sensitive "Re: "
batch = 1*( batch-header article )
batch-header = "#!" SP rnews SP article-size CRLF
checkgroups-body = *( valid-group CRLF )
chkscope = 1*( CFWS ["!"] newsgroup-name )
chksernr = CFWS "#" 1*DIGIT
combiner-ASCII = DIGIT / ALPHA / "+" / "-" / "_"
combiner-base = combiner-ASCII / combiner-extended
combiner-extended = <any character with a Unicode code value of
0080 or greater and a combining class of 0,
but excluding any character in Unicode
categories Cc, Cf, Cs, Zs, Zl, and Zp>
combiner-mark = <any character with a Unicode code value of
0080 or greater and a combining class other
than 0>
component = 1*component-glyph
component-glyph = combiner-base *combiner-mark
copy-addr = address-list
dist-delim = ","
distribution = [FWS] distribution-name [FWS]
distribution-name = ALPHA 1*distribution-rest
distribution-rest = ALPHA / "+" / "-" / "_"
groupinfo-body = [ newsgroups-tag CRLF ]
newsgroups-line CRLF
3 hex4 = 1*4HEXDIG
3 hexpart = hexseq / hexseq "::" [ hexseq ] /
"::" [ hexseq ]
3 hexseq = hex4 *( ":" hex4)
host-value = dot-atom /
[ dot-atom ":" ]
( IPv4address / IPv6address )
; see [RFC 2373]
2 id-left = dot-atom-text / no-fold-quote
2 id-right = dot-atom-text / no-fold-literal
ihave-body = *( msg-id CRLF )
3 IPv4address = 1*3DIGIT "." 1*3DIGIT "."
1*3DIGIT "." 1*3DIGIT
3 IPv6address = hexpart [ ":" IPv4address ]
location = newsgroup-name ":" article-locator
moderation-flag = %x28.4D.6F.64.65.72.61.74.65.64.29
; case sensitive "(Moderated)"
2 msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS]
newgroup-flag = "moderated"
newsgroup-description
= utext *( *WSP utext )
newsgroup-name = component *( "." component )
newsgroups-line = newsgroup-name
[ 1*HTAB newsgroup-description ]
[ 1*WSP moderation-flag ]
newsgroups-tag = %x46.6F.72 SP %x79.6F.75.72 SP
%x6E.65.77.73.67.72.6F.75.70.73 SP
%x66.69.6C.65.3A
; case sensitive
; "For your newsgroups file:"
ng-delim = ","
2* no-fold-literal = "[" *( dtext / "\[" / "\]" / "\\" ) "]"
2* no-fold-quote = DQUOTE
*( strict-qtext / "\\" / "\" DQUOTE )
qspecial
*( strict-qtext / "\\" / "\" DQUOTE )
DQUOTE
path-delimiter = "/" / "?" / "%" / "," / "!"
path-identity = ( ALPHA / DIGIT )
*( ALPHA / DIGIT / "-" / "." / ":" / "_" )
posting-account-parameter
= <a parameter with attribute "posting-account"
and any value>
posting-date-parameter
= <a parameter with attribute "posting-date"
and value some date-time>
posting-host-parameter
= <a parameter with attribute "posting-host"
and value some host-value>
posting-logging-parameter
= <a parameter with attribute "logging-data"
and any value>
posting-sender-parameter
= <a parameter with attribute "sender"
and value some sender-value>
product-token = value [ "/" product-version ]
product-version = value
pure-subject = unstructured
qspecial = "(" / ")" / ; same as specials except
"<" / ">" / ; "\" and DQUOTE quoted
"[" / "]" /
":" / ";" /
"@" / "\\" /
"," / "." /
"\" DQUOTE
relayer-name = path-identity
rnews = %x72.6E.65.77.73 ; case sensitive "rnews"
sender-value = mailbox / "verified"
sendme-body = ihave-body
server-name = path-identity
tail-entry = 1*( ALPHA / DIGIT / "-" / "." / ":" / "_" )
valid-group = newsgroups-line
Appendix C - Notices
Intellectual Property
The IETF takes no position regarding the validity or scope of any
intellectual property 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; neither does it represent that it
has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11. Copies of
claims of rights made available for publication 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 implementors or users of this specification can
be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive
Director.
Full Copyright Statement
Copyright (C) The Internet Society (2002). All Rights Reserved
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS 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.
[< Prev]
[TOC]
#Diff to first older