📄 rfc733.txt
字号:
RFC # 733NIC # 41952Obsoletes: RFC #561 (NIC #18516) RFC #680 (NIC #32116) RFC #724 (NIC #37435) STANDARD FOR THE FORMAT OF ARPA NETWORK TEXT MESSAGES(1) 21 November 1977 by David H. Crocker The Rand Corporation John J. Vittal Bolt Beranek and Newman Inc. Kenneth T. Pogran Massachusets Institute of Technology D. Austin Henderson, Jr.(2) Bolt Beranek and Newman Inc._________________________________________________________________(1)This work was supported by the Defense Advanced ResearchProjects Agency of the Department of Defense, under contract Nos.N00014-75-C-0661, MDA903-76-C-0212, and DAHC15-73-C0181.(2)The authors' postal addresses are: D. Crocker, The RandCorporation, Information Sciences Dept., 1700 Main St., SantaMonica, California 90406; J. Vittal & D. A. Henderson, BoltBeranek & Newman, 50 Moulton St., Cambridge, Massachusetts 02138;and K. Pogran, MIT Laboratory for Computer Science, 545Technology Square, Cambridge, Massachusetts 02139. The authors'ARPANET addresses are: DCrocker at Rand-Unix, Vittal at BBN-TenexD, Pogran at MIT-Multics, and Henderson at BBN-TenexD. -iii- PREFACE ARPA's Committee on Computer-Aided Human Communication(CAHCOM) wishes to promulgate a standard for the format of ARPANetwork text message (mail) headers which will reasonably meetthe needs of the various message service subsystems on theNetwork today. The authors of this document constitute theCAHCOM subcommittee charged with the task of developing this newstandard. Essentially, we specify a revision to ARPANET Request forComments (RFC) 561, "Standardizing Network Mail Headers", and RFC680, "Message Transmission Protocol". This revision removes andcompacts portions of the previous syntax and adds severalfeatures to network address specification. In particular, wefocus on people and not mailboxes as recipients and allowreference to stored address lists. We expect this syntax toprovide sufficient capabilities to meet most users' immediateneeds and, therefore, give developers enough breathing room toproduce a new mail transmission protocol "properly". We believethat there is enough of a consensus in the Network community infavor of such a standard syntax to make possible its adoption atthis time. An earlier draft of this specification was publishedas RFC #724, "Proposed Official Standard for the Format of ARPANetwork Messages" and contained extensive discussion of thebackground and issues in ARPANET mail standards. This specification was developed over the course of oneyear, using the ARPANET mail environment, itself, to provide anon-going forum for discussing the capabilities to be included.More than twenty individuals, from across the country,participated in this discussion and we would like to acknowledgetheir considerable efforts. The syntax of the standard wasoriginally specified in the Backus-Naur Form (BNF) meta-language.Ken L. Harrenstien, of SRI International, was responsible forre-coding the BNF into an augmented BNF which compacts thespecification and allows increased comprehensibility. -v- CONTENTSPREFACE..................................................... iiiSection I. INTRODUCTION......................................... 1 II. FRAMEWORK............................................ 2 III. SYNTAX............................................... 4 A. Notational Conventions............................ 4 B. Lexical Analysis of Messages...................... 5 C. General Syntax of Messages........................ 13 D. Syntax of General Addressee Items................. 15 E. Supporting Constructs............................. 15 IV. SEMANTICS............................................ 17 A. Address Fields.................................... 17 B. Reference Specification Fields.................... 22 C. Other Fields and Syntactic Items.................. 23 D. Dates and Times................................... 24 V. EXAMPLES............................................. 25 A. Addresses......................................... 25 B. Address Lists..................................... 26 C. Originator Items.................................. 26 D. Complete Headers.................................. 28Appendix A. ALPHABETICAL LISTING OF SYNTAX RULES................. 31 B. SIMPLE PARSING....................................... 35BIBLIOGRAPHY................................................ 37Standard for the Format of Text Messages 1I. Introduction I. INTRODUCTION This standard specifies a syntax for text messages which arepassed between computer users within the framework of "electronicmail". The standard supersedes the informal standards specifiedin ARPANET Request for Comments numbers 561, "StandardizingNetwork Mail Headers", and 680, "Message Transmission Protocol".In this document, a general framework is first described; theformal syntax is then specified, followed by a discussion of thesemantics. Finally, a number of examples are given. This specification is intended strictly as a definition ofwhat is to be passed between hosts on the ARPANET. It is NOTintended to dictate either features which systems on the Networkare expected to support, or user interfaces to message creatingor reading programs. A distinction should be made between what the specificationREQUIRES and what it ALLOWS. Messages can be made complex andrich with formally-structured components of information or can bekept small and simple, with a minimum of such information. Also,the standard simplifies the interpretation of differing visualformats in messages. These simplifications facilitate the formalspecification and indicate what the OFFICIAL semantics are formessages. Only the visual aspect of a message is affected andnot the interpretation of information within it. Implementorsmay choose to retain such visual distinctions.Standard for the Format of Text Messages 2II. Framework II. FRAMEWORK Since there are many message systems which exist outside theARPANET environment, as well as those within it, it may be usefulto consider the general framework, and resulting capabilities andlimitations, provided by this standard. Messages are expected to consist of lines of text. Nospecial provisions are made, at this time, for encoding drawings,facsimile, speech, or structured text. No significant consideration has been given to questions ofdata compression or transmission/storage efficiency. Thestandard, in fact, tends to be very free with the number of bitsconsumed. For example, field names are specified as free text,rather than special terse codes. A general "memo" framework is used. That is, a messageconsists of some information, in a rigid format, followed by themain part of the message, which is text and whose format is notspecified in this document. The syntax of several fields of therigidly-formated ("header") section is defined in thisspecification; some of the header fields must be included in allmessages. The syntax which distinguishes between headers isspecified separately from the internal syntax for particularheaders. This separation is intended to allow extremely simpleparsers to operate on the overall structure of messages, withoutconcern for the detailed structure of individual headers.Appendix B is provided to facilitate construction of these simpleparsers. In addition to the fields specified in this document,it is expected that other fields will gain common use. User-defined header fields allow systems to extend their functionalitywhile maintaining a uniform framework. The approach is similarto that of the TELNET protocol, in that a basic standard isdefined which includes a mechanism for (optionally) extendingitself. As necessary, the authors of this document will regulatethe publishing of specifications for these "extension-fields",through the same mechanisms used to publish this document. Such a framework severely constrains document tone andappearance and is primarily useful for most intra-organizationcommunications and relatively structured inter-organizationcommunication. A more robust environment might allow for multi-font, multi-color, multi-dimension encoding of information. Aless robust environment, as is present in most single-machinemessage systems, would more severely constrain the ability to addfields and the decision to include specific fields. In contrastto paper-based communication, it is interesting to note that theStandard for the Format of Text Messages 3II. FrameworkRECEIVER of a message can exercise an extraordinary amount ofcontrol over the message's appearance. The amount of actualcontrol available to message receivers is contingent upon thecapabilities of their individual message systems.Standard for the Format of Text Messages 4III. Syntax III. SYNTAX This syntax is given in five parts. The first partdescribes the notation used in the specification. The secondpart describes the base-level lexical analyzers which feed thehigher-level parser described in the succeeding sections. Thethird part gives a general syntax for messages and standardheader fields; and the fourth part specifies the syntax ofaddresses. A final part specifies some general syntax whichsupports the other sections.A. NOTATIONAL CONVENTIONSThese specifications are made in an augmented Backus-Naur Form(BNF). Differences from standard BNF involve the naming ofrules, the indication of repetition and of "local" alternatives.1. Rule namingAngle brackets ("<", ">") are not used, in general. The name ofa rule is simply the name itself, rather than "<name>".Quotation-marks enclose literal text (which may be upper and/orlower case). Certain basic rules are in uppercase, such asSPACE, TAB, CRLF, DIGIT, ALPHA, etc. Angle brackets are used inrule definitions, and in the rest of this document, whenevertheir presence will facilitate discerning the use of rule names.2. Parentheses: Local alternativesElements enclosed in parentheses are treated as a single element.Thus, "(elem (foo / bar) elem)" allows "(elem foo elem)" and"(elem bar elem)".3. * construct: RepetitionThe character "*" preceding an element indicates repetition. Thefull form is: <l>*<m>elementindicating at least <l> and at most <m> occurrences of element.Default values are 0 and infinity so that "*(element)" allows anynumber, including zero; "1*element" requires at least one; and"1*2element" allows one or two.Standard for the Format of Text Messages 5III. Syntax A. Notational Conventions4. <number>element"<n>(element)" is equivalent to "<n>*<n>(element)"; that is,exactly <n> occurrences of (element). Thus 2DIGIT is a 2-digitnumber, and 3ALPHA is a string of three alphabetic characters.5. # construct: ListsA construct "#" is defined, similar to "*", as follows: <l>#<m>elementindicating at least <l> and at most <m> elements, each separatedby one or more commas (","). This makes the usual form of listsvery easy; a rule such as '(element *("," element))' can be shownas "1#element". Wherever this construct is used, null elementsare allowed, but do not contribute to the count of elementspresent. That is, "(element),,(element)" is permitted, but
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -