|
|
1.1 root 1:
2:
3:
4:
5:
6:
7: RFC # 822
8:
9: Obsoletes: RFC #733 (NIC #41952)
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22: STANDARD FOR THE FORMAT OF
23:
24: ARPA INTERNET TEXT MESSAGES
25:
26:
27:
28:
29:
30:
31: August 13, 1982
32:
33:
34:
35:
36:
37:
38: Revised by
39:
40: David H. Crocker
41:
42:
43: Dept. of Electrical Engineering
44: University of Delaware, Newark, DE 19711
45: Network: DCrocker @ UDel-Relay
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61: Standard for ARPA Internet Text Messages
62:
63:
64: TABLE OF CONTENTS
65:
66:
67: PREFACE .................................................... ii
68:
69: 1. INTRODUCTION ........................................... 1
70:
71: 1.1. Scope ............................................ 1
72: 1.2. Communication Framework .......................... 2
73:
74: 2. NOTATIONAL CONVENTIONS ................................. 3
75:
76: 3. LEXICAL ANALYSIS OF MESSAGES ........................... 5
77:
78: 3.1. General Description .............................. 5
79: 3.2. Header Field Definitions ......................... 9
80: 3.3. Lexical Tokens ................................... 10
81: 3.4. Clarifications ................................... 11
82:
83: 4. MESSAGE SPECIFICATION .................................. 17
84:
85: 4.1. Syntax ........................................... 17
86: 4.2. Forwarding ....................................... 19
87: 4.3. Trace Fields ..................................... 20
88: 4.4. Originator Fields ................................ 21
89: 4.5. Receiver Fields .................................. 23
90: 4.6. Reference Fields ................................. 23
91: 4.7. Other Fields ..................................... 24
92:
93: 5. DATE AND TIME SPECIFICATION ............................ 26
94:
95: 5.1. Syntax ........................................... 26
96: 5.2. Semantics ........................................ 26
97:
98: 6. ADDRESS SPECIFICATION .................................. 27
99:
100: 6.1. Syntax ........................................... 27
101: 6.2. Semantics ........................................ 27
102: 6.3. Reserved Address ................................. 33
103:
104: 7. BIBLIOGRAPHY ........................................... 34
105:
106:
107: APPENDIX
108:
109: A. EXAMPLES ............................................... 36
110: B. SIMPLE FIELD PARSING ................................... 40
111: C. DIFFERENCES FROM RFC #733 .............................. 41
112: D. ALPHABETICAL LISTING OF SYNTAX RULES ................... 44
113:
114:
115: August 13, 1982 - i - RFC #822
116:
117:
118:
119:
120: Standard for ARPA Internet Text Messages
121:
122:
123: PREFACE
124:
125:
126: By 1977, the Arpanet employed several informal standards for
127: the text messages (mail) sent among its host computers. It was
128: felt necessary to codify these practices and provide for those
129: features that seemed imminent. The result of that effort was
130: Request for Comments (RFC) #733, "Standard for the Format of ARPA
131: Network Text Message", by Crocker, Vittal, Pogran, and Henderson.
132: The specification attempted to avoid major changes in existing
133: software, while permitting several new features.
134:
135: This document revises the specifications in RFC #733, in
136: order to serve the needs of the larger and more complex ARPA
137: Internet. Some of RFC #733's features failed to gain adequate
138: acceptance. In order to simplify the standard and the software
139: that follows it, these features have been removed. A different
140: addressing scheme is used, to handle the case of inter-network
141: mail; and the concept of re-transmission has been introduced.
142:
143: This specification is intended for use in the ARPA Internet.
144: However, an attempt has been made to free it of any dependence on
145: that environment, so that it can be applied to other network text
146: message systems.
147:
148: The specification of RFC #733 took place over the course of
149: one year, using the ARPANET mail environment, itself, to provide
150: an on-going forum for discussing the capabilities to be included.
151: More than twenty individuals, from across the country, partici-
152: pated in the original discussion. The development of this
153: revised specification has, similarly, utilized network mail-based
154: group discussion. Both specification efforts greatly benefited
155: from the comments and ideas of the participants.
156:
157: The syntax of the standard, in RFC #733, was originally
158: specified in the Backus-Naur Form (BNF) meta-language. Ken L.
159: Harrenstien, of SRI International, was responsible for re-coding
160: the BNF into an augmented BNF that makes the representation
161: smaller and easier to understand.
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174: August 13, 1982 - ii - RFC #822
175:
176:
177:
178: Standard for ARPA Internet Text Messages
179:
180:
181: 1. INTRODUCTION
182:
183: 1.1. SCOPE
184:
185: This standard specifies a syntax for text messages that are
186: sent among computer users, within the framework of "electronic
187: mail". The standard supersedes the one specified in ARPANET
188: Request for Comments #733, "Standard for the Format of ARPA Net-
189: work Text Messages".
190:
191: In this context, messages are viewed as having an envelope
192: and contents. The envelope contains whatever information is
193: needed to accomplish transmission and delivery. The contents
194: compose the object to be delivered to the recipient. This stan-
195: dard applies only to the format and some of the semantics of mes-
196: sage contents. It contains no specification of the information
197: in the envelope.
198:
199: However, some message systems may use information from the
200: contents to create the envelope. It is intended that this stan-
201: dard facilitate the acquisition of such information by programs.
202:
203: Some message systems may store messages in formats that
204: differ from the one specified in this standard. This specifica-
205: tion is intended strictly as a definition of what message content
206: format is to be passed BETWEEN hosts.
207:
208: Note: This standard is NOT intended to dictate the internal for-
209: mats used by sites, the specific message system features
210: that they are expected to support, or any of the charac-
211: teristics of user interface programs that create or read
212: messages.
213:
214: A distinction should be made between what the specification
215: REQUIRES and what it ALLOWS. Messages can be made complex and
216: rich with formally-structured components of information or can be
217: kept small and simple, with a minimum of such information. Also,
218: the standard simplifies the interpretation of differing visual
219: formats in messages; only the visual aspect of a message is
220: affected and not the interpretation of information within it.
221: Implementors may choose to retain such visual distinctions.
222:
223: The formal definition is divided into four levels. The bot-
224: tom level describes the meta-notation used in this document. The
225: second level describes basic lexical analyzers that feed tokens
226: to higher-level parsers. Next is an overall specification for
227: messages; it permits distinguishing individual fields. Finally,
228: there is definition of the contents of several structured fields.
229:
230:
231:
232: August 13, 1982 - 1 - RFC #822
233:
234:
235:
236: Standard for ARPA Internet Text Messages
237:
238:
239: 1.2. COMMUNICATION FRAMEWORK
240:
241: Messages consist of lines of text. No special provisions
242: are made for encoding drawings, facsimile, speech, or structured
243: text. No significant consideration has been given to questions
244: of data compression or to transmission and storage efficiency,
245: and the standard tends to be free with the number of bits con-
246: sumed. For example, field names are specified as free text,
247: rather than special terse codes.
248:
249: A general "memo" framework is used. That is, a message con-
250: sists of some information in a rigid format, followed by the main
251: part of the message, with a format that is not specified in this
252: document. The syntax of several fields of the rigidly-formated
253: ("headers") section is defined in this specification; some of
254: these fields must be included in all messages.
255:
256: The syntax that distinguishes between header fields is
257: specified separately from the internal syntax for particular
258: fields. This separation is intended to allow simple parsers to
259: operate on the general structure of messages, without concern for
260: the detailed structure of individual header fields. Appendix B
261: is provided to facilitate construction of these parsers.
262:
263: In addition to the fields specified in this document, it is
264: expected that other fields will gain common use. As necessary,
265: the specifications for these "extension-fields" will be published
266: through the same mechanism used to publish this document. Users
267: may also wish to extend the set of fields that they use
268: privately. Such "user-defined fields" are permitted.
269:
270: The framework severely constrains document tone and appear-
271: ance and is primarily useful for most intra-organization communi-
272: cations and well-structured inter-organization communication.
273: It also can be used for some types of inter-process communica-
274: tion, such as simple file transfer and remote job entry. A more
275: robust framework might allow for multi-font, multi-color, multi-
276: dimension encoding of information. A less robust one, as is
277: present in most single-machine message systems, would more
278: severely constrain the ability to add fields and the decision to
279: include specific fields. In contrast with paper-based communica-
280: tion, it is interesting to note that the RECEIVER of a message
281: can exercise an extraordinary amount of control over the
282: message's appearance. The amount of actual control available to
283: message receivers is contingent upon the capabilities of their
284: individual message systems.
285:
286:
287:
288:
289:
290: August 13, 1982 - 2 - RFC #822
291:
292:
293:
294: Standard for ARPA Internet Text Messages
295:
296:
297: 2. NOTATIONAL CONVENTIONS
298:
299: This specification uses an augmented Backus-Naur Form (BNF)
300: notation. The differences from standard BNF involve naming rules
301: and indicating repetition and "local" alternatives.
302:
303: 2.1. RULE NAMING
304:
305: Angle brackets ("<", ">") are not used, in general. The
306: name of a rule is simply the name itself, rather than "<name>".
307: Quotation-marks enclose literal text (which may be upper and/or
308: lower case). Certain basic rules are in uppercase, such as
309: SPACE, TAB, CRLF, DIGIT, ALPHA, etc. Angle brackets are used in
310: rule definitions, and in the rest of this document, whenever
311: their presence will facilitate discerning the use of rule names.
312:
313: 2.2. RULE1 / RULE2: ALTERNATIVES
314:
315: Elements separated by slash ("/") are alternatives. There-
316: fore "foo / bar" will accept foo or bar.
317:
318: 2.3. (RULE1 RULE2): LOCAL ALTERNATIVES
319:
320: Elements enclosed in parentheses are treated as a single
321: element. Thus, "(elem (foo / bar) elem)" allows the token
322: sequences "elem foo elem" and "elem bar elem".
323:
324: 2.4. *RULE: REPETITION
325:
326: The character "*" preceding an element indicates repetition.
327: The full form is:
328:
329: <l>*<m>element
330:
331: indicating at least <l> and at most <m> occurrences of element.
332: Default values are 0 and infinity so that "*(element)" allows any
333: number, including zero; "1*element" requires at least one; and
334: "1*2element" allows one or two.
335:
336: 2.5. [RULE]: OPTIONAL
337:
338: Square brackets enclose optional elements; "[foo bar]" is
339: equivalent to "*1(foo bar)".
340:
341: 2.6. NRULE: SPECIFIC REPETITION
342:
343: "<n>(element)" is equivalent to "<n>*<n>(element)"; that is,
344: exactly <n> occurrences of (element). Thus 2DIGIT is a 2-digit
345: number, and 3ALPHA is a string of three alphabetic characters.
346:
347:
348: August 13, 1982 - 3 - RFC #822
349:
350:
351:
352: Standard for ARPA Internet Text Messages
353:
354:
355: 2.7. #RULE: LISTS
356:
357: A construct "#" is defined, similar to "*", as follows:
358:
359: <l>#<m>element
360:
361: indicating at least <l> and at most <m> elements, each separated
362: by one or more commas (","). This makes the usual form of lists
363: very easy; a rule such as '(element *("," element))' can be shown
364: as "1#element". Wherever this construct is used, null elements
365: are allowed, but do not contribute to the count of elements
366: present. That is, "(element),,(element)" is permitted, but
367: counts as only two elements. Therefore, where at least one ele-
368: ment is required, at least one non-null element must be present.
369: Default values are 0 and infinity so that "#(element)" allows any
370: number, including zero; "1#element" requires at least one; and
371: "1#2element" allows one or two.
372:
373: 2.8. ; COMMENTS
374:
375: A semi-colon, set off some distance to the right of rule
376: text, starts a comment that continues to the end of line. This
377: is a simple way of including useful notes in parallel with the
378: specifications.
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406: August 13, 1982 - 4 - RFC #822
407:
408:
409:
410: Standard for ARPA Internet Text Messages
411:
412:
413: 3. LEXICAL ANALYSIS OF MESSAGES
414:
415: 3.1. GENERAL DESCRIPTION
416:
417: A message consists of header fields and, optionally, a body.
418: The body is simply a sequence of lines containing ASCII charac-
419: ters. It is separated from the headers by a null line (i.e., a
420: line with nothing preceding the CRLF).
421:
422: 3.1.1. LONG HEADER FIELDS
423:
424: Each header field can be viewed as a single, logical line of
425: ASCII characters, comprising a field-name and a field-body.
426: For convenience, the field-body portion of this conceptual
427: entity can be split into a multiple-line representation; this
428: is called "folding". The general rule is that wherever there
429: may be linear-white-space (NOT simply LWSP-chars), a CRLF
430: immediately followed by AT LEAST one LWSP-char may instead be
431: inserted. Thus, the single line
432:
433: To: "Joe & J. Harvey" <ddd @Org>, JJV @ BBN
434:
435: can be represented as:
436:
437: To: "Joe & J. Harvey" <ddd @ Org>,
438: JJV@BBN
439:
440: and
441:
442: To: "Joe & J. Harvey"
443: <ddd@ Org>, JJV
444: @BBN
445:
446: and
447:
448: To: "Joe &
449: J. Harvey" <ddd @ Org>, JJV @ BBN
450:
451: The process of moving from this folded multiple-line
452: representation of a header field to its single line represen-
453: tation is called "unfolding". Unfolding is accomplished by
454: regarding CRLF immediately followed by a LWSP-char as
455: equivalent to the LWSP-char.
456:
457: Note: While the standard permits folding wherever linear-
458: white-space is permitted, it is recommended that struc-
459: tured fields, such as those containing addresses, limit
460: folding to higher-level syntactic breaks. For address
461: fields, it is recommended that such folding occur
462:
463:
464: August 13, 1982 - 5 - RFC #822
465:
466:
467:
468: Standard for ARPA Internet Text Messages
469:
470:
471: between addresses, after the separating comma.
472:
473: 3.1.2. STRUCTURE OF HEADER FIELDS
474:
475: Once a field has been unfolded, it may be viewed as being com-
476: posed of a field-name followed by a colon (":"), followed by a
477: field-body, and terminated by a carriage-return/line-feed.
478: The field-name must be composed of printable ASCII characters
479: (i.e., characters that have values between 33. and 126.,
480: decimal, except colon). The field-body may be composed of any
481: ASCII characters, except CR or LF. (While CR and/or LF may be
482: present in the actual text, they are removed by the action of
483: unfolding the field.)
484:
485: Certain field-bodies of headers may be interpreted according
486: to an internal syntax that some systems may wish to parse.
487: These fields are called "structured fields". Examples
488: include fields containing dates and addresses. Other fields,
489: such as "Subject" and "Comments", are regarded simply as
490: strings of text.
491:
492: Note: Any field which has a field-body that is defined as
493: other than simply <text> is to be treated as a struc-
494: tured field.
495:
496: Field-names, unstructured field bodies and structured
497: field bodies each are scanned by their own, independent
498: "lexical" analyzers.
499:
500: 3.1.3. UNSTRUCTURED FIELD BODIES
501:
502: For some fields, such as "Subject" and "Comments", no struc-
503: turing is assumed, and they are treated simply as <text>s, as
504: in the message body. Rules of folding apply to these fields,
505: so that such field bodies which occupy several lines must
506: therefore have the second and successive lines indented by at
507: least one LWSP-char.
508:
509: 3.1.4. STRUCTURED FIELD BODIES
510:
511: To aid in the creation and reading of structured fields, the
512: free insertion of linear-white-space (which permits folding
513: by inclusion of CRLFs) is allowed between lexical tokens.
514: Rather than obscuring the syntax specifications for these
515: structured fields with explicit syntax for this linear-white-
516: space, the existence of another "lexical" analyzer is assumed.
517: This analyzer does not apply for unstructured field bodies
518: that are simply strings of text, as described above. The
519: analyzer provides an interpretation of the unfolded text
520:
521:
522: August 13, 1982 - 6 - RFC #822
523:
524:
525:
526: Standard for ARPA Internet Text Messages
527:
528:
529: composing the body of the field as a sequence of lexical sym-
530: bols.
531:
532: These symbols are:
533:
534: - individual special characters
535: - quoted-strings
536: - domain-literals
537: - comments
538: - atoms
539:
540: The first four of these symbols are self-delimiting. Atoms
541: are not; they are delimited by the self-delimiting symbols and
542: by linear-white-space. For the purposes of regenerating
543: sequences of atoms and quoted-strings, exactly one SPACE is
544: assumed to exist, and should be used, between them. (Also, in
545: the "Clarifications" section on "White Space", below, note the
546: rules about treatment of multiple contiguous LWSP-chars.)
547:
548: So, for example, the folded body of an address field
549:
550: ":sysmail"@ Some-Group. Some-Org,
551: Muhammed.(I am the greatest) Ali @(the)Vegas.WBA
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580: August 13, 1982 - 7 - RFC #822
581:
582:
583:
584: Standard for ARPA Internet Text Messages
585:
586:
587: is analyzed into the following lexical symbols and types:
588:
589: :sysmail quoted string
590: @ special
591: Some-Group atom
592: . special
593: Some-Org atom
594: , special
595: Muhammed atom
596: . special
597: (I am the greatest) comment
598: Ali atom
599: @ atom
600: (the) comment
601: Vegas atom
602: . special
603: WBA atom
604:
605: The canonical representations for the data in these addresses
606: are the following strings:
607:
608: ":sysmail"@Some-Group.Some-Org
609:
610: and
611:
612: [email protected]
613:
614: Note: For purposes of display, and when passing such struc-
615: tured information to other systems, such as mail proto-
616: col services, there must be NO linear-white-space
617: between <word>s that are separated by period (".") or
618: at-sign ("@") and exactly one SPACE between all other
619: <word>s. Also, headers should be in a folded form.
620:
621:
622:
623:
624:
625:
626:
627:
628:
629:
630:
631:
632:
633:
634:
635:
636:
637:
638: August 13, 1982 - 8 - RFC #822
639:
640:
641:
642: Standard for ARPA Internet Text Messages
643:
644:
645: 3.2. HEADER FIELD DEFINITIONS
646:
647: These rules show a field meta-syntax, without regard for the
648: particular type or internal syntax. Their purpose is to permit
649: detection of fields; also, they present to higher-level parsers
650: an image of each field as fitting on one line.
651:
652: field = field-name ":" [ field-body ] CRLF
653:
654: field-name = 1*<any CHAR, excluding CTLs, SPACE, and ":">
655:
656: field-body = field-body-contents
657: [CRLF LWSP-char field-body]
658:
659: field-body-contents =
660: <the ASCII characters making up the field-body, as
661: defined in the following sections, and consisting
662: of combinations of atom, quoted-string, and
663: specials tokens, or else consisting of texts>
664:
665:
666:
667:
668:
669:
670:
671:
672:
673:
674:
675:
676:
677:
678:
679:
680:
681:
682:
683:
684:
685:
686:
687:
688:
689:
690:
691:
692:
693:
694:
695:
696: August 13, 1982 - 9 - RFC #822
697:
698:
699:
700: Standard for ARPA Internet Text Messages
701:
702:
703: 3.3. LEXICAL TOKENS
704:
705: The following rules are used to define an underlying lexical
706: analyzer, which feeds tokens to higher level parsers. See the
707: ANSI references, in the Bibliography.
708:
709: ; ( Octal, Decimal.)
710: CHAR = <any ASCII character> ; ( 0-177, 0.-127.)
711: ALPHA = <any ASCII alphabetic character>
712: ; (101-132, 65.- 90.)
713: ; (141-172, 97.-122.)
714: DIGIT = <any ASCII decimal digit> ; ( 60- 71, 48.- 57.)
715: CTL = <any ASCII control ; ( 0- 37, 0.- 31.)
716: character and DEL> ; ( 177, 127.)
717: CR = <ASCII CR, carriage return> ; ( 15, 13.)
718: LF = <ASCII LF, linefeed> ; ( 12, 10.)
719: SPACE = <ASCII SP, space> ; ( 40, 32.)
720: HTAB = <ASCII HT, horizontal-tab> ; ( 11, 9.)
721: <"> = <ASCII quote mark> ; ( 42, 34.)
722: CRLF = CR LF
723:
724: LWSP-char = SPACE / HTAB ; semantics = SPACE
725:
726: linear-white-space = 1*([CRLF] LWSP-char) ; semantics = SPACE
727: ; CRLF => folding
728:
729: specials = "(" / ")" / "<" / ">" / "@" ; Must be in quoted-
730: / "," / ";" / ":" / "\" / <"> ; string, to use
731: / "." / "[" / "]" ; within a word.
732:
733: delimiters = specials / linear-white-space / comment
734:
735: text = <any CHAR, including bare ; => atoms, specials,
736: CR & bare LF, but NOT ; comments and
737: including CRLF> ; quoted-strings are
738: ; NOT recognized.
739:
740: atom = 1*<any CHAR except specials, SPACE and CTLs>
741:
742: quoted-string = <"> *(qtext/quoted-pair) <">; Regular qtext or
743: ; quoted chars.
744:
745: qtext = <any CHAR excepting <">, ; => may be folded
746: "\" & CR, and including
747: linear-white-space>
748:
749: domain-literal = "[" *(dtext / quoted-pair) "]"
750:
751:
752:
753:
754: August 13, 1982 - 10 - RFC #822
755:
756:
757:
758: Standard for ARPA Internet Text Messages
759:
760:
761: dtext = <any CHAR excluding "[", ; => may be folded
762: "]", "\" & CR, & including
763: linear-white-space>
764:
765: comment = "(" *(ctext / quoted-pair / comment) ")"
766:
767: ctext = <any CHAR excluding "(", ; => may be folded
768: ")", "\" & CR, & including
769: linear-white-space>
770:
771: quoted-pair = "\" CHAR ; may quote any char
772:
773: phrase = 1*word ; Sequence of words
774:
775: word = atom / quoted-string
776:
777:
778: 3.4. CLARIFICATIONS
779:
780: 3.4.1. QUOTING
781:
782: Some characters are reserved for special interpretation, such
783: as delimiting lexical tokens. To permit use of these charac-
784: ters as uninterpreted data, a quoting mechanism is provided.
785: To quote a character, precede it with a backslash ("\").
786:
787: This mechanism is not fully general. Characters may be quoted
788: only within a subset of the lexical constructs. In particu-
789: lar, quoting is limited to use within:
790:
791: - quoted-string
792: - domain-literal
793: - comment
794:
795: Within these constructs, quoting is REQUIRED for CR and "\"
796: and for the character(s) that delimit the token (e.g., "(" and
797: ")" for a comment). However, quoting is PERMITTED for any
798: character.
799:
800: Note: In particular, quoting is NOT permitted within atoms.
801: For example when the local-part of an addr-spec must
802: contain a special character, a quoted string must be
803: used. Therefore, a specification such as:
804:
805: Full\ Name@Domain
806:
807: is not legal and must be specified as:
808:
809: "Full Name"@Domain
810:
811:
812: August 13, 1982 - 11 - RFC #822
813:
814:
815:
816: Standard for ARPA Internet Text Messages
817:
818:
819: 3.4.2. WHITE SPACE
820:
821: Note: In structured field bodies, multiple linear space ASCII
822: characters (namely HTABs and SPACEs) are treated as
823: single spaces and may freely surround any symbol. In
824: all header fields, the only place in which at least one
825: LWSP-char is REQUIRED is at the beginning of continua-
826: tion lines in a folded field.
827:
828: When passing text to processes that do not interpret text
829: according to this standard (e.g., mail protocol servers), then
830: NO linear-white-space characters should occur between a period
831: (".") or at-sign ("@") and a <word>. Exactly ONE SPACE should
832: be used in place of arbitrary linear-white-space and comment
833: sequences.
834:
835: Note: Within systems conforming to this standard, wherever a
836: member of the list of delimiters is allowed, LWSP-chars
837: may also occur before and/or after it.
838:
839: Writers of mail-sending (i.e., header-generating) programs
840: should realize that there is no network-wide definition of the
841: effect of ASCII HT (horizontal-tab) characters on the appear-
842: ance of text at another network host; therefore, the use of
843: tabs in message headers, though permitted, is discouraged.
844:
845: 3.4.3. COMMENTS
846:
847: A comment is a set of ASCII characters, which is enclosed in
848: matching parentheses and which is not within a quoted-string
849: The comment construct permits message originators to add text
850: which will be useful for human readers, but which will be
851: ignored by the formal semantics. Comments should be retained
852: while the message is subject to interpretation according to
853: this standard. However, comments must NOT be included in
854: other cases, such as during protocol exchanges with mail
855: servers.
856:
857: Comments nest, so that if an unquoted left parenthesis occurs
858: in a comment string, there must also be a matching right
859: parenthesis. When a comment acts as the delimiter between a
860: sequence of two lexical symbols, such as two atoms, it is lex-
861: ically equivalent with a single SPACE, for the purposes of
862: regenerating the sequence, such as when passing the sequence
863: onto a mail protocol server. Comments are detected as such
864: only within field-bodies of structured fields.
865:
866: If a comment is to be "folded" onto multiple lines, then the
867: syntax for folding must be adhered to. (See the "Lexical
868:
869:
870: August 13, 1982 - 12 - RFC #822
871:
872:
873:
874: Standard for ARPA Internet Text Messages
875:
876:
877: Analysis of Messages" section on "Folding Long Header Fields"
878: above, and the section on "Case Independence" below.) Note
879: that the official semantics therefore do not "see" any
880: unquoted CRLFs that are in comments, although particular pars-
881: ing programs may wish to note their presence. For these pro-
882: grams, it would be reasonable to interpret a "CRLF LWSP-char"
883: as being a CRLF that is part of the comment; i.e., the CRLF is
884: kept and the LWSP-char is discarded. Quoted CRLFs (i.e., a
885: backslash followed by a CR followed by a LF) still must be
886: followed by at least one LWSP-char.
887:
888: 3.4.4. DELIMITING AND QUOTING CHARACTERS
889:
890: The quote character (backslash) and characters that delimit
891: syntactic units are not, generally, to be taken as data that
892: are part of the delimited or quoted unit(s). In particular,
893: the quotation-marks that define a quoted-string, the
894: parentheses that define a comment and the backslash that
895: quotes a following character are NOT part of the quoted-
896: string, comment or quoted character. A quotation-mark that is
897: to be part of a quoted-string, a parenthesis that is to be
898: part of a comment and a backslash that is to be part of either
899: must each be preceded by the quote-character backslash ("\").
900: Note that the syntax allows any character to be quoted within
901: a quoted-string or comment; however only certain characters
902: MUST be quoted to be included as data. These characters are
903: the ones that are not part of the alternate text group (i.e.,
904: ctext or qtext).
905:
906: The one exception to this rule is that a single SPACE is
907: assumed to exist between contiguous words in a phrase, and
908: this interpretation is independent of the actual number of
909: LWSP-chars that the creator places between the words. To
910: include more than one SPACE, the creator must make the LWSP-
911: chars be part of a quoted-string.
912:
913: Quotation marks that delimit a quoted string and backslashes
914: that quote the following character should NOT accompany the
915: quoted-string when the string is passed to processes that do
916: not interpret data according to this specification (e.g., mail
917: protocol servers).
918:
919: 3.4.5. QUOTED-STRINGS
920:
921: Where permitted (i.e., in words in structured fields) quoted-
922: strings are treated as a single symbol. That is, a quoted-
923: string is equivalent to an atom, syntactically. If a quoted-
924: string is to be "folded" onto multiple lines, then the syntax
925: for folding must be adhered to. (See the "Lexical Analysis of
926:
927:
928: August 13, 1982 - 13 - RFC #822
929:
930:
931:
932: Standard for ARPA Internet Text Messages
933:
934:
935: Messages" section on "Folding Long Header Fields" above, and
936: the section on "Case Independence" below.) Therefore, the
937: official semantics do not "see" any bare CRLFs that are in
938: quoted-strings; however particular parsing programs may wish
939: to note their presence. For such programs, it would be rea-
940: sonable to interpret a "CRLF LWSP-char" as being a CRLF which
941: is part of the quoted-string; i.e., the CRLF is kept and the
942: LWSP-char is discarded. Quoted CRLFs (i.e., a backslash fol-
943: lowed by a CR followed by a LF) are also subject to rules of
944: folding, but the presence of the quoting character (backslash)
945: explicitly indicates that the CRLF is data to the quoted
946: string. Stripping off the first following LWSP-char is also
947: appropriate when parsing quoted CRLFs.
948:
949: 3.4.6. BRACKETING CHARACTERS
950:
951: There is one type of bracket which must occur in matched pairs
952: and may have pairs nested within each other:
953:
954: o Parentheses ("(" and ")") are used to indicate com-
955: ments.
956:
957: There are three types of brackets which must occur in matched
958: pairs, and which may NOT be nested:
959:
960: o Colon/semi-colon (":" and ";") are used in address
961: specifications to indicate that the included list of
962: addresses are to be treated as a group.
963:
964: o Angle brackets ("<" and ">") are generally used to
965: indicate the presence of a one machine-usable refer-
966: ence (e.g., delimiting mailboxes), possibly including
967: source-routing to the machine.
968:
969: o Square brackets ("[" and "]") are used to indicate the
970: presence of a domain-literal, which the appropriate
971: name-domain is to use directly, bypassing normal
972: name-resolution mechanisms.
973:
974: 3.4.7. CASE INDEPENDENCE
975:
976: Except as noted, alphabetic strings may be represented in any
977: combination of upper and lower case. The only syntactic units
978:
979:
980:
981:
982:
983:
984:
985:
986: August 13, 1982 - 14 - RFC #822
987:
988:
989:
990: Standard for ARPA Internet Text Messages
991:
992:
993: which requires preservation of case information are:
994:
995: - text
996: - qtext
997: - dtext
998: - ctext
999: - quoted-pair
1000: - local-part, except "Postmaster"
1001:
1002: When matching any other syntactic unit, case is to be ignored.
1003: For example, the field-names "From", "FROM", "from", and even
1004: "FroM" are semantically equal and should all be treated ident-
1005: ically.
1006:
1007: When generating these units, any mix of upper and lower case
1008: alphabetic characters may be used. The case shown in this
1009: specification is suggested for message-creating processes.
1010:
1011: Note: The reserved local-part address unit, "Postmaster", is
1012: an exception. When the value "Postmaster" is being
1013: interpreted, it must be accepted in any mixture of
1014: case, including "POSTMASTER", and "postmaster".
1015:
1016: 3.4.8. FOLDING LONG HEADER FIELDS
1017:
1018: Each header field may be represented on exactly one line con-
1019: sisting of the name of the field and its body, and terminated
1020: by a CRLF; this is what the parser sees. For readability, the
1021: field-body portion of long header fields may be "folded" onto
1022: multiple lines of the actual field. "Long" is commonly inter-
1023: preted to mean greater than 65 or 72 characters. The former
1024: length serves as a limit, when the message is to be viewed on
1025: most simple terminals which use simple display software; how-
1026: ever, the limit is not imposed by this standard.
1027:
1028: Note: Some display software often can selectively fold lines,
1029: to suit the display terminal. In such cases, sender-
1030: provided folding can interfere with the display
1031: software.
1032:
1033: 3.4.9. BACKSPACE CHARACTERS
1034:
1035: ASCII BS characters (Backspace, decimal 8) may be included in
1036: texts and quoted-strings to effect overstriking. However, any
1037: use of backspaces which effects an overstrike to the left of
1038: the beginning of the text or quoted-string is prohibited.
1039:
1040:
1041:
1042:
1043:
1044: August 13, 1982 - 15 - RFC #822
1045:
1046:
1047:
1048: Standard for ARPA Internet Text Messages
1049:
1050:
1051: 3.4.10. NETWORK-SPECIFIC TRANSFORMATIONS
1052:
1053: During transmission through heterogeneous networks, it may be
1054: necessary to force data to conform to a network's local con-
1055: ventions. For example, it may be required that a CR be fol-
1056: lowed either by LF, making a CRLF, or by <null>, if the CR is
1057: to stand alone). Such transformations are reversed, when the
1058: message exits that network.
1059:
1060: When crossing network boundaries, the message should be
1061: treated as passing through two modules. It will enter the
1062: first module containing whatever network-specific transforma-
1063: tions that were necessary to permit migration through the
1064: "current" network. It then passes through the modules:
1065:
1066: o Transformation Reversal
1067:
1068: The "current" network's idiosyncracies are removed and
1069: the message is returned to the canonical form speci-
1070: fied in this standard.
1071:
1072: o Transformation
1073:
1074: The "next" network's local idiosyncracies are imposed
1075: on the message.
1076:
1077: ------------------
1078: From ==> | Remove Net-A |
1079: Net-A | idiosyncracies |
1080: ------------------
1081: ||
1082: \/
1083: Conformance
1084: with standard
1085: ||
1086: \/
1087: ------------------
1088: | Impose Net-B | ==> To
1089: | idiosyncracies | Net-B
1090: ------------------
1091:
1092:
1093:
1094:
1095:
1096:
1097:
1098:
1099:
1100:
1101:
1102: August 13, 1982 - 16 - RFC #822
1103:
1104:
1105:
1106: Standard for ARPA Internet Text Messages
1107:
1108:
1109: 4. MESSAGE SPECIFICATION
1110:
1111: 4.1. SYNTAX
1112:
1113: Note: Due to an artifact of the notational conventions, the syn-
1114: tax indicates that, when present, some fields, must be in
1115: a particular order. Header fields are NOT required to
1116: occur in any particular order, except that the message
1117: body must occur AFTER the headers. It is recommended
1118: that, if present, headers be sent in the order "Return-
1119: Path", "Received", "Date", "From", "Subject", "Sender",
1120: "To", "cc", etc.
1121:
1122: This specification permits multiple occurrences of most
1123: fields. Except as noted, their interpretation is not
1124: specified here, and their use is discouraged.
1125:
1126: The following syntax for the bodies of various fields should
1127: be thought of as describing each field body as a single long
1128: string (or line). The "Lexical Analysis of Message" section on
1129: "Long Header Fields", above, indicates how such long strings can
1130: be represented on more than one line in the actual transmitted
1131: message.
1132:
1133: message = fields *( CRLF *text ) ; Everything after
1134: ; first null line
1135: ; is message body
1136:
1137: fields = dates ; Creation time,
1138: source ; author id & one
1139: 1*destination ; address required
1140: *optional-field ; others optional
1141:
1142: source = [ trace ] ; net traversals
1143: originator ; original mail
1144: [ resent ] ; forwarded
1145:
1146: trace = return ; path to sender
1147: 1*received ; receipt tags
1148:
1149: return = "Return-path" ":" route-addr ; return address
1150:
1151: received = "Received" ":" ; one per relay
1152: ["from" domain] ; sending host
1153: ["by" domain] ; receiving host
1154: ["via" atom] ; physical path
1155: *("with" atom) ; link/mail protocol
1156: ["id" msg-id] ; receiver msg id
1157: ["for" addr-spec] ; initial form
1158:
1159:
1160: August 13, 1982 - 17 - RFC #822
1161:
1162:
1163:
1164: Standard for ARPA Internet Text Messages
1165:
1166:
1167: ";" date-time ; time received
1168:
1169: originator = authentic ; authenticated addr
1170: [ "Reply-To" ":" 1#address] )
1171:
1172: authentic = "From" ":" mailbox ; Single author
1173: / ( "Sender" ":" mailbox ; Actual submittor
1174: "From" ":" 1#mailbox) ; Multiple authors
1175: ; or not sender
1176:
1177: resent = resent-authentic
1178: [ "Resent-Reply-To" ":" 1#address] )
1179:
1180: resent-authentic =
1181: = "Resent-From" ":" mailbox
1182: / ( "Resent-Sender" ":" mailbox
1183: "Resent-From" ":" 1#mailbox )
1184:
1185: dates = orig-date ; Original
1186: [ resent-date ] ; Forwarded
1187:
1188: orig-date = "Date" ":" date-time
1189:
1190: resent-date = "Resent-Date" ":" date-time
1191:
1192: destination = "To" ":" 1#address ; Primary
1193: / "Resent-To" ":" 1#address
1194: / "cc" ":" 1#address ; Secondary
1195: / "Resent-cc" ":" 1#address
1196: / "bcc" ":" #address ; Blind carbon
1197: / "Resent-bcc" ":" #address
1198:
1199: optional-field =
1200: / "Message-ID" ":" msg-id
1201: / "Resent-Message-ID" ":" msg-id
1202: / "In-Reply-To" ":" *(phrase / msg-id)
1203: / "References" ":" *(phrase / msg-id)
1204: / "Keywords" ":" #phrase
1205: / "Subject" ":" *text
1206: / "Comments" ":" *text
1207: / "Encrypted" ":" 1#2word
1208: / extension-field ; To be defined
1209: / user-defined-field ; May be pre-empted
1210:
1211: msg-id = "<" addr-spec ">" ; Unique message id
1212:
1213:
1214:
1215:
1216:
1217:
1218: August 13, 1982 - 18 - RFC #822
1219:
1220:
1221:
1222: Standard for ARPA Internet Text Messages
1223:
1224:
1225: extension-field =
1226: <Any field which is defined in a document
1227: published as a formal extension to this
1228: specification; none will have names beginning
1229: with the string "X-">
1230:
1231: user-defined-field =
1232: <Any field which has not been defined
1233: in this specification or published as an
1234: extension to this specification; names for
1235: such fields must be unique and may be
1236: pre-empted by published extensions>
1237:
1238: 4.2. FORWARDING
1239:
1240: Some systems permit mail recipients to forward a message,
1241: retaining the original headers, by adding some new fields. This
1242: standard supports such a service, through the "Resent-" prefix to
1243: field names.
1244:
1245: Whenever the string "Resent-" begins a field name, the field
1246: has the same semantics as a field whose name does not have the
1247: prefix. However, the message is assumed to have been forwarded
1248: by an original recipient who attached the "Resent-" field. This
1249: new field is treated as being more recent than the equivalent,
1250: original field. For example, the "Resent-From", indicates the
1251: person that forwarded the message, whereas the "From" field indi-
1252: cates the original author.
1253:
1254: Use of such precedence information depends upon partici-
1255: pants' communication needs. For example, this standard does not
1256: dictate when a "Resent-From:" address should receive replies, in
1257: lieu of sending them to the "From:" address.
1258:
1259: Note: In general, the "Resent-" fields should be treated as con-
1260: taining a set of information that is independent of the
1261: set of original fields. Information for one set should
1262: not automatically be taken from the other. The interpre-
1263: tation of multiple "Resent-" fields, of the same type, is
1264: undefined.
1265:
1266: In the remainder of this specification, occurrence of legal
1267: "Resent-" fields are treated identically with the occurrence of
1268:
1269:
1270:
1271:
1272:
1273:
1274:
1275:
1276: August 13, 1982 - 19 - RFC #822
1277:
1278:
1279:
1280: Standard for ARPA Internet Text Messages
1281:
1282:
1283: fields whose names do not contain this prefix.
1284:
1285: 4.3. TRACE FIELDS
1286:
1287: Trace information is used to provide an audit trail of mes-
1288: sage handling. In addition, it indicates a route back to the
1289: sender of the message.
1290:
1291: The list of known "via" and "with" values are registered
1292: with the Network Information Center, SRI International, Menlo
1293: Park, California.
1294:
1295: 4.3.1. RETURN-PATH
1296:
1297: This field is added by the final transport system that
1298: delivers the message to its recipient. The field is intended
1299: to contain definitive information about the address and route
1300: back to the message's originator.
1301:
1302: Note: The "Reply-To" field is added by the originator and
1303: serves to direct replies, whereas the "Return-Path"
1304: field is used to identify a path back to the origina-
1305: tor.
1306:
1307: While the syntax indicates that a route specification is
1308: optional, every attempt should be made to provide that infor-
1309: mation in this field.
1310:
1311: 4.3.2. RECEIVED
1312:
1313: A copy of this field is added by each transport service that
1314: relays the message. The information in the field can be quite
1315: useful for tracing transport problems.
1316:
1317: The names of the sending and receiving hosts and time-of-
1318: receipt may be specified. The "via" parameter may be used, to
1319: indicate what physical mechanism the message was sent over,
1320: such as Arpanet or Phonenet, and the "with" parameter may be
1321: used to indicate the mail-, or connection-, level protocol
1322: that was used, such as the SMTP mail protocol, or X.25 tran-
1323: sport protocol.
1324:
1325: Note: Several "with" parameters may be included, to fully
1326: specify the set of protocols that were used.
1327:
1328: Some transport services queue mail; the internal message iden-
1329: tifier that is assigned to the message may be noted, using the
1330: "id" parameter. When the sending host uses a destination
1331: address specification that the receiving host reinterprets, by
1332:
1333:
1334: August 13, 1982 - 20 - RFC #822
1335:
1336:
1337:
1338: Standard for ARPA Internet Text Messages
1339:
1340:
1341: expansion or transformation, the receiving host may wish to
1342: record the original specification, using the "for" parameter.
1343: For example, when a copy of mail is sent to the member of a
1344: distribution list, this parameter may be used to record the
1345: original address that was used to specify the list.
1346:
1347: 4.4. ORIGINATOR FIELDS
1348:
1349: The standard allows only a subset of the combinations possi-
1350: ble with the From, Sender, Reply-To, Resent-From, Resent-Sender,
1351: and Resent-Reply-To fields. The limitation is intentional.
1352:
1353: 4.4.1. FROM / RESENT-FROM
1354:
1355: This field contains the identity of the person(s) who wished
1356: this message to be sent. The message-creation process should
1357: default this field to be a single, authenticated machine
1358: address, indicating the AGENT (person, system or process)
1359: entering the message. If this is not done, the "Sender" field
1360: MUST be present. If the "From" field IS defaulted this way,
1361: the "Sender" field is optional and is redundant with the
1362: "From" field. In all cases, addresses in the "From" field
1363: must be machine-usable (addr-specs) and may not contain named
1364: lists (groups).
1365:
1366: 4.4.2. SENDER / RESENT-SENDER
1367:
1368: This field contains the authenticated identity of the AGENT
1369: (person, system or process) that sends the message. It is
1370: intended for use when the sender is not the author of the mes-
1371: sage, or to indicate who among a group of authors actually
1372: sent the message. If the contents of the "Sender" field would
1373: be completely redundant with the "From" field, then the
1374: "Sender" field need not be present and its use is discouraged
1375: (though still legal). In particular, the "Sender" field MUST
1376: be present if it is NOT the same as the "From" Field.
1377:
1378: The Sender mailbox specification includes a word sequence
1379: which must correspond to a specific agent (i.e., a human user
1380: or a computer program) rather than a standard address. This
1381: indicates the expectation that the field will identify the
1382: single AGENT (person, system, or process) responsible for
1383: sending the mail and not simply include the name of a mailbox
1384: from which the mail was sent. For example in the case of a
1385: shared login name, the name, by itself, would not be adequate.
1386: The local-part address unit, which refers to this agent, is
1387: expected to be a computer system term, and not (for example) a
1388: generalized person reference which can be used outside the
1389: network text message context.
1390:
1391:
1392: August 13, 1982 - 21 - RFC #822
1393:
1394:
1395:
1396: Standard for ARPA Internet Text Messages
1397:
1398:
1399: Since the critical function served by the "Sender" field is
1400: identification of the agent responsible for sending mail and
1401: since computer programs cannot be held accountable for their
1402: behavior, it is strongly recommended that when a computer pro-
1403: gram generates a message, the HUMAN who is responsible for
1404: that program be referenced as part of the "Sender" field mail-
1405: box specification.
1406:
1407: 4.4.3. REPLY-TO / RESENT-REPLY-TO
1408:
1409: This field provides a general mechanism for indicating any
1410: mailbox(es) to which responses are to be sent. Three typical
1411: uses for this feature can be distinguished. In the first
1412: case, the author(s) may not have regular machine-based mail-
1413: boxes and therefore wish(es) to indicate an alternate machine
1414: address. In the second case, an author may wish additional
1415: persons to be made aware of, or responsible for, replies. A
1416: somewhat different use may be of some help to "text message
1417: teleconferencing" groups equipped with automatic distribution
1418: services: include the address of that service in the "Reply-
1419: To" field of all messages submitted to the teleconference;
1420: then participants can "reply" to conference submissions to
1421: guarantee the correct distribution of any submission of their
1422: own.
1423:
1424: Note: The "Return-Path" field is added by the mail transport
1425: service, at the time of final deliver. It is intended
1426: to identify a path back to the orginator of the mes-
1427: sage. The "Reply-To" field is added by the message
1428: originator and is intended to direct replies.
1429:
1430: 4.4.4. AUTOMATIC USE OF FROM / SENDER / REPLY-TO
1431:
1432: For systems which automatically generate address lists for
1433: replies to messages, the following recommendations are made:
1434:
1435: o The "Sender" field mailbox should be sent notices of
1436: any problems in transport or delivery of the original
1437: messages. If there is no "Sender" field, then the
1438: "From" field mailbox should be used.
1439:
1440: o The "Sender" field mailbox should NEVER be used
1441: automatically, in a recipient's reply message.
1442:
1443: o If the "Reply-To" field exists, then the reply should
1444: go to the addresses indicated in that field and not to
1445: the address(es) indicated in the "From" field.
1446:
1447:
1448:
1449:
1450: August 13, 1982 - 22 - RFC #822
1451:
1452:
1453:
1454: Standard for ARPA Internet Text Messages
1455:
1456:
1457: o If there is a "From" field, but no "Reply-To" field,
1458: the reply should be sent to the address(es) indicated
1459: in the "From" field.
1460:
1461: Sometimes, a recipient may actually wish to communicate with
1462: the person that initiated the message transfer. In such
1463: cases, it is reasonable to use the "Sender" address.
1464:
1465: This recommendation is intended only for automated use of
1466: originator-fields and is not intended to suggest that replies
1467: may not also be sent to other recipients of messages. It is
1468: up to the respective mail-handling programs to decide what
1469: additional facilities will be provided.
1470:
1471: Examples are provided in Appendix A.
1472:
1473: 4.5. RECEIVER FIELDS
1474:
1475: 4.5.1. TO / RESENT-TO
1476:
1477: This field contains the identity of the primary recipients of
1478: the message.
1479:
1480: 4.5.2. CC / RESENT-CC
1481:
1482: This field contains the identity of the secondary (informa-
1483: tional) recipients of the message.
1484:
1485: 4.5.3. BCC / RESENT-BCC
1486:
1487: This field contains the identity of additional recipients of
1488: the message. The contents of this field are not included in
1489: copies of the message sent to the primary and secondary reci-
1490: pients. Some systems may choose to include the text of the
1491: "Bcc" field only in the author(s)'s copy, while others may
1492: also include it in the text sent to all those indicated in the
1493: "Bcc" list.
1494:
1495: 4.6. REFERENCE FIELDS
1496:
1497: 4.6.1. MESSAGE-ID / RESENT-MESSAGE-ID
1498:
1499: This field contains a unique identifier (the local-part
1500: address unit) which refers to THIS version of THIS message.
1501: The uniqueness of the message identifier is guaranteed by the
1502: host which generates it. This identifier is intended to be
1503: machine readable and not necessarily meaningful to humans. A
1504: message identifier pertains to exactly one instantiation of a
1505: particular message; subsequent revisions to the message should
1506:
1507:
1508: August 13, 1982 - 23 - RFC #822
1509:
1510:
1511:
1512: Standard for ARPA Internet Text Messages
1513:
1514:
1515: each receive new message identifiers.
1516:
1517: 4.6.2. IN-REPLY-TO
1518:
1519: The contents of this field identify previous correspon-
1520: dence which this message answers. Note that if message iden-
1521: tifiers are used in this field, they must use the msg-id
1522: specification format.
1523:
1524: 4.6.3. REFERENCES
1525:
1526: The contents of this field identify other correspondence
1527: which this message references. Note that if message identif-
1528: iers are used, they must use the msg-id specification format.
1529:
1530: 4.6.4. KEYWORDS
1531:
1532: This field contains keywords or phrases, separated by
1533: commas.
1534:
1535: 4.7. OTHER FIELDS
1536:
1537: 4.7.1. SUBJECT
1538:
1539: This is intended to provide a summary, or indicate the
1540: nature, of the message.
1541:
1542: 4.7.2. COMMENTS
1543:
1544: Permits adding text comments onto the message without
1545: disturbing the contents of the message's body.
1546:
1547: 4.7.3. ENCRYPTED
1548:
1549: Sometimes, data encryption is used to increase the
1550: privacy of message contents. If the body of a message has
1551: been encrypted, to keep its contents private, the "Encrypted"
1552: field can be used to note the fact and to indicate the nature
1553: of the encryption. The first <word> parameter indicates the
1554: software used to encrypt the body, and the second, optional
1555: <word> is intended to aid the recipient in selecting the
1556: proper decryption key. This code word may be viewed as an
1557: index to a table of keys held by the recipient.
1558:
1559: Note: Unfortunately, headers must contain envelope, as well
1560: as contents, information. Consequently, it is neces-
1561: sary that they remain unencrypted, so that mail tran-
1562: sport services may access them. Since names,
1563: addresses, and "Subject" field contents may contain
1564:
1565:
1566: August 13, 1982 - 24 - RFC #822
1567:
1568:
1569:
1570: Standard for ARPA Internet Text Messages
1571:
1572:
1573: sensitive information, this requirement limits total
1574: message privacy.
1575:
1576: Names of encryption software are registered with the Net-
1577: work Information Center, SRI International, Menlo Park, Cali-
1578: fornia.
1579:
1580: 4.7.4. EXTENSION-FIELD
1581:
1582: A limited number of common fields have been defined in
1583: this document. As network mail requirements dictate, addi-
1584: tional fields may be standardized. To provide user-defined
1585: fields with a measure of safety, in name selection, such
1586: extension-fields will never have names that begin with the
1587: string "X-".
1588:
1589: Names of Extension-fields are registered with the Network
1590: Information Center, SRI International, Menlo Park, California.
1591:
1592: 4.7.5. USER-DEFINED-FIELD
1593:
1594: Individual users of network mail are free to define and
1595: use additional header fields. Such fields must have names
1596: which are not already used in the current specification or in
1597: any definitions of extension-fields, and the overall syntax of
1598: these user-defined-fields must conform to this specification's
1599: rules for delimiting and folding fields. Due to the
1600: extension-field publishing process, the name of a user-
1601: defined-field may be pre-empted
1602:
1603: Note: The prefatory string "X-" will never be used in the
1604: names of Extension-fields. This provides user-defined
1605: fields with a protected set of names.
1606:
1607:
1608:
1609:
1610:
1611:
1612:
1613:
1614:
1615:
1616:
1617:
1618:
1619:
1620:
1621:
1622:
1623:
1624: August 13, 1982 - 25 - RFC #822
1625:
1626:
1627:
1628: Standard for ARPA Internet Text Messages
1629:
1630:
1631: 5. DATE AND TIME SPECIFICATION
1632:
1633: 5.1. SYNTAX
1634:
1635: date-time = [ day "," ] date time ; dd mm yy
1636: ; hh:mm:ss zzz
1637:
1638: day = "Mon" / "Tue" / "Wed" / "Thu"
1639: / "Fri" / "Sat" / "Sun"
1640:
1641: date = 1*2DIGIT month 2DIGIT ; day month year
1642: ; e.g. 20 Jun 82
1643:
1644: month = "Jan" / "Feb" / "Mar" / "Apr"
1645: / "May" / "Jun" / "Jul" / "Aug"
1646: / "Sep" / "Oct" / "Nov" / "Dec"
1647:
1648: time = hour zone ; ANSI and Military
1649:
1650: hour = 2DIGIT ":" 2DIGIT [":" 2DIGIT]
1651: ; 00:00:00 - 23:59:59
1652:
1653: zone = "UT" / "GMT" ; Universal Time
1654: ; North American : UT
1655: / "EST" / "EDT" ; Eastern: - 5/ - 4
1656: / "CST" / "CDT" ; Central: - 6/ - 5
1657: / "MST" / "MDT" ; Mountain: - 7/ - 6
1658: / "PST" / "PDT" ; Pacific: - 8/ - 7
1659: / 1ALPHA ; Military: Z = UT;
1660: ; A:-1; (J not used)
1661: ; M:-12; N:+1; Y:+12
1662: / ( ("+" / "-") 4DIGIT ) ; Local differential
1663: ; hours+min. (HHMM)
1664:
1665: 5.2. SEMANTICS
1666:
1667: If included, day-of-week must be the day implied by the date
1668: specification.
1669:
1670: Time zone may be indicated in several ways. "UT" is Univer-
1671: sal Time (formerly called "Greenwich Mean Time"); "GMT" is per-
1672: mitted as a reference to Universal Time. The military standard
1673: uses a single character for each zone. "Z" is Universal Time.
1674: "A" indicates one hour earlier, and "M" indicates 12 hours ear-
1675: lier; "N" is one hour later, and "Y" is 12 hours later. The
1676: letter "J" is not used. The other remaining two forms are taken
1677: from ANSI standard X3.51-1975. One allows explicit indication of
1678: the amount of offset from UT; the other uses common 3-character
1679: strings for indicating time zones in North America.
1680:
1681:
1682: August 13, 1982 - 26 - RFC #822
1683:
1684:
1685:
1686: Standard for ARPA Internet Text Messages
1687:
1688:
1689: 6. ADDRESS SPECIFICATION
1690:
1691: 6.1. SYNTAX
1692:
1693: address = mailbox ; one addressee
1694: / group ; named list
1695:
1696: group = phrase ":" [#mailbox] ";"
1697:
1698: mailbox = addr-spec ; simple address
1699: / phrase route-addr ; name & addr-spec
1700:
1701: route-addr = "<" [route] addr-spec ">"
1702:
1703: route = 1#("@" domain) ":" ; path-relative
1704:
1705: addr-spec = local-part "@" domain ; global address
1706:
1707: local-part = word *("." word) ; uninterpreted
1708: ; case-preserved
1709:
1710: domain = sub-domain *("." sub-domain)
1711:
1712: sub-domain = domain-ref / domain-literal
1713:
1714: domain-ref = atom ; symbolic reference
1715:
1716: 6.2. SEMANTICS
1717:
1718: A mailbox receives mail. It is a conceptual entity which
1719: does not necessarily pertain to file storage. For example, some
1720: sites may choose to print mail on their line printer and deliver
1721: the output to the addressee's desk.
1722:
1723: A mailbox specification comprises a person, system or pro-
1724: cess name reference, a domain-dependent string, and a name-domain
1725: reference. The name reference is optional and is usually used to
1726: indicate the human name of a recipient. The name-domain refer-
1727: ence specifies a sequence of sub-domains. The domain-dependent
1728: string is uninterpreted, except by the final sub-domain; the rest
1729: of the mail service merely transmits it as a literal string.
1730:
1731: 6.2.1. DOMAINS
1732:
1733: A name-domain is a set of registered (mail) names. A name-
1734: domain specification resolves to a subordinate name-domain
1735: specification or to a terminal domain-dependent string.
1736: Hence, domain specification is extensible, permitting any
1737: number of registration levels.
1738:
1739:
1740: August 13, 1982 - 27 - RFC #822
1741:
1742:
1743:
1744: Standard for ARPA Internet Text Messages
1745:
1746:
1747: Name-domains model a global, logical, hierarchical addressing
1748: scheme. The model is logical, in that an address specifica-
1749: tion is related to name registration and is not necessarily
1750: tied to transmission path. The model's hierarchy is a
1751: directed graph, called an in-tree, such that there is a single
1752: path from the root of the tree to any node in the hierarchy.
1753: If more than one path actually exists, they are considered to
1754: be different addresses.
1755:
1756: The root node is common to all addresses; consequently, it is
1757: not referenced. Its children constitute "top-level" name-
1758: domains. Usually, a service has access to its own full domain
1759: specification and to the names of all top-level name-domains.
1760:
1761: The "top" of the domain addressing hierarchy -- a child of the
1762: root -- is indicated by the right-most field, in a domain
1763: specification. Its child is specified to the left, its child
1764: to the left, and so on.
1765:
1766: Some groups provide formal registration services; these con-
1767: stitute name-domains that are independent logically of
1768: specific machines. In addition, networks and machines impli-
1769: citly compose name-domains, since their membership usually is
1770: registered in name tables.
1771:
1772: In the case of formal registration, an organization implements
1773: a (distributed) data base which provides an address-to-route
1774: mapping service for addresses of the form:
1775:
1776: [email protected]
1777:
1778: Note that "organization" is a logical entity, separate from
1779: any particular communication network.
1780:
1781: A mechanism for accessing "organization" is universally avail-
1782: able. That mechanism, in turn, seeks an instantiation of the
1783: registry; its location is not indicated in the address specif-
1784: ication. It is assumed that the system which operates under
1785: the name "organization" knows how to find a subordinate regis-
1786: try. The registry will then use the "person" string to deter-
1787: mine where to send the mail specification.
1788:
1789: The latter, network-oriented case permits simple, direct,
1790: attachment-related address specification, such as:
1791:
1792: [email protected]
1793:
1794: Once the network is accessed, it is expected that a message
1795: will go directly to the host and that the host will resolve
1796:
1797:
1798: August 13, 1982 - 28 - RFC #822
1799:
1800:
1801:
1802: Standard for ARPA Internet Text Messages
1803:
1804:
1805: the user name, placing the message in the user's mailbox.
1806:
1807: 6.2.2. ABBREVIATED DOMAIN SPECIFICATION
1808:
1809: Since any number of levels is possible within the domain
1810: hierarchy, specification of a fully qualified address can
1811: become inconvenient. This standard permits abbreviated domain
1812: specification, in a special case:
1813:
1814: For the address of the sender, call the left-most
1815: sub-domain Level N. In a header address, if all of
1816: the sub-domains above (i.e., to the right of) Level N
1817: are the same as those of the sender, then they do not
1818: have to appear in the specification. Otherwise, the
1819: address must be fully qualified.
1820:
1821: This feature is subject to approval by local sub-
1822: domains. Individual sub-domains may require their
1823: member systems, which originate mail, to provide full
1824: domain specification only. When permitted, abbrevia-
1825: tions may be present only while the message stays
1826: within the sub-domain of the sender.
1827:
1828: Use of this mechanism requires the sender's sub-domain
1829: to reserve the names of all top-level domains, so that
1830: full specifications can be distinguished from abbrevi-
1831: ated specifications.
1832:
1833: For example, if a sender's address is:
1834:
1835: [email protected]
1836:
1837: and one recipient's address is:
1838:
1839: [email protected]
1840:
1841: and another's is:
1842:
1843: [email protected]
1844:
1845: then ".registry-1.organization-X" need not be specified in the
1846: the message, but "registry-C.registry-2" DOES have to be
1847: specified. That is, the first two addresses may be abbrevi-
1848: ated, but the third address must be fully specified.
1849:
1850: When a message crosses a domain boundary, all addresses must
1851: be specified in the full format, ending with the top-level
1852: name-domain in the right-most field. It is the responsibility
1853: of mail forwarding services to ensure that addresses conform
1854:
1855:
1856: August 13, 1982 - 29 - RFC #822
1857:
1858:
1859:
1860: Standard for ARPA Internet Text Messages
1861:
1862:
1863: with this requirement. In the case of abbreviated addresses,
1864: the relaying service must make the necessary expansions. It
1865: should be noted that it often is difficult for such a service
1866: to locate all occurrences of address abbreviations. For exam-
1867: ple, it will not be possible to find such abbreviations within
1868: the body of the message. The "Return-Path" field can aid
1869: recipients in recovering from these errors.
1870:
1871: Note: When passing any portion of an addr-spec onto a process
1872: which does not interpret data according to this stan-
1873: dard (e.g., mail protocol servers). There must be NO
1874: LWSP-chars preceding or following the at-sign or any
1875: delimiting period ("."), such as shown in the above
1876: examples, and only ONE SPACE between contiguous
1877: <word>s.
1878:
1879: 6.2.3. DOMAIN TERMS
1880:
1881: A domain-ref must be THE official name of a registry, network,
1882: or host. It is a symbolic reference, within a name sub-
1883: domain. At times, it is necessary to bypass standard mechan-
1884: isms for resolving such references, using more primitive
1885: information, such as a network host address rather than its
1886: associated host name.
1887:
1888: To permit such references, this standard provides the domain-
1889: literal construct. Its contents must conform with the needs
1890: of the sub-domain in which it is interpreted.
1891:
1892: Domain-literals which refer to domains within the ARPA Inter-
1893: net specify 32-bit Internet addresses, in four 8-bit fields
1894: noted in decimal, as described in Request for Comments #820,
1895: "Assigned Numbers." For example:
1896:
1897: [10.0.3.19]
1898:
1899: Note: THE USE OF DOMAIN-LITERALS IS STRONGLY DISCOURAGED. It
1900: is permitted only as a means of bypassing temporary
1901: system limitations, such as name tables which are not
1902: complete.
1903:
1904: The names of "top-level" domains, and the names of domains
1905: under in the ARPA Internet, are registered with the Network
1906: Information Center, SRI International, Menlo Park, California.
1907:
1908: 6.2.4. DOMAIN-DEPENDENT LOCAL STRING
1909:
1910: The local-part of an addr-spec in a mailbox specification
1911: (i.e., the host's name for the mailbox) is understood to be
1912:
1913:
1914: August 13, 1982 - 30 - RFC #822
1915:
1916:
1917:
1918: Standard for ARPA Internet Text Messages
1919:
1920:
1921: whatever the receiving mail protocol server allows. For exam-
1922: ple, some systems do not understand mailbox references of the
1923: form "P. D. Q. Bach", but others do.
1924:
1925: This specification treats periods (".") as lexical separators.
1926: Hence, their presence in local-parts which are not quoted-
1927: strings, is detected. However, such occurrences carry NO
1928: semantics. That is, if a local-part has periods within it, an
1929: address parser will divide the local-part into several tokens,
1930: but the sequence of tokens will be treated as one uninter-
1931: preted unit. The sequence will be re-assembled, when the
1932: address is passed outside of the system such as to a mail pro-
1933: tocol service.
1934:
1935: For example, the address:
1936:
1937: [email protected]
1938:
1939: is legal and does not require the local-part to be surrounded
1940: with quotation-marks. (However, "First Last" DOES require
1941: quoting.) The local-part of the address, when passed outside
1942: of the mail system, within the Registry.Org domain, is
1943: "First.Last", again without quotation marks.
1944:
1945: 6.2.5. BALANCING LOCAL-PART AND DOMAIN
1946:
1947: In some cases, the boundary between local-part and domain can
1948: be flexible. The local-part may be a simple string, which is
1949: used for the final determination of the recipient's mailbox.
1950: All other levels of reference are, therefore, part of the
1951: domain.
1952:
1953: For some systems, in the case of abbreviated reference to the
1954: local and subordinate sub-domains, it may be possible to
1955: specify only one reference within the domain part and place
1956: the other, subordinate name-domain references within the
1957: local-part. This would appear as:
1958:
1959: mailbox.sub1.sub2@this-domain
1960:
1961: Such a specification would be acceptable to address parsers
1962: which conform to RFC #733, but do not support this newer
1963: Internet standard. While contrary to the intent of this stan-
1964: dard, the form is legal.
1965:
1966: Also, some sub-domains have a specification syntax which does
1967: not conform to this standard. For example:
1968:
1969: [email protected]
1970:
1971:
1972: August 13, 1982 - 31 - RFC #822
1973:
1974:
1975:
1976: Standard for ARPA Internet Text Messages
1977:
1978:
1979: uses a different parsing sequence for local-part than for
1980: domain.
1981:
1982: Note: As a rule, the domain specification should contain
1983: fields which are encoded according to the syntax of
1984: this standard and which contain generally-standardized
1985: information. The local-part specification should con-
1986: tain only that portion of the address which deviates
1987: from the form or intention of the domain field.
1988:
1989: 6.2.6. MULTIPLE MAILBOXES
1990:
1991: An individual may have several mailboxes and wish to receive
1992: mail at whatever mailbox is convenient for the sender to
1993: access. This standard does not provide a means of specifying
1994: "any member of" a list of mailboxes.
1995:
1996: A set of individuals may wish to receive mail as a single unit
1997: (i.e., a distribution list). The <group> construct permits
1998: specification of such a list. Recipient mailboxes are speci-
1999: fied within the bracketed part (":" - ";"). A copy of the
2000: transmitted message is to be sent to each mailbox listed.
2001: This standard does not permit recursive specification of
2002: groups within groups.
2003:
2004: While a list must be named, it is not required that the con-
2005: tents of the list be included. In this case, the <address>
2006: serves only as an indication of group distribution and would
2007: appear in the form:
2008:
2009: name:;
2010:
2011: Some mail services may provide a group-list distribution
2012: facility, accepting a single mailbox reference, expanding it
2013: to the full distribution list, and relaying the mail to the
2014: list's members. This standard provides no additional syntax
2015: for indicating such a service. Using the <group> address
2016: alternative, while listing one mailbox in it, can mean either
2017: that the mailbox reference will be expanded to a list or that
2018: there is a group with one member.
2019:
2020: 6.2.7. EXPLICIT PATH SPECIFICATION
2021:
2022: At times, a message originator may wish to indicate the
2023: transmission path that a message should follow. This is
2024: called source routing. The normal addressing scheme, used in
2025: an addr-spec, is carefully separated from such information;
2026: the <route> portion of a route-addr is provided for such occa-
2027: sions. It specifies the sequence of hosts and/or transmission
2028:
2029:
2030: August 13, 1982 - 32 - RFC #822
2031:
2032:
2033:
2034: Standard for ARPA Internet Text Messages
2035:
2036:
2037: services that are to be traversed. Both domain-refs and
2038: domain-literals may be used.
2039:
2040: Note: The use of source routing is discouraged. Unless the
2041: sender has special need of path restriction, the choice
2042: of transmission route should be left to the mail tran-
2043: sport service.
2044:
2045: 6.3. RESERVED ADDRESS
2046:
2047: It often is necessary to send mail to a site, without know-
2048: ing any of its valid addresses. For example, there may be mail
2049: system dysfunctions, or a user may wish to find out a person's
2050: correct address, at that site.
2051:
2052: This standard specifies a single, reserved mailbox address
2053: (local-part) which is to be valid at each site. Mail sent to
2054: that address is to be routed to a person responsible for the
2055: site's mail system or to a person with responsibility for general
2056: site operation. The name of the reserved local-part address is:
2057:
2058: Postmaster
2059:
2060: so that "Postmaster@domain" is required to be valid.
2061:
2062: Note: This reserved local-part must be matched without sensi-
2063: tivity to alphabetic case, so that "POSTMASTER", "postmas-
2064: ter", and even "poStmASteR" is to be accepted.
2065:
2066:
2067:
2068:
2069:
2070:
2071:
2072:
2073:
2074:
2075:
2076:
2077:
2078:
2079:
2080:
2081:
2082:
2083:
2084:
2085:
2086:
2087:
2088: August 13, 1982 - 33 - RFC #822
2089:
2090:
2091:
2092: Standard for ARPA Internet Text Messages
2093:
2094:
2095: 7. BIBLIOGRAPHY
2096:
2097:
2098: ANSI. "USA Standard Code for Information Interchange," X3.4.
2099: American National Standards Institute: New York (1968). Also
2100: in: Feinler, E. and J. Postel, eds., "ARPANET Protocol Hand-
2101: book", NIC 7104.
2102:
2103: ANSI. "Representations of Universal Time, Local Time Differen-
2104: tials, and United States Time Zone References for Information
2105: Interchange," X3.51-1975. American National Standards Insti-
2106: tute: New York (1975).
2107:
2108: Bemer, R.W., "Time and the Computer." In: Interface Age (Feb.
2109: 1979).
2110:
2111: Bennett, C.J. "JNT Mail Protocol". Joint Network Team, Ruther-
2112: ford and Appleton Laboratory: Didcot, England.
2113:
2114: Bhushan, A.K., Pogran, K.T., Tomlinson, R.S., and White, J.E.
2115: "Standardizing Network Mail Headers," ARPANET Request for
2116: Comments No. 561, Network Information Center No. 18516; SRI
2117: International: Menlo Park (September 1973).
2118:
2119: Birrell, A.D., Levin, R., Needham, R.M., and Schroeder, M.D.
2120: "Grapevine: An Exercise in Distributed Computing," Communica-
2121: tions of the ACM 25, 4 (April 1982), 260-274.
2122:
2123: Crocker, D.H., Vittal, J.J., Pogran, K.T., Henderson, D.A.
2124: "Standard for the Format of ARPA Network Text Message,"
2125: ARPANET Request for Comments No. 733, Network Information
2126: Center No. 41952. SRI International: Menlo Park (November
2127: 1977).
2128:
2129: Feinler, E.J. and Postel, J.B. ARPANET Protocol Handbook, Net-
2130: work Information Center No. 7104 (NTIS AD A003890). SRI
2131: International: Menlo Park (April 1976).
2132:
2133: Harary, F. "Graph Theory". Addison-Wesley: Reading, Mass.
2134: (1969).
2135:
2136: Levin, R. and Schroeder, M. "Transport of Electronic Messages
2137: through a Network," TeleInformatics 79, pp. 29-33. North
2138: Holland (1979). Also as Xerox Palo Alto Research Center
2139: Technical Report CSL-79-4.
2140:
2141: Myer, T.H. and Henderson, D.A. "Message Transmission Protocol,"
2142: ARPANET Request for Comments, No. 680, Network Information
2143: Center No. 32116. SRI International: Menlo Park (1975).
2144:
2145:
2146: August 13, 1982 - 34 - RFC #822
2147:
2148:
2149:
2150: Standard for ARPA Internet Text Messages
2151:
2152:
2153: NBS. "Specification of Message Format for Computer Based Message
2154: Systems, Recommended Federal Information Processing Standard."
2155: National Bureau of Standards: Gaithersburg, Maryland
2156: (October 1981).
2157:
2158: NIC. Internet Protocol Transition Workbook. Network Information
2159: Center, SRI-International, Menlo Park, California (March
2160: 1982).
2161:
2162: Oppen, D.C. and Dalal, Y.K. "The Clearinghouse: A Decentralized
2163: Agent for Locating Named Objects in a Distributed Environ-
2164: ment," OPD-T8103. Xerox Office Products Division: Palo Alto,
2165: CA. (October 1981).
2166:
2167: Postel, J.B. "Assigned Numbers," ARPANET Request for Comments,
2168: No. 820. SRI International: Menlo Park (August 1982).
2169:
2170: Postel, J.B. "Simple Mail Transfer Protocol," ARPANET Request
2171: for Comments, No. 821. SRI International: Menlo Park (August
2172: 1982).
2173:
2174: Shoch, J.F. "Internetwork naming, addressing and routing," in
2175: Proc. 17th IEEE Computer Society International Conference, pp.
2176: 72-79, Sept. 1978, IEEE Cat. No. 78 CH 1388-8C.
2177:
2178: Su, Z. and Postel, J. "The Domain Naming Convention for Internet
2179: User Applications," ARPANET Request for Comments, No. 819.
2180: SRI International: Menlo Park (August 1982).
2181:
2182:
2183:
2184:
2185:
2186:
2187:
2188:
2189:
2190:
2191:
2192:
2193:
2194:
2195:
2196:
2197:
2198:
2199:
2200:
2201:
2202:
2203:
2204: August 13, 1982 - 35 - RFC #822
2205:
2206:
2207:
2208: Standard for ARPA Internet Text Messages
2209:
2210:
2211: APPENDIX
2212:
2213:
2214: A. EXAMPLES
2215:
2216: A.1. ADDRESSES
2217:
2218: A.1.1. Alfred Neuman <Neuman@BBN-TENEXA>
2219:
2220: A.1.2. Neuman@BBN-TENEXA
2221:
2222: These two "Alfred Neuman" examples have identical seman-
2223: tics, as far as the operation of the local host's mail sending
2224: (distribution) program (also sometimes called its "mailer")
2225: and the remote host's mail protocol server are concerned. In
2226: the first example, the "Alfred Neuman" is ignored by the
2227: mailer, as "Neuman@BBN-TENEXA" completely specifies the reci-
2228: pient. The second example contains no superfluous informa-
2229: tion, and, again, "Neuman@BBN-TENEXA" is the intended reci-
2230: pient.
2231:
2232: Note: When the message crosses name-domain boundaries, then
2233: these specifications must be changed, so as to indicate
2234: the remainder of the hierarchy, starting with the top
2235: level.
2236:
2237: A.1.3. "George, Ted" <[email protected]>
2238:
2239: This form might be used to indicate that a single mailbox
2240: is shared by several users. The quoted string is ignored by
2241: the originating host's mailer, because "[email protected]"
2242: completely specifies the destination mailbox.
2243:
2244: A.1.4. Wilt . (the Stilt) [email protected]
2245:
2246: The "(the Stilt)" is a comment, which is NOT included in
2247: the destination mailbox address handed to the originating
2248: system's mailer. The local-part of the address is the string
2249: "Wilt.Chamberlain", with NO space between the first and second
2250: words.
2251:
2252: A.1.5. Address Lists
2253:
2254: Gourmets: Pompous Person <WhoZiWhatZit@Cordon-Bleu>,
2255: [email protected], Galloping Gourmet@
2256: ANT.Down-Under (Australian National Television),
2257: Cheapie@Discount-Liquors;,
2258: Cruisers: Port@Portugal, Jones@SEA;,
2259: [email protected]
2260:
2261:
2262: August 13, 1982 - 36 - RFC #822
2263:
2264:
2265:
2266: Standard for ARPA Internet Text Messages
2267:
2268:
2269: This group list example points out the use of comments and the
2270: mixing of addresses and groups.
2271:
2272: A.2. ORIGINATOR ITEMS
2273:
2274: A.2.1. Author-sent
2275:
2276: George Jones logs into his host as "Jones". He sends
2277: mail himself.
2278:
2279: From: [email protected]
2280:
2281: or
2282:
2283: From: George Jones <[email protected]>
2284:
2285: A.2.2. Secretary-sent
2286:
2287: George Jones logs in as Jones on his host. His secre-
2288: tary, who logs in as Secy sends mail for him. Replies to the
2289: mail should go to George.
2290:
2291: From: George Jones <Jones@Group>
2292: Sender: Secy@Other-Group
2293:
2294: A.2.3. Secretary-sent, for user of shared directory
2295:
2296: George Jones' secretary sends mail for George. Replies
2297: should go to George.
2298:
2299: From: George Jones<[email protected]>
2300: Sender: Secy@Other-Group
2301:
2302: Note that there need not be a space between "Jones" and the
2303: "<", but adding a space enhances readability (as is the case
2304: in other examples.
2305:
2306: A.2.4. Committee activity, with one author
2307:
2308: George is a member of a committee. He wishes to have any
2309: replies to his message go to all committee members.
2310:
2311: From: George Jones <[email protected]>
2312: Sender: Jones@Host
2313: Reply-To: The Committee: [email protected],
2314: [email protected],
2315: Doe@Somewhere-Else;
2316:
2317: Note that if George had not included himself in the
2318:
2319:
2320: August 13, 1982 - 37 - RFC #822
2321:
2322:
2323:
2324: Standard for ARPA Internet Text Messages
2325:
2326:
2327: enumeration of The Committee, he would not have gotten an
2328: implicit reply; the presence of the "Reply-to" field SUPER-
2329: SEDES the sending of a reply to the person named in the "From"
2330: field.
2331:
2332: A.2.5. Secretary acting as full agent of author
2333:
2334: George Jones asks his secretary (Secy@Host) to send a
2335: message for him in his capacity as Group. He wants his secre-
2336: tary to handle all replies.
2337:
2338: From: George Jones <Group@Host>
2339: Sender: Secy@Host
2340: Reply-To: Secy@Host
2341:
2342: A.2.6. Agent for user without online mailbox
2343:
2344: A friend of George's, Sarah, is visiting. George's
2345: secretary sends some mail to a friend of Sarah in computer-
2346: land. Replies should go to George, whose mailbox is Jones at
2347: Registry.
2348:
2349: From: Sarah Friendly <Secy@Registry>
2350: Sender: Secy-Name <Secy@Registry>
2351: Reply-To: Jones@Registry.
2352:
2353: A.2.7. Agent for member of a committee
2354:
2355: George's secretary sends out a message which was authored
2356: jointly by all the members of a committee. Note that the name
2357: of the committee cannot be specified, since <group> names are
2358: not permitted in the From field.
2359:
2360: From: Jones@Host,
2361: Smith@Other-Host,
2362: Doe@Somewhere-Else
2363: Sender: Secy@SHost
2364:
2365:
2366:
2367:
2368:
2369:
2370:
2371:
2372:
2373:
2374:
2375:
2376:
2377:
2378: August 13, 1982 - 38 - RFC #822
2379:
2380:
2381:
2382: Standard for ARPA Internet Text Messages
2383:
2384:
2385: A.3. COMPLETE HEADERS
2386:
2387: A.3.1. Minimum required
2388:
2389: Date: 26 Aug 76 1429 EDT Date: 26 Aug 76 1429 EDT
2390: From: [email protected] or From: [email protected]
2391: Bcc: To: [email protected]
2392:
2393: Note that the "Bcc" field may be empty, while the "To" field
2394: is required to have at least one address.
2395:
2396: A.3.2. Using some of the additional fields
2397:
2398: Date: 26 Aug 76 1430 EDT
2399: From: George Jones<Group@Host>
2400: Sender: Secy@SHOST
2401: To: "Al Neuman"@Mad-Host,
2402: Sam.Irving@Other-Host
2403: Message-ID: <some.string@SHOST>
2404:
2405: A.3.3. About as complex as you're going to get
2406:
2407: Date : 27 Aug 76 0932 PDT
2408: From : Ken Davis <[email protected]>
2409: Subject : Re: The Syntax in the RFC
2410: Sender : KSecy@Other-Host
2411: Reply-To : [email protected]
2412: To : George Jones <[email protected]>,
2413: [email protected]
2414: cc : Important folk:
2415: Tom Softwood <[email protected]>,
2416: "Sam Irving"@Other-Host;,
2417: Standard Distribution:
2418: /main/davis/people/standard@Other-Host,
2419: "<Jones>standard.dist.3"@Tops-20-Host>;
2420: Comment : Sam is away on business. He asked me to handle
2421: his mail for him. He'll be able to provide a
2422: more accurate explanation when he returns
2423: next week.
2424: In-Reply-To: <[email protected]>, George's message
2425: X-Special-action: This is a sample of user-defined field-
2426: names. There could also be a field-name
2427: "Special-action", but its name might later be
2428: preempted
2429: Message-ID: <4231.629.XYzi-What@Other-Host>
2430:
2431:
2432:
2433:
2434:
2435:
2436: August 13, 1982 - 39 - RFC #822
2437:
2438:
2439:
2440: Standard for ARPA Internet Text Messages
2441:
2442:
2443: B. SIMPLE FIELD PARSING
2444:
2445: Some mail-reading software systems may wish to perform only
2446: minimal processing, ignoring the internal syntax of structured
2447: field-bodies and treating them the same as unstructured-field-
2448: bodies. Such software will need only to distinguish:
2449:
2450: o Header fields from the message body,
2451:
2452: o Beginnings of fields from lines which continue fields,
2453:
2454: o Field-names from field-contents.
2455:
2456: The abbreviated set of syntactic rules which follows will
2457: suffice for this purpose. It describes a limited view of mes-
2458: sages and is a subset of the syntactic rules provided in the main
2459: part of this specification. One small exception is that the con-
2460: tents of field-bodies consist only of text:
2461:
2462: B.1. SYNTAX
2463:
2464:
2465: message = *field *(CRLF *text)
2466:
2467: field = field-name ":" [field-body] CRLF
2468:
2469: field-name = 1*<any CHAR, excluding CTLs, SPACE, and ":">
2470:
2471: field-body = *text [CRLF LWSP-char field-body]
2472:
2473:
2474: B.2. SEMANTICS
2475:
2476: Headers occur before the message body and are terminated by
2477: a null line (i.e., two contiguous CRLFs).
2478:
2479: A line which continues a header field begins with a SPACE or
2480: HTAB character, while a line beginning a field starts with a
2481: printable character which is not a colon.
2482:
2483: A field-name consists of one or more printable characters
2484: (excluding colon, space, and control-characters). A field-name
2485: MUST be contained on one line. Upper and lower case are not dis-
2486: tinguished when comparing field-names.
2487:
2488:
2489:
2490:
2491:
2492:
2493:
2494: August 13, 1982 - 40 - RFC #822
2495:
2496:
2497:
2498: Standard for ARPA Internet Text Messages
2499:
2500:
2501: C. DIFFERENCES FROM RFC #733
2502:
2503: The following summarizes the differences between this stan-
2504: dard and the one specified in Arpanet Request for Comments #733,
2505: "Standard for the Format of ARPA Network Text Messages". The
2506: differences are listed in the order of their occurrence in the
2507: current specification.
2508:
2509: C.1. FIELD DEFINITIONS
2510:
2511: C.1.1. FIELD NAMES
2512:
2513: These now must be a sequence of printable characters. They
2514: may not contain any LWSP-chars.
2515:
2516: C.2. LEXICAL TOKENS
2517:
2518: C.2.1. SPECIALS
2519:
2520: The characters period ("."), left-square bracket ("["), and
2521: right-square bracket ("]") have been added. For presentation
2522: purposes, and when passing a specification to a system that
2523: does not conform to this standard, periods are to be contigu-
2524: ous with their surrounding lexical tokens. No linear-white-
2525: space is permitted between them. The presence of one LWSP-
2526: char between other tokens is still directed.
2527:
2528: C.2.2. ATOM
2529:
2530: Atoms may not contain SPACE.
2531:
2532: C.2.3. SPECIAL TEXT
2533:
2534: ctext and qtext have had backslash ("\") added to the list of
2535: prohibited characters.
2536:
2537: C.2.4. DOMAINS
2538:
2539: The lexical tokens <domain-literal> and <dtext> have been
2540: added.
2541:
2542: C.3. MESSAGE SPECIFICATION
2543:
2544: C.3.1. TRACE
2545:
2546: The "Return-path:" and "Received:" fields have been specified.
2547:
2548:
2549:
2550:
2551:
2552: August 13, 1982 - 41 - RFC #822
2553:
2554:
2555:
2556: Standard for ARPA Internet Text Messages
2557:
2558:
2559: C.3.2. FROM
2560:
2561: The "From" field must contain machine-usable addresses (addr-
2562: spec). Multiple addresses may be specified, but named-lists
2563: (groups) may not.
2564:
2565: C.3.3. RESENT
2566:
2567: The meta-construct of prefacing field names with the string
2568: "Resent-" has been added, to indicate that a message has been
2569: forwarded by an intermediate recipient.
2570:
2571: C.3.4. DESTINATION
2572:
2573: A message must contain at least one destination address field.
2574: "To" and "CC" are required to contain at least one address.
2575:
2576: C.3.5. IN-REPLY-TO
2577:
2578: The field-body is no longer a comma-separated list, although a
2579: sequence is still permitted.
2580:
2581: C.3.6. REFERENCE
2582:
2583: The field-body is no longer a comma-separated list, although a
2584: sequence is still permitted.
2585:
2586: C.3.7. ENCRYPTED
2587:
2588: A field has been specified that permits senders to indicate
2589: that the body of a message has been encrypted.
2590:
2591: C.3.8. EXTENSION-FIELD
2592:
2593: Extension fields are prohibited from beginning with the char-
2594: acters "X-".
2595:
2596: C.4. DATE AND TIME SPECIFICATION
2597:
2598: C.4.1. SIMPLIFICATION
2599:
2600: Fewer optional forms are permitted and the list of three-
2601: letter time zones has been shortened.
2602:
2603: C.5. ADDRESS SPECIFICATION
2604:
2605:
2606:
2607:
2608:
2609:
2610: August 13, 1982 - 42 - RFC #822
2611:
2612:
2613:
2614: Standard for ARPA Internet Text Messages
2615:
2616:
2617: C.5.1. ADDRESS
2618:
2619: The use of quoted-string, and the ":"-atom-":" construct, have
2620: been removed. An address now is either a single mailbox
2621: reference or is a named list of addresses. The latter indi-
2622: cates a group distribution.
2623:
2624: C.5.2. GROUPS
2625:
2626: Group lists are now required to to have a name. Group lists
2627: may not be nested.
2628:
2629: C.5.3. MAILBOX
2630:
2631: A mailbox specification may indicate a person's name, as
2632: before. Such a named list no longer may specify multiple
2633: mailboxes and may not be nested.
2634:
2635: C.5.4. ROUTE ADDRESSING
2636:
2637: Addresses now are taken to be absolute, global specifications,
2638: independent of transmission paths. The <route> construct has
2639: been provided, to permit explicit specification of transmis-
2640: sion path. RFC #733's use of multiple at-signs ("@") was
2641: intended as a general syntax for indicating routing and/or
2642: hierarchical addressing. The current standard separates these
2643: specifications and only one at-sign is permitted.
2644:
2645: C.5.5. AT-SIGN
2646:
2647: The string " at " no longer is used as an address delimiter.
2648: Only at-sign ("@") serves the function.
2649:
2650: C.5.6. DOMAINS
2651:
2652: Hierarchical, logical name-domains have been added.
2653:
2654: C.6. RESERVED ADDRESS
2655:
2656: The local-part "Postmaster" has been reserved, so that users can
2657: be guaranteed at least one valid address at a site.
2658:
2659:
2660:
2661:
2662:
2663:
2664:
2665:
2666:
2667:
2668: August 13, 1982 - 43 - RFC #822
2669:
2670:
2671:
2672: Standard for ARPA Internet Text Messages
2673:
2674:
2675: D. ALPHABETICAL LISTING OF SYNTAX RULES
2676:
2677: address = mailbox ; one addressee
2678: / group ; named list
2679: addr-spec = local-part "@" domain ; global address
2680: ALPHA = <any ASCII alphabetic character>
2681: ; (101-132, 65.- 90.)
2682: ; (141-172, 97.-122.)
2683: atom = 1*<any CHAR except specials, SPACE and CTLs>
2684: authentic = "From" ":" mailbox ; Single author
2685: / ( "Sender" ":" mailbox ; Actual submittor
2686: "From" ":" 1#mailbox) ; Multiple authors
2687: ; or not sender
2688: CHAR = <any ASCII character> ; ( 0-177, 0.-127.)
2689: comment = "(" *(ctext / quoted-pair / comment) ")"
2690: CR = <ASCII CR, carriage return> ; ( 15, 13.)
2691: CRLF = CR LF
2692: ctext = <any CHAR excluding "(", ; => may be folded
2693: ")", "\" & CR, & including
2694: linear-white-space>
2695: CTL = <any ASCII control ; ( 0- 37, 0.- 31.)
2696: character and DEL> ; ( 177, 127.)
2697: date = 1*2DIGIT month 2DIGIT ; day month year
2698: ; e.g. 20 Jun 82
2699: dates = orig-date ; Original
2700: [ resent-date ] ; Forwarded
2701: date-time = [ day "," ] date time ; dd mm yy
2702: ; hh:mm:ss zzz
2703: day = "Mon" / "Tue" / "Wed" / "Thu"
2704: / "Fri" / "Sat" / "Sun"
2705: delimiters = specials / linear-white-space / comment
2706: destination = "To" ":" 1#address ; Primary
2707: / "Resent-To" ":" 1#address
2708: / "cc" ":" 1#address ; Secondary
2709: / "Resent-cc" ":" 1#address
2710: / "bcc" ":" #address ; Blind carbon
2711: / "Resent-bcc" ":" #address
2712: DIGIT = <any ASCII decimal digit> ; ( 60- 71, 48.- 57.)
2713: domain = sub-domain *("." sub-domain)
2714: domain-literal = "[" *(dtext / quoted-pair) "]"
2715: domain-ref = atom ; symbolic reference
2716: dtext = <any CHAR excluding "[", ; => may be folded
2717: "]", "\" & CR, & including
2718: linear-white-space>
2719: extension-field =
2720: <Any field which is defined in a document
2721: published as a formal extension to this
2722: specification; none will have names beginning
2723: with the string "X-">
2724:
2725:
2726: August 13, 1982 - 44 - RFC #822
2727:
2728:
2729:
2730: Standard for ARPA Internet Text Messages
2731:
2732:
2733: field = field-name ":" [ field-body ] CRLF
2734: fields = dates ; Creation time,
2735: source ; author id & one
2736: 1*destination ; address required
2737: *optional-field ; others optional
2738: field-body = field-body-contents
2739: [CRLF LWSP-char field-body]
2740: field-body-contents =
2741: <the ASCII characters making up the field-body, as
2742: defined in the following sections, and consisting
2743: of combinations of atom, quoted-string, and
2744: specials tokens, or else consisting of texts>
2745: field-name = 1*<any CHAR, excluding CTLs, SPACE, and ":">
2746: group = phrase ":" [#mailbox] ";"
2747: hour = 2DIGIT ":" 2DIGIT [":" 2DIGIT]
2748: ; 00:00:00 - 23:59:59
2749: HTAB = <ASCII HT, horizontal-tab> ; ( 11, 9.)
2750: LF = <ASCII LF, linefeed> ; ( 12, 10.)
2751: linear-white-space = 1*([CRLF] LWSP-char) ; semantics = SPACE
2752: ; CRLF => folding
2753: local-part = word *("." word) ; uninterpreted
2754: ; case-preserved
2755: LWSP-char = SPACE / HTAB ; semantics = SPACE
2756: mailbox = addr-spec ; simple address
2757: / phrase route-addr ; name & addr-spec
2758: message = fields *( CRLF *text ) ; Everything after
2759: ; first null line
2760: ; is message body
2761: month = "Jan" / "Feb" / "Mar" / "Apr"
2762: / "May" / "Jun" / "Jul" / "Aug"
2763: / "Sep" / "Oct" / "Nov" / "Dec"
2764: msg-id = "<" addr-spec ">" ; Unique message id
2765: optional-field =
2766: / "Message-ID" ":" msg-id
2767: / "Resent-Message-ID" ":" msg-id
2768: / "In-Reply-To" ":" *(phrase / msg-id)
2769: / "References" ":" *(phrase / msg-id)
2770: / "Keywords" ":" #phrase
2771: / "Subject" ":" *text
2772: / "Comments" ":" *text
2773: / "Encrypted" ":" 1#2word
2774: / extension-field ; To be defined
2775: / user-defined-field ; May be pre-empted
2776: orig-date = "Date" ":" date-time
2777: originator = authentic ; authenticated addr
2778: [ "Reply-To" ":" 1#address] )
2779: phrase = 1*word ; Sequence of words
2780:
2781:
2782:
2783:
2784: August 13, 1982 - 45 - RFC #822
2785:
2786:
2787:
2788: Standard for ARPA Internet Text Messages
2789:
2790:
2791: qtext = <any CHAR excepting <">, ; => may be folded
2792: "\" & CR, and including
2793: linear-white-space>
2794: quoted-pair = "\" CHAR ; may quote any char
2795: quoted-string = <"> *(qtext/quoted-pair) <">; Regular qtext or
2796: ; quoted chars.
2797: received = "Received" ":" ; one per relay
2798: ["from" domain] ; sending host
2799: ["by" domain] ; receiving host
2800: ["via" atom] ; physical path
2801: *("with" atom) ; link/mail protocol
2802: ["id" msg-id] ; receiver msg id
2803: ["for" addr-spec] ; initial form
2804: ";" date-time ; time received
2805:
2806: resent = resent-authentic
2807: [ "Resent-Reply-To" ":" 1#address] )
2808: resent-authentic =
2809: = "Resent-From" ":" mailbox
2810: / ( "Resent-Sender" ":" mailbox
2811: "Resent-From" ":" 1#mailbox )
2812: resent-date = "Resent-Date" ":" date-time
2813: return = "Return-path" ":" route-addr ; return address
2814: route = 1#("@" domain) ":" ; path-relative
2815: route-addr = "<" [route] addr-spec ">"
2816: source = [ trace ] ; net traversals
2817: originator ; original mail
2818: [ resent ] ; forwarded
2819: SPACE = <ASCII SP, space> ; ( 40, 32.)
2820: specials = "(" / ")" / "<" / ">" / "@" ; Must be in quoted-
2821: / "," / ";" / ":" / "\" / <"> ; string, to use
2822: / "." / "[" / "]" ; within a word.
2823: sub-domain = domain-ref / domain-literal
2824: text = <any CHAR, including bare ; => atoms, specials,
2825: CR & bare LF, but NOT ; comments and
2826: including CRLF> ; quoted-strings are
2827: ; NOT recognized.
2828: time = hour zone ; ANSI and Military
2829: trace = return ; path to sender
2830: 1*received ; receipt tags
2831: user-defined-field =
2832: <Any field which has not been defined
2833: in this specification or published as an
2834: extension to this specification; names for
2835: such fields must be unique and may be
2836: pre-empted by published extensions>
2837: word = atom / quoted-string
2838:
2839:
2840:
2841:
2842: August 13, 1982 - 46 - RFC #822
2843:
2844:
2845:
2846: Standard for ARPA Internet Text Messages
2847:
2848:
2849: zone = "UT" / "GMT" ; Universal Time
2850: ; North American : UT
2851: / "EST" / "EDT" ; Eastern: - 5/ - 4
2852: / "CST" / "CDT" ; Central: - 6/ - 5
2853: / "MST" / "MDT" ; Mountain: - 7/ - 6
2854: / "PST" / "PDT" ; Pacific: - 8/ - 7
2855: / 1ALPHA ; Military: Z = UT;
2856: <"> = <ASCII quote mark> ; ( 42, 34.)
2857:
2858:
2859:
2860:
2861:
2862:
2863:
2864:
2865:
2866:
2867:
2868:
2869:
2870:
2871:
2872:
2873:
2874:
2875:
2876:
2877:
2878:
2879:
2880:
2881:
2882:
2883:
2884:
2885:
2886:
2887:
2888:
2889:
2890:
2891:
2892:
2893:
2894:
2895:
2896:
2897:
2898:
2899:
2900: August 13, 1982 - 47 - RFC #822
2901:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.