分享
 
 
 

RFC733 - Standard for the format of ARPA network text messages

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

RFC# 733

NIC # 41952

Obsoletes: RFC#561 (NIC #18516)

RFC#680 (NIC #32116)

RFC#724 (NIC #37435)

STANDARD FOR THE FORMAT OF

ARPA NETWORK TEXT MESSAGES(1)

21 November 1977

by

David H. Crocker

The Rand Corporation

John J. Vittal

Bolt Beranek and Newman Inc.

Kenneth T. Pogran

Massachusets Institute of Technology

D. Austin Henderson, Jr.(2)

Bolt Beranek and Newman Inc.

_________________________________________________________________

(1)This work was supported by the Defense Advanced Research

Projects Agency of the Department of Defense, under contract Nos.

N00014-75-C-0661, MDA903-76-C-0212, and DAHC15-73-C0181.

(2)The authors' postal addresses are: D. Crocker, The Rand

Corporation, Information Sciences Dept., 1700 Main St., Santa

Monica, California 90406; J. Vittal & D. A. Henderson, Bolt

Beranek & Newman, 50 Moulton St., Cambridge, Massachusetts 02138;

and K. Pogran, MIT Laboratory for Computer Science, 545

Technology Square, Cambridge, Massachusetts 02139. The authors'

ARPANET addresses are: DCrocker at Rand-Unix, Vittal at BBN-

TenexD, Pogran at MIT-Multics, and Henderson at BBN-TenexD.

-iii-

PREFACE

ARPA's Committee on Computer-Aided Human Communication

(CAHCOM) wishes to promulgate a standard for the format of ARPA

Network text message (mail) headers which will reasonably meet

the needs of the various message service subsystems on the

Network today. The authors of this document constitute the

CAHCOM subcommittee charged with the task of developing this new

standard.

Essentially, we specify a revision to ARPANET Request for

680, "Message Transmission Protocol". This revision removes and

compacts portions of the previous syntax and adds several

features to network address specification. In particular, we

focus on people and not mailboxes as recipients and allow

reference to stored address lists. We eXPect this syntax to

provide sufficient capabilities to meet most users' immediate

needs and, therefore, give developers enough breathing room to

prodUCe a new mail transmission protocol "properly". We believe

that there is enough of a consensus in the Network community in

favor of such a standard syntax to make possible its adoption at

this time. An earlier draft of this specification was published

as RFC#724, "Proposed Official Standard for the Format of ARPA

Network Messages" and contained extensive discussion of the

background and issues in ARPANET mail standards.

This specification was developed over the course of one

year, using the ARPANET mail environment, itself, to provide an

on-going forum for discussing the capabilities to be included.

More than twenty individuals, from across the country,

participated in this discussion and we would like to acknowledge

their considerable efforts. The syntax of the standard was

originally specified in the Backus-Naur Form (BNF) meta-language.

Ken L. Harrenstien, of SRI International, was responsible for

re-coding the BNF into an augmented BNF which compacts the

specification and allows increased comprehensibility.

-v-

CONTENTS

PREFACE..................................................... iii

Section

I. INTRODUCTION......................................... 1

II. FRAMEWORK............................................ 2

III. SYNTAX............................................... 4

A. Notational Conventions............................ 4

B. Lexical Analysis of Messages...................... 5

C. General Syntax of Messages........................ 13

D. Syntax of General Addressee Items................. 15

E. Supporting Constructs............................. 15

IV. SEMANTICS............................................ 17

A. Address Fields.................................... 17

B. Reference Specification Fields.................... 22

C. Other Fields and Syntactic Items.................. 23

D. Dates and Times................................... 24

V. EXAMPLES............................................. 25

A. Addresses......................................... 25

B. Address Lists..................................... 26

C. Originator Items.................................. 26

D. Complete Headers.................................. 28

Appendix

A. ALPHABETICAL LISTING OF SYNTAX RULES................. 31

B. SIMPLE PARSING....................................... 35

BIBLIOGRAPHY................................................ 37

Standard for the Format of Text Messages 1

I. Introduction

I. INTRODUCTION

This standard specifies a syntax for text messages which are

passed between computer users within the framework of "electronic

mail". The standard supersedes the informal standards specified

in ARPANET Request for Comments numbers 561, "Standardizing

Network Mail Headers", and 680, "Message Transmission Protocol".

In this document, a general framework is first described; the

formal syntax is then specified, followed by a discussion of the

semantics. Finally, a number of examples are given.

This specification is intended strictly as a definition of

what is to be passed between hosts on the ARPANET. It is NOT

intended to dictate either features which systems on the Network

are expected to support, or user interfaces to message creating

or reading programs.

A distinction should be made between what the specification

REQUIRES and what it ALLOWS. Messages can be made complex and

rich with formally-structured components of information or can be

kept small and simple, with a minimum of such information. Also,

the standard simplifies the interpretation of differing visual

formats in messages. These simplifications facilitate the formal

specification and indicate what the OFFICIAL semantics are for

messages. Only the visual ASPect of a message is affected and

not the interpretation of information within it. Implementors

may choose to retain such visual distinctions.

Standard for the Format of Text Messages 2

II. Framework

II. FRAMEWORK

Since there are many message systems which exist outside the

ARPANET environment, as well as those within it, it may be useful

to consider the general framework, and resulting capabilities and

limitations, provided by this standard.

Messages are expected to consist of lines of text. No

special provisions are made, at this time, for encoding drawings,

facsimile, speech, or structured text.

No significant consideration has been given to questions of

data compression or transmission/storage efficiency. The

standard, in fact, tends to be very free with the number of bits

consumed. For example, field names are specified as free text,

rather than special terse codes.

A general "memo" framework is used. That is, a message

consists of some information, in a rigid format, followed by the

main part of the message, which is text and whose format is not

specified in this document. The syntax of several fields of the

rigidly-formated ("header") section is defined in this

specification; some of the header fields must be included in all

messages. The syntax which distinguishes between headers is

specified separately from the internal syntax for particular

headers. This separation is intended to allow extremely simple

parsers to operate on the overall structure of messages, without

concern for the detailed structure of individual headers.

Appendix B is provided to facilitate construction of these simple

parsers. In addition to the fields specified in this document,

it is expected that other fields will gain common use. User-

defined header fields allow systems to extend their functionality

while maintaining a uniform framework. The approach is similar

to that of the TELNET protocol, in that a basic standard is

defined which includes a mechanism for (optionally) extending

itself. As necessary, the authors of this document will regulate

the publishing of specifications for these "extension-fields",

through the same mechanisms used to publish this document.

Such a framework severely constrains document tone and

appearance and is primarily useful for most intra-organization

communications and relatively structured inter-organization

communication. A more robust environment might allow for multi-

font, multi-color, multi-dimension encoding of information. A

less robust environment, as is present in most single-machine

message systems, would more severely constrain the ability to add

fields and the decision to include specific fields. In contrast

to paper-based communication, it is interesting to note that the

Standard for the Format of Text Messages 3

II. Framework

RECEIVER of a message can exercise an extraordinary amount of

control over the message's appearance. The amount of actual

control available to message receivers is contingent upon the

capabilities of their individual message systems.

Standard for the Format of Text Messages 4

III. Syntax

III. SYNTAX

This syntax is given in five parts. The first part

describes the notation used in the specification. The second

part describes the base-level lexical analyzers which feed the

higher-level parser described in the succeeding sections. The

third part gives a general syntax for messages and standard

header fields; and the fourth part specifies the syntax of

addresses. A final part specifies some general syntax which

supports the other sections.

A. NOTATIONAL CONVENTIONS

These specifications are made in an augmented Backus-Naur Form

(BNF). Differences from standard BNF involve the naming of

rules, the indication of repetition and of "local" alternatives.

1. Rule naming

Angle brackets ("<", ">") are not used, in general. The name of

a rule is simply the name itself, rather than "<name>".

Quotation-marks enclose literal text (which may be upper and/or

lower case). Certain basic rules are in uppercase, such as

SPACE, TAB, CRLF, DIGIT, ALPHA, etc. Angle brackets are used in

rule definitions, and in the rest of this document, whenever

their presence will facilitate discerning the use of rule names.

2. Parentheses: Local alternatives

Elements enclosed in parentheses are treated as a single element.

Thus, "(elem (foo / bar) elem)" allows "(elem foo elem)" and

"(elem bar elem)".

3. * construct: Repetition

The character "*" preceding an element indicates repetition. The

full form is:

<l>*<m>element

indicating at least <l> and at most <m> occurrences of element.

Default values are 0 and infinity so that "*(element)" allows any

number, including zero; "1*element" requires at least one; and

"1*2element" allows one or two.

Standard for the Format of Text Messages 5

III. Syntax

A. Notational Conventions

4. <number>element

"<n>(element)" is equivalent to "<n>*<n>(element)"; that is,

exactly <n> occurrences of (element). Thus 2DIGIT is a 2-digit

number, and 3ALPHA is a string of three alphabetic characters.

5. # construct: Lists

A construct "#" is defined, similar to "*", as follows:

<l>#<m>element

indicating at least <l> and at most <m> elements, each separated

by one or more commas (","). This makes the usual form of lists

very easy; a rule such as '(element *("," element))' can be shown

as "1#element". Wherever this construct is used, null elements

are allowed, but do not contribute to the count of elements

present. That is, "(element),,(element)" is permitted, but

counts as only two elements. Therefore, where at least one

element is required, at least one non-null element must be

present.

6. [optional]

Square brackets enclose optional elements; "[foo bar]" is

equivalent to "*1(foo bar)".

7. ; Comments

A semi-colon, set off some distance to the right of rule text,

starts a comment which continues to the end of line. This is a

simple way of including useful notes in parallel with the

specifications.

B. LEXICAL ANALYSIS OF MESSAGES

1. General Description

A message consists of headers and, optionally, a body (i.e. a

series of text lines). The text part is just a sequence of lines

containing ASCII characters; it is separated from the headers by

a null line (i.e., a line with nothing preceding the CRLF).

Standard for the Format of Text Messages 6

III. Syntax

B. Lexical Analysis

a. Folding and unfolding of headers

Each header item can be viewed as a single, logical line of

ASCII characters. For convenience, the field-body portion of

this conceptual entity can be split into a multiple-line

representation (i.e., "folded"). The general rule is that

wherever there can be linear-white-space (NOT simply LWSP-

chars), a CRLF immediately followed by AT LEAST one LWSP-char

can instead be inserted. (However, a header's name and the

following colon (":"), which occur at the beginning of the

header item, may NOT be folded onto multiple lines.) Thus,

the single line

To: "Joe Dokes & J. Harvey" <ddd at Host>, JJV at BBN

can be represented as

To: "Joe Dokes & J. Harvey" <ddd at Host>,

JJV at BBN

and

To: "Joe Dokes & J. Harvey"

<ddd at Host>,

JJV at BBN

and

To: "Joe Dokes

& J. Harvey" <ddd at Host>, JJV at BBN

The process of moving from this folded multiple-line

representation of a header field to its single line

representation will be called "unfolding". Unfolding is

accomplished by regarding CRLF immediately followed by a

LWSP-char as equivalent to the LWSP-char.

b. Structure of header fields

Once header fields have been unfolded, they may be viewed as

being composed of a field-name followed by a colon (":"),

followed by a field-body. The field-name must be composed of

printable ASCII characters (i.e., characters which have

values between 33. and 126., decimal, except colon) and

LWSP-chars. The field-body may be composed of any ASCII

characters (other than an unquoted CRLF, which has been

removed by unfolding).

Certain field-bodies of header fields may be interpreted

according to an internal syntax which some systems may wish

to parse. These fields will be referred to as "structured"

fields. Examples include fields containing dates and

Standard for the Format of Text Messages 7

III. Syntax

B. Lexical Analysis

addresses. Other fields, such as "Subject" and "Comments",

are regarded simply as strings of text.

NOTE: Field-names, unstructured field bodies and structured

field bodies each are scanned by their own, INDEPENDENT

"lexical" analyzer.

c. Field-names

To aid in the creation and reading of field-names, the free

insertion of LWSP-chars is allowed in reasonable places.

Rather than obscuring the syntax specification for field-name

with the explicit syntax for these LWSP-chars, the existence

of a "lexical" analyzer is assumed. The analyzer interprets

the text which comprises the field-name as a sequence of

field-name atoms (fnatoms) separated by LWSP-chars

Note that ONLY LWSP-chars may occur between the fnatoms of a

field-name and that CRLFs may NOT. In addition, comments are

NOT lexically recognized, as such, but parenthesized strings

are legal as part of field-names. These constraints are

different from what is permissible within structured field

bodies. In particular, this means that header field-names

must wholly occur on the FIRST line of a folded header item

and may NOT be split across two or more lines.

d. Unstructured field bodies

For some fields, such as "Subject" and "Comments", no

structuring is assumed; and they are treated simply as texts,

like those in the message body. Rules of folding apply to

these fields, so that such field bodies which occupy several

lines must therefore have the second and successive lines

indented by at least one LWSP-char.

e. Structured field bodies

To aid in the creation and reading of structured fields, the

free insertion of linear-white-space (which permits folding

by inclusion of CRLFs) is allowed in reasonable places.

Rather than obscuring the syntax specifications for these

structured fields with explicit syntax for this linear-

white-space, the existence of another "lexical" analyzer is

assumed. This analyzer does not apply for field bodies which

are simply unstructured strings of text, as described above.

It provides an interpretation of the unfolded text comprising

the body of the field as a sequence of lexical symbols.

These symbols are:

- individual special characters

- quoted-strings

Standard for the Format of Text Messages 8

III. Syntax

B. Lexical Analysis

- comments

- atoms

The first three of these symbols are self-delimiting. Atoms

are not; they therefore are delimited by the self-delimiting

symbols and by linear-white-space. For the purposes of re-

generating sequences of atoms and quoted-strings, exactly one

SPACE is assumed to exist and should be used between them.

(Also, in Section III.B.3.a, note the rules concerning

treatment of multiple continguous LWSP-chars.)

So, for example, the folded body of an address field

":sysmail"@ Some-Host,

Muhammed(I am the greatest)Ali at(the)WBA

is analyzed into the following lexical symbols and types:

":sysmail" quoted string

@ special

Some-Host atom

, special

Muhammed atom

(I am the greatest) comment

Ali atom

at atom

(the) comment

WBA atom

The cononical representations for the data in these addresses

are the following strings (note that there is exactly one

SPACE between Words):

:sysmail at Some-Host

and

Muhammed Ali at WBA

2. Formal Definitions

The first four rules, below, indicate a meta-syntax for fields,

without regard to their particular type or internal syntax. The

remaining rules define basic syntactic structures which are used

by the rules in Sections III.C, III.D, and III.E.

field = field-name ":" [ field-body ] CRLF

field-name = fnatom *( LWSP-char [fnatom] )

Standard for the Format of Text Messages 9

III. Syntax

B. Lexical Analysis

fnatom = 1*<any CHAR, excluding CTLs, SPACE, and ":">

field-body = field-body-contents

[CRLF LWSP-char field-body]

field-body-contents = <the TELNET ASCII characters making up the

field-body, as defined in the following sections,

and consisting of combinations of atom, quoted-

string, and specials tokens, or else consisting of

texts>

; ( Octal, Decimal.)

CHAR = <any TELNET ASCII character> ; ( 0-177, 0.-127.)

ALPHA = <any TELNET ASCII alphabetic character>

; (101-132, 65.- 90.)

; (141-172, 97.-122.)

DIGIT = <any TELNET ASCII digit> ; ( 60- 71, 48.- 57.)

CTL = <any TELNET ASCII control ; ( 0- 37, 0.- 31.)

character and DEL> ; ( 177, 127.)

CR = <TELNET ASCII carriage return>;( 15, 13.)

LF = <TELNET ASCII linefeed> ; ( 12, 10.)

SPACE = <TELNET ASCII space> ; ( 40, 32.)

HTAB = <TELNET ASCII horizontal-tab>; ( 11, 9.)

<"> = <TELNET ASCII quote mark> ; ( 42, 34.)

CRLF = CR LF

LWSP-char = SPACE / HTAB ; semantics = SPACE

linear-white-space = 1*([CRLF] LWSP-char) ; semantics = SPACE

; CRLF => folding

specials = "(" / ")" / "<" / ">" / "@" ; To use in a word,

/ "," / ";" / ":" / "\" / <"> ; word must be a

; quoted-string.

delimiters = specials / comment / linear-white-space

text = <any CHAR, including bare ; => atoms, specials,

CR and/or bare LF, but NOT ; comments and

including CRLF> ; quoted-strings are

; NOT interpreted.

atom = 1*<any CHAR except specials and CTLs>

quoted-string = <"> *(qtext/quoted-pair) <">; Any number of qtext

; chars or any

; quoted char.

qtext = <any CHAR excepting <"> ; => may be folded

and CR, and including

linear-white-space>

Standard for the Format of Text Messages 10

III. Syntax

B. Lexical Analysis

comment = "(" *(ctext / comment / quoted-pair) ")"

ctext = <any CHAR excluding "(", ; => may be folded

")" and CR, and including

linear-white-space>

quoted-pair = "\" CHAR

3. Clarifications

a. "White space"

Remember that in field-names and structured field bodies,

MULTIPLE LINEAR WHITE SPACE TELNET ASCII CHARACTERS (namely

HTABs and SPACEs) ARE TREATED AS SINGLE SPACES AND MAY FREELY

SURROUND ANY SYMBOL. In all header fields, the only place in

which at least one space is REQUIRED is at the beginning of

continuation lines in a folded field. When passing text to

processes which do not interpret text according to this

standard (e.g., ARPANET FTP mail servers), then exactly one

SPACE should be used in place of arbitrary linear-white-space

and comment sequences.

WHEREVER A MEMBER OF THE LIST OF <DELIMITER>S IS ALLOWED,

LWSP-CHARS MAY ALSO OCCUR BEFORE AND/OR AFTER IT.

Writers of mail-sending (i.e. header generating) programs

should realize that there is no Network-wide definition of

the effect of horizontal-tab TELNET ASCII characters on the

appearance of text at another Network host; therefore, the

use of tabs in message headers, though permitted, is

discouraged.

Note that during transmissions across the ARPANET using

TELNET NVT connections, data must conform to TELNET NVT

conventions (e.g., CR must be followed by either LF, making a

CRLF, or <null>, if the CR is to stand alone).

b. Comments

Comments are detected as such only within field-bodies of

structured fields. A comment is a set of TELNET ASCII

characters, which is not within a quoted-string and which is

enclosed in matching parentheses; parentheses nest, so that

if an unquoted left parenthesis occurs in a comment string,

there must also be a matching right parenthesis. When a

comment is used to act as the delimiter between a sequence of

two lexical symbols, such as two atoms, it is lexically

equivalent with one SPACE, for the purposes of regenerating

the sequence, such as when passing the sequence onto an FTP

mail server.

Standard for the Format of Text Messages 11

III. Syntax

B. Lexical Analysis

In particular comments are NOT passed to the FTP server, as

part of a MAIL or MLFL command, since comments are not part

of the "formal" address.

If a comment is to be "folded" onto multiple lines, then the

syntax for folding must be adhered to. (See items III.B.1.a,

above, and III.B.3.f, below.) Note that the official

semantics therefore do not "see" any unquoted CRLFs which are

in comments, although particular parsing programs may wish to

note their presence. For these programs, it would be

reasonable to interpret a "CRLF LWSP-char" as being a CRLF

which is part of the comment; i.e., the CRLF is kept and the

LWSP-char is discarded. Quoted CRLFs (i.e., a backslash

followed by a CR followed by a LF) still must be followed by

at least one LWSP-char.

c. Delimiting and quoting characters

The quote character (backslash) and characters which delimit

syntactic units are not, generally, to be taken as data which

are part of the delimited or quoted unit(s). The one

exception is SPACE. In particular, the quotation-marks which

define a quoted-string, the parentheses which define a

comment and the backslash which quotes a following character

are NOT part of the quoted-string, comment or quoted

character. A quotation-mark which is to be part of a

quoted-string, a parenthesis which is to be part of a comment

and a backslash which is to be part of either must each be

preceded by the quote-character backslash ("\"). Note that

the syntax allows any character to be quoted within a

quoted-string or comment; however only certain characters

MUST be quoted to be included as data. These characters are

those which are not part of the alternate text group (i.e.,

ctext or qtext).

A single SPACE is assumed to exist between contiguous words

in a phrase, and this interpretation is independent of the

actual number of LWSP-chars which the creator places between

the words. To include more than one SPACE, the creator must

make the LWSP-chars be part of a quoted-string.

Quotation marks which delimit a quoted string and backslashes

which quote the following character should NOT accompany the

quoted-string when the string is used with processes that do

not interpret data according to this specification (e.g.,

ARPANET FTP mail servers).

Standard for the Format of Text Messages 12

III. Syntax

B. Lexical Analysis

d. Quoted-strings

Where permitted (i.e., in words in structured fields)

quoted-strings are treated as a single symbol (i.e.

equivalent to an atom, syntactically). If a quoted-string is

to be "folded" onto multiple lines, then the syntax for

folding must be adhered to. (See items III.B.1.a, above, and

III.B.3.f, below.) Note that the official semantics

therefore do not "see" any bare CRLFs which are in quoted-

strings, although particular parsing programs may wish to

note their presence. For these programs, it would be

reasonable to interpret a "CRLF LWSP-char" as being a CRLF

which is part of the quoted-string; i.e., the CRLF is kept

and the LWSP-char is discarded. Quoted CRLFs (i.e., a

backslash followed by a CR followed by a LF) are also subject

to rules of folding, but the presence of the quoting

character (backslash) explicitly indicates that the CRLF is

data to the quoted string. Stripping off the first following

LWSP-char is also appropriate when parsing quoted CRLFs.

e. Bracketing characters

There are three types of brackets which must be well nested:

o Parentheses are used to indicate comments.

o Angle brackets ("<" and ">") are generally used

to indicate the presence of at least one machine-

usable code (e.g., delimiting mailboxes).

o Colon/semi-colon (":" and ";") are used in

address specifications to indicate that the

included list of addresses are to be treated as a

group.

f. Case independence of certain specials atoms

Certain atoms, which are represented in the syntax as literal

alphabetic strings, can be represented in any combination of

upper and lower case. These are:

- field-name,

- "Include", "Postal" and equivalent atoms in a

":"<atom>":" address specification,

- "at", in a host-indicator,

- node,

- day-of-week,

- month, and

- zones.

When matching an atom against one of these literals, case is

to be ignored. For example, the field-names "From", "FROM",

Standard for the Format of Text Messages 13

III. Syntax

B. Lexical Analysis

"from", and even "FroM" should all be treated identically.

However, the case shown in this specification is suggested

for message-creating processes. Note that, at the level of

this specification, case IS relevant to other words and

texts. Also see Section IV.A.1.f, below.

g. Folding long lines

Each header item (field of the message) may be represented on

exactly one line consisting of the name of the field and its

body; this is what the parser sees. For readability, it is

recommended that the field-body portion of long header items

be "folded" onto multiple lines of the actual header. "Long"

is commonly interpreted to mean greater than 65 or 72

characters. The former length is recommended as a limit, but

it is not imposed by this standard.

h. Backspace characters

Backspace TELNET ASCII characters (ASCII BS, decimal 8.) may

be included in texts and quoted-strings to effect

overstriking; however, any use of backspaces which effects an

overstrike to the left of the beginning of the text or

quoted-string is prohibited.

C. GENERAL SYNTAX OF MESSAGES:

NOTE: Due to an artifact of the notational conventions,

the syntax indicates that, when present, "Date",

"From", "Sender", and "Reply-To" fields must be

in a particular order. These header items must

be unique (occur exactly once). However header

fields, in fact, are NOT required to occur in any

particular order, except that the message body

must occur AFTER the headers. For readability

and ease of parsing by simple systems, it is

recommended that headers be sent in the order

"Date", "From", "Subject", "Sender", "To", "cc",

etc. This specification permits multiple

occurrences of most optional-fields. However,

their interpretation is not specified here, and

their use is strongly discouraged.

The following syntax for the bodies of various fields should be

thought of as describing each field body as a single long string

(or line). The section on Lexical Analysis (section II.B)

indicates how such long strings can be represented on more than

one line in the actual transmitted message.

Standard for the Format of Text Messages 14

III. Syntax

C. Messages

message = fields *( CRLF *text ) ; Everything after

; first null line

; is message body

fields = date-field ; Creation time-stamp

originator-fields ; & author id are

*optional-field ; required: others

; are all optional

originator-fields =

( "From" ":" mailbox ; Single author

["Reply-To" ":" #address] )

/ ( "From" ":" 1#address ; Multiple authors &

"Sender" ":" mailbox ; may have non-mach-

["Reply-To" ":" #address] ); ine addresses

date-field = "Date" ":" date-time

optional-field =

"To" ":" #address

/ "cc" ":" #address

/ "bcc" ":" #address ; Blind carbon

/ "Subject" ":" *text

/ "Comments" ":" *text

/ "Message-ID" ":" mach-id ; Only one allowed

/ "In-Reply-To"":" #(phrase / mach-id)

/ "References" ":" #(phrase / mach-id)

/ "Keywords" ":" #phrase

/ extension-field ; To be defined in

; supplemental

; specifications

/ user-defined-field ; Must have unique

; field-name & may

; be pre-empted

extension-field = <Any field which is defined in a document

published as a formal extension to this

specification>

user-defined-field = <Any field which has not been defined in

this specification or published as an extension to

this specification; names for such fields must be

unique and may be preempted by published

extensions>

Standard for the Format of Text Messages 15

III. Syntax

D. Addressee Items

D. SYNTAX OF GENERAL ADDRESSEE ITEMS

address = host-phrase ; Machine mailbox

/ ( [phrase] "<" #address ">") ; Individual / List

/ ( [phrase] ":" #address ";") ; Group

/ quoted-string ; Arbitrary text

/ (":" ( "Include" ; File, w/ addr list

/ "Postal" ; (U.S.) Postal addr

/ atom ) ; Extended data type

":" address)

mailbox = host-phrase / (phrase mach-id)

mach-id = "<" host-phrase ">" ; Contents must never

; be modified!

E. SUPPORTING CONSTRUCTS

host-phrase = phrase host-indicator ; Basic address

host-indicator = 1*( ("at" / "@") node ) ; Right-most node is

; at top of network

; hierarchy; left-

; most must be host

node = word / 1*DIGIT ; Official host or

; network name or

; decimal address

date-time = [ day-of-week "," ] date time

day-of-week = "Monday" / "Mon" / "Tuesday" / "Tue"

/ "Wednesday" / "Wed" / "Thursday" / "Thu"

/ "Friday" / "Fri" / "Saturday" / "Sat"

/ "Sunday" / "Sun"

date = 1*2DIGIT ["-"] month ; day month year

["-"] (2DIGIT /4DIGIT) ; e.g. 20 Aug [19]77

month = "January" / "Jan" / "February" / "Feb"

/ "March" / "Mar" / "April" / "Apr"

/ "May" / "June" / "Jun"

/ "July" / "Jul" / "August" / "Aug"

/ "September" / "Sep" / "October" / "Oct"

/ "November" / "Nov" / "December" / "Dec"

Standard for the Format of Text Messages 16

III. Syntax

E. Supporting Constructs

time = hour zone ; ANSI and Military

; (seconds optional)

hour = 2DIGIT [":"] 2DIGIT [ [":"] 2DIGIT ]

; 0000[00] - 2359[59]

zone = ( ["-"] ( "GMT" ; Relative to GMT:

; North American

/ "NST" / ; Newfoundland:-3:30

/ "AST" / "ADT" ; Atlantic: - 4/ - 3

/ "EST" / "EDT" ; Eastern: - 5/ - 4

/ "CST" / "CDT" ; Central: - 6/ - 5

/ "MST" / "MDT" ; Mountain: - 7/ - 6

/ "PST" / "PDT" ; Pacific: - 8/ - 7

/ "YST" / "YDT" ; Yukon: - 9/ - 8

/ "HST" / "HDT" ; Haw/Ala -10/ - 9

/ "BST" / "BDT" ; Bering: -11/ -10

1ALPHA )) ; Military: Z = GMT;

; A:-1; (J not used)

; M:-12; N:+1; Y:+12

/ ( ("+" / "-") 4DIGIT ) ; Local differential

; hours/min. (HHMM)

phrase = 1*word ; Sequence of words.

; Separation seman-

; tically = SPACE

word = atom / quoted-string

Standard for the Format of Text Messages 17

IV. Semantics

A. Address Fields

IV. SEMANTICS

A. ADDRESS FIELDS

1. General

a. The phrase part of a host-phrase in an address specification

(i.e., the host's name for the mailbox) is understood to be

whatever the receiving FTP Server allows (for example, TENEX

systems do not now understand addresses of the form "P. D.

Q. Bach", but another system might).

Note that a mailbox is a conceptual entity which does not

necessarily pertain to file storage. For example, some sites

may choose to print mail on their line printer and deliver

the output to the addressee's desk.

An individual may have several mailboxes and a group of

individuals may wish to receive mail as a single unit (i.e.,

a distribution list). The second and third alternatives of

an address list (#address) allow naming a collection of

subordinate addresses list(s). Recipient mailboxes are

specified within the bracketed part ("<" - ">" or ":" - ";")

of such named lists. The use of angle-brackets ("<", ">") is

intended for the cases of individuals with multiple mailboxes

and of special mailbox lists; it is not expected to be nested

more than one level, although the specification allows such

nesting. The use of colon/semi-colon (":", ";") is intended

for the case of groups. Groups can be expected to nest

(i.e., to contain subgroups). For both individuals and

groups, a copy of the transmitted message is to be sent to

EACH mailbox listed. For the case of a special list,

treatment of addresses is defined in the relevant subsections

of this section.

b. The inclusion of bare quoted-strings as addresses (i.e., the

fourth address-form alternative) is allowed as a syntactic

convenience, but no semantics are defined for their use.

However, it is reasonable, when replicating an address list,

to replicate ALL of its members, including quoted-strings.

c. ":Include:" specifications are used to refer to one or more

locations containing stored address lists (#address). If

more than one location is referenced, the address part of the

Include phrase must be a list (#address) surrounded by

angle-brackets, as per the "Individual / List" alternative of

<address>. Constituent addresses must resolve to a host-

Standard for the Format of Text Messages 18

IV. Semantics

A. Address Fields

phrase; only they have any meaning within this construct.

The phrase part of indicated host-phrases should contain text

which the referenced host can resolve to a file. This

standard is not a protocol and so does not prescribe HOW data

is to be retrieved from the file. However, the following

requirements are made:

o The file must be Accessible through the local

operating system interface (if it exists), given

adequate user access rights; and

o If a host has an FTP server and a user is able

to retrieve any files from the host using that

server, then the file must be accessible through

FTP, using DEFAULT transfer settings, given

adequate user access rights.

It is intended that this mechanism allow programs to retrieve

such lists automatically.

The interpretation of such a file reference follows. This is

not intended to imply any particular implementation scheme,

but is presented to aid in understanding the notion of

including file contents in address lists:

o Elements of the address list part are alternates

and the contents of ONLY ONE of them are to be

included in the resultant address list.

o The contents of the file indicated by a member

host-phrase are treated as an address list and

are inserted as an address list (#address) in

the position of the path item in the syntax.

That is, the TELNET ASCII characters specifying

the entire Include <address> is replaced by the

contents of one of the files to which the host-

phrase(s), of the address list (#address),

refers. Therefore, the contents of each file,

indicated by an Include address, must be

syntactically self-contained and must adhere to

the full syntax prescribed herein for an address

list.

d. ":Postal:" specifications are used to indicate (U.S.) postal

addresses, but can be treated the same as quoted-string

addresses. To reference a list of postal addresses, the list

must conform to the "Individual / List" alternative of

<address>. The ":Include:" alternative also is valid.

e. The "':' atom ':'" syntax is intended as a general mechanism

for indicating specially data-typed addresses. As with

extension-fields, the authors of this document will regulate

Standard for the Format of Text Messages 19

IV. Semantics

A. Address Fields

the publishing of specifications for these extended data-

types. In the absence of defined semantics, any occurrence

of an address in this form may be treated as a quoted-string

address.

f. A node name must be THE official name of a network or a host,

or else a decimal number indicating the Network address for

that network or host, at the time the message is created.

The USE OF NUMBERS IS STRONGLY DISCOURAGED and is permitted

only due to the occasional necessity of bypassing local name

tables. For the ARPANET, official names are maintained by

the Network Information Center at SRI International, Menlo

Park, California.

Whenever a message might be transmitted or migrate to a host

on another network, full hierarchical addresses must be

specified. These are indicated as a series of words,

separated by at-sign or "at" indications. The communication

environment is assumed to consist of a collection of networks

organized as independent "trees" except for connections

between the root nodes. That is, only the roots can act as

gateways between these independent networks. While other

actual connections may exist, it is believed that presuming

this type of organization will provide a reliable method for

describing VALID, if not EFFICIENT, paths between hosts. A

typical full mailbox specification might therefore look like:

Friendly User @ hosta @ local-net1 @ major-netq

In the simplest case, a mail-sending host should transmit the

message to the node which is mentioned last (farthest to the

right), strip off that node reference from the specification,

and then pass the remaining host-phrase to the recipient host

(in the ARPANET, its FTP server) for it to process. This

treats the remaining portion of the host-indicator merely as

the terminating part of the phrase.

NOTE: When passing any portion of a host-indicator

onto a process which does not interpret data

according to this standard (e.g., ARPANET

FTP servers), "@" must be used and not "at"

and it must not be preceded or followed by

any LWSP-chars. Using the above example,

the following string would be passed to the

major-netq gateway:

Friendly User@hosta@local-net1

When the sending host has more knowledge of the network

environment, then it should send the message along a more

efficient path, making appropriate changes to the form of the

host-phrase which it gives to the recipient host.

Standard for the Format of Text Messages 20

IV. Semantics

A. Address Fields

To use the above specification as an example: If a sending

hostb also were part of local-net1, then it could send the

message directly to hosta and would give only the phrase

"Friendly User" to hosta's mail-receiving program. If hostb

were part of local-net2, along with hostc, and happened to

know that hosta and hostc were part of another local-net,

then hostb could send the message to hostc to the address

"Friendly User@hosta".

The phrase in a host-phrase is intended to be meaningful only

to the indicated receiving host. To all other hosts, the

phrase is to be treated as an uninterpreted string. No case

transformations should be (automatically) performed on the

phrase. The phrase is passed to the local host's mail

sending program; it is the responsibility of the destination

host's mail receiving (distribution) program to perform case

mapping on this phrase, if required, to deliver the mail.

2. Originator Fields

WARNING: The standard allows only a subset of the

combinations possible with the From, Sender,

and Reply-To fields. The limitation is

intentional.

a. From

This field contains the identity of the person(s) who wished

this message to be sent. The message-creation process should

default this field to be a single machine address, indicating

the AGENT (person or process) entering the message. If this

is NOT done, the "Sender" field MUST be present; if this IS

done, the "Sender" field is optional.

b. Sender

This field contains the identity of the AGENT (person or

process) who sends the message. It is intended for use when

the sender is not the author of the message, or to indicate

who among a group of authors actually sent the message. If

the contents of the "Sender" field would be completely

redundant with the "From" field, then the "Sender" field need

not be present and its use is discouraged (though still

legal); in particular, the "Sender" field MUST be present

if it is NOT the same as the "From" Field.

The Sender host-phrase includes a phrase which must

correspond to a specific agent (i.e., a human user or a

computer program) rather than a standard address. This

indicates the expectation that the field will identify the

single AGENT (person or process) responsible for sending the

Standard for the Format of Text Messages 21

IV. Semantics

A. Address Fields

mail and not simply include the name of a mailbox from which

the mail was sent. For example in the case of a shared login

name, the name, by itself, would not be adequate. The phrase

part of the host-phrase, which refers to this agent, is

expected to be a computer system term, and not (for example)

a generalized person reference which can be used outside the

network text message context.

Since the critical function served by the "Sender" field is

the identification of the agent responsible for sending mail

and since computer programs cannot be held accountable for

their behavior, is strongly recommended that when a computer

program generates a message, the HUMAN who is responsible for

that program be referenced as part of the "Sender" field

host-phrase.

c. Reply-To

This field provides a general mechanism for indicating any

mailbox(es) to which responses are to be sent. Three typical

uses for this feature can be distinguished. In the first

case, the author(s) may not have regular machine-based

mailboxes and therefore wish(es) to indicate an alternate

machine address. In the second case, an author may wish

additional persons to be made aware of, or responsible for,

responses; responders should send their replies to the

"Reply-To" mailbox(es) listed in the original message. A

somewhat different use may be of some help to "text message

teleconferencing" groups equipped with automatic distribution

services: include the address of that service in the

"Reply-To" field of all messages submitted to the

teleconference; then participants can "reply" to conference

submissions to guarantee the correct distribution of any

submission of their own.

Reply-To fields are NOT required to contain any machine

addresses (i.e., host-phrases). Note, however, that the

absence of even one valid network address will tend to

prevent software systems from automatically assisting users

in conveniently responding to mail.

NOTE: For systems which automatically generate address lists for

replies to messages, the following recommendations are made:

o The receiver, when replying to a message, should

NEVER automatically include the "Sender" host-phrase

in the reply's address list;

o If the "Reply-To" field exists, then the reply

should go ONLY to the addresses indicated in that

field and not to the addresses indicated in the

"From" field.

Standard for the Format of Text Messages 22

IV. Semantics

A. Address Fields

(Extensive examples are provided in Section V.) This

recommendation is intended only for originator-fields and is not

intended to suggest that replies should not also be sent to the

other recipients of this message. It is up to the respective

mail handling programs to decide what additional facilities will

be provided.

3. Receiver Fields

a. To

This field contains the identity of the primary recipients of

the message.

b. cc

This field contains the identity of the secondary recipients

of the message.

b. Bcc

This field contains the identity of additional recipients of

the message. The contents of this field are not included in

copies of the message sent to the primary and secondary

recipients. Some systems may choose to include the text of

the "Bcc" field only in the author(s)'s copy, while others

may also include it in the text sent to all those indicated

in the "Bcc" list.

B. REFERENCE SPECIFICATION FIELDS

1. Message-ID

This field contains a unique identifier (the phrase) which refers

to THIS version of THIS message. The uniqueness of the message

identifier is guaranteed by the host which generates it. This

identifier is intended to be machine readable and not necessarily

meaningful to humans. A message identifier pertains to exactly

one instantiation of a particular message; subsequent revisions

to the message should each receive a new message identifier.

2. In-Reply-To

The contents of this field identify previous correspondence which

this message answers. Note that if message identifiers are used

in this field, they must use the mach-id specification format.

Standard for the Format of Text Messages 23

IV. Semantics

B. Reference Specification Fields

3. References

The contents of this field identify other correspondence which

this message references. Note that if message identifiers

are used, they must use the mach-id specification format.

4. Keywords

This field contains keywords or phrases, separated by commas.

C. OTHER FIELDS AND SYNTACTIC ITEMS

1. Subject

The "Subject" field is intended to provide as much information as

necessary to adequately summarize or indicate the nature of the

message.

2. Comments

Permits adding text comments onto the message without disturbing

the contents of the message's body.

3. Extension-field

A relatively limited number of common fields have been defined in

this document. As network mail requirements dictate, additional

fields may be standardized. The authors of this document will

regulate the publishing of such definitions as extensions to the

basic specification.

4. User-defined-field

Individual users of network mail are free to define and use

additional header fields. Such fields must have names which are

not already used in the current specification or in any

definitions of extension-fields, and the overall syntax of these

user-defined-fields must conform to this specification's rules

for delimiting and folding fields. Due to the extension-field

publishing process, the name of a user-defined-field may be pre-

empted.

Standard for the Format of Text Messages 24

IV. Semantics

D. Dates

D. DATES AND TIMES

If included, day-of-week must be the day implied by the date

specification.

Time zone may be indicated in several ways. The military

standard uses a single character for each zone. "Z" is

Greenwhich Mean Time; "A" indicates one hour earlier, and "M"

indicates 12 hours earlier; "N" is one hour later, and "Y" is 12

hours later. The letter "J" is not used. The other remaining

two forms are taken from ANSI standard X3.51-1975. One allows

explicit indication of the amount of offset from GMT; the other

uses common 3-character strings for indicating time zones in

North America.

Standard for the Format of Text Messages 25

V. Examples

A. Addresses

V. EXAMPLES

A. ADDRESSES

1. Alfred E. Neuman <Neuman at BBN-TENEXA>

2. Neuman@BBN-TENEXA

These two "Alfred E. Neuman" examples have identical semantics,

as far as the operation of the local host's mail sending

(distribution) program (also sometimes called its "mailer") and

the remote host's FTP server are concerned. In the first

example, the "Alfred E. Neuman" is ignored by the mailer, as

"Neuman at BBN-TENEXA" completely specifies the recipient. The

second example contains no superfluous information, and, again,

"Neuman@BBN-TENEXA" is the intended recipient.

3. Al Neuman at BBN-TENEXA

This is identical to "Al Neuman <Al Neuman at BBN-TENEXA>". That

is, the full phrase, "Al Neuman", is passed to the FTP server.

Note that not all FTP servers accept multi-word identifiers; and

some that do accept them will treat each word as a different

addressee (in this case, attempting to send a copy of the message

to "Al" and a copy to "Neuman").

4. "George Lovell, Ted Hackle" <Shared-Mailbox at Office-1>

This form might be used to indicate that a single mailbox is

shared by several users. The quoted string is ignored by the

originating host's mailer, as "Shared-Mailbox at Office-1"

completely specifies the destination mailbox.

4. Wilt (the Stilt) Chamberlain at NBA

The "(the Stilt)" is a comment, which is NOT included in the

destination mailbox address handed to the originating system's

mailer. The address is the string "Wilt Chamberlain", with

exactly one space between the first and second words. (The

quotation marks are not included.)

Standard for the Format of Text Messages 26

V. Examples

B. Address Lists

B. ADDRESS LISTS

Gourmets: Pompous Person <WhoZiWhatZit at Cordon-Bleu>,

Cooks: Childs at WGBH, Galloping Gourmet at

ANT (Australian National Television);,

Wine Lovers: Cheapie at Discount-Liquors,

Port at Portugal;;,

Jones at SEA

This group list example points out the use of comments, the

nesting of groups, and the mixing of addresses and groups. Note

that the two consecutive semi-colons preceding "Jones at SEA"

mean that Jones is NOT a member of the Gourmets group.

C. ORIGINATOR ITEMS

1. Author-sent

George Jones logs into his Host as "Jones". He sends mail

himself.

From: Jones at Host

or

From: George Jones <Jones at Host>

2. Secretary-sent

George Jones logs in as Jones on his Host. His secretary, who

logs in as Secy on Shost sends mail for him. Replies to the mail

should go to George, of course.

From: George Jones <Jones at Host>

Sender: Secy at SHost

3. Shared Directory or unrepresentative directory-name

George Jones logs in as Group at Host. He sends mail himself;

replies should go to the Group mailbox.

From: George Jones <Group at Host>

Standard for the Format of Text Messages 27

V. Examples

C. Originator Items

4. Secretary-sent, for user of shared directory

George Jones' secretary sends mail for George in his capacity as

a member of Group while logged in as Secy at Host. Replies

should go to Group.

From: George Jones<Group at Host>

Sender: Secy at Host

Note that there need not be a space between "Jones" and the "<",

but adding a space enhances readability (as is the case in other

examples).

5. Secretary acting as full agent of author

George Jones asks his secretary (Secy at Host) to send a message

for him in his capacity as Group. He wants his secretary to

handle all replies.

From: George Jones <Group at Host>

Sender: Secy at Host

Reply-To: Secy at Host

6. Agent for user without online mailbox

A non-ARPANET user friend of George's, Sarah, is visting.

George's secretary sends some mail to a friend of Sarah in

computer-land. Replies should go to George, whose mailbox is

Jones at Host.

From: Sarah Friendly

Sender: Secy at Host

Reply-To: Jones at Host

7. Sent by member of a committee

George is a member of a committee. He wishes to have any replies

to his message go to all committee members.

From: George Jones

Sender: Jones at Host

Reply-To: Big-committee: Jones at Host,

Smith at Other-Host,

Doe at Somewhere-Else;

Note that if George had not included himself in the enumeration

of Big-committee, he would not have gotten an implicit reply; the

presence of the "Reply-to" field SUPERSEDES the sending of a

reply to the person named in the "From" field.

Standard for the Format of Text Messages 28

V. Examples

C. Originator Items

8. Example of INCORRECT use

George desires a reply to go to his secretary; therefore his

secretary leaves his mailbox address off the "From" field,

leaving only his name, which is not, itself, a mailbox address.

From: George Jones

Sender: Secy at SHost

THIS IS NOT PERMITTED. Replies are NEVER implicitly sent to the

"Sender"; George's secretary should have used the "Reply-To"

field, or the mail creating program should have forced the

secretary to.

9. Agent for member of a committee

George's secretary sends out a message which was authored jointly

by all the members of the "Big-committee".

From: Big-committee: Jones at Host,

Smith at Other-Host,

Doe at Somewhere-Else;

Sender: Secy at SHost

D. COMPLETE HEADERS

1. Minimum required:

Date: 26 August 1976 1429-EDT

From: Jones at Host

2. Using some of the additional fields:

Date: 26 August 1976 1430-EDT

From:George Jones<Group at Host>

Sender:Secy at SHOST

To:Al Neuman at Mad-Host,

Sam Irving at Other-Host

Message-ID: <some string at SHOST>

Standard for the Format of Text Messages 29

V. Examples

D. Complete Headers

3. About as complex as you're going to get:

Date : 27 Aug 1976 0932-PDT

From : Ken Davis <KDavis at Other-Host>

Subject : Re: The Syntax in the RFC

Sender : KSecy at Other-Host

Reply-To : Sam Irving at Other-Host

To : George Jones <Group at Host>,

Al Neuman at Mad-Host

cc : Important folk:

Tom Softwood <Balsa at Another-Host>,

Sam Irving at Other-Host;,

Standard Distribution::Include:

</main/davis/people/standard at Other-Host,

"<Jones>standard.dist.3" at Tops-20-Host>,

(The following Included Postal list is part

of Standard Distribution.)

:Postal::Include: Non-net-addrs@Other-host;,

:Postal: "Sam Irving, P.O. Box 001, Las Vegas,

Nevada" (So that he can stay

apprised of the situation)

Comment : Sam is away on business. He asked me to handle

his mail for him. He'll be able to provide a

more accurate explanation when he returns

next week.

In-Reply-To: <some string at SHOST>

Special (action): This is a sample of multi-word field-

names, using a range of characters. There

could also be a field-name "Special (info)".

Message-ID: <4231.629.XYzi-What at Other-Host>

Standard for the Format of Text Messages 31

Appendix

A. Alphabetical Listing of Syntax Rules

APPENDIX

A. ALPHABETICAL LISTING OF SYNTAX RULES

address = host-phrase / quoted-string

/ (*phrase "<" #address ">" )

/ (*phrase ":" #address ";" )

/ (":" ("Include" / "Postal" / atom) ":" address)

ALPHA = <any TELNET ASCII alphabetic character>

atom = 1*<any CHAR except specials and CTLs>

CHAR = <any TELNET ASCII character>

comment = "(" *(ctext / comment / quoted-pair) ")"

CR = <TELNET ASCII carriage return>

CRLF = CR LF

ctext = <any CHAR excluding "(", ")", CR, LF and

including linear-white-space>

CTL = <any TELNET ASCII control character and DEL>

date = 1*2DIGIT ["-"] month ["-"] (2DIGIT /4DIGIT)

date-field = "Date" ":" date-time

date-time = [ day-of-week "," ] date time

day-of-week = "Monday" / "Mon" / "Tuesday" / "Tue"

/ "Wednesday" / "Wed" / "Thursday" / "Thu"

/ "Friday" / "Fri" / "Saturday" / "Sat"

/ "Sunday" / "Sun"

delimiters = specials / comment / linear-white-space

DIGIT = <any TELNET ASCII digit>

extension-field = <Any field which is defined in a document

published as a formal extension to this

specification>

field = field-name ":" [ field-body ] CRLF

fields = date-field originator-fields *optional-field

field-body = field-body-contents

[CRLF LWSP-char field-body]

field-body-contents = <the TELNET ASCII characters making up the

field-body, as defined in the following sections,

and consisting of combinations of atom, quoted-

string, and specials tokens, or else consisting of

texts>

field-name = fnatom *(LWSP-char [fnatom])

fnatom = 1*<any CHAR, excluding CTLs, SPACE, and ":">

Standard for the Format of Text Messages 32

Appendix

A. Alphabetical Listing of Syntax Rules

host-indicator = 1*( ("at" / "@") node )

host-phrase = phrase host-indicator

hour = 2DIGIT [":"] 2DIGIT [ [":"] 2DIGIT ]

HTAB = <TELNET ASCII horizontal-tab>

LF = <TELNET ASCII linefeed>

linear-white-space = 1*([CRLF] LWSP-char)

LWSP-char = SPACE / HTAB

mach-id = "<" host-phrase ">"

mailbox = host-phrase / (phrase mach-id)

message = fields *(CRLF *text)

month = "January" / "Jan" / "February" / "Feb"

/ "March" / "Mar" / "April" / "Apr"

/ "May" / "June" / "Jun"

/ "July" / "Jul" / "August" / "Aug"

/ "September" / "Sep" / "October" / "Oct"

/ "November" / "Nov" / "December" / "Dec"

node = word / 1*DIGIT

optional-field =

"To" ":" #address

/ "cc" ":" #address

/ "bcc" ":" #address

/ "Subject" ":" *text

/ "Comments" ":" *text

/ "Message-ID" ":" mach-id

/ "In-Reply-To"":" #(phrase / mach-id)

/ "References" ":" #(phrase / mach-id)

/ "Keywords" ":" #phrase

/ extension-field

/ user-defined-field

originator-fields =

( "From" ":" mailbox

["Reply-To" ":" #address] )

/ ( "From" ":" 1#address

"Sender" ":" mailbox

["Reply-To" ":" #address] )

phrase = 1*word

quoted-pair = "\" CHAR

quoted-string = <"> *(qtext / quoted-pair) <">

qtext = <any CHAR except <">, CR, or LF and including

linear-white-space>

SPACE = <TELNET ASCII space>

specials = "(" / ")" / "<" / ">" / "@"/ "," / ";" / ":"

/ "\" / <">

text = <any CHAR, including bare CR and/or bare LF, but

NOT including CRLF>

Standard for the Format of Text Messages 33

Appendix

A. Alphabetical Listing of Syntax Rules

time = hour zone

user-defined-field = <Any field which has not been defined in

this specification or published as an extension to

this specification; names for such fields must be

unique and may be preempted by putlished

extensions>

word = atom / quoted-string

zone = ( ("+" / "-") 4DIGIT )

/ ( ["-"] (1ALPHA

/ "GMT" / "NST" / "AST" / "ADT" / "EST" / "EDT"

/ "CST" / "CDT" / "MST" / "MDT" / "PST" / "PDT"

/ "YST" / "YDT" / "HST" / "HDT" / "BST" / "BDT" ))

<"> = <TELNET ASCII quote mark>

Standard for the Format of Text Messages 35

Appendix

B. Simple Parsing

B. SIMPLE PARSING

Some mail-reading software systems may wish to perform only

minimal processing, ignoring the internal syntax of structured

field-bodies and treating them the same as unstructured-field-

bodies. Such software will need only to distinguish:

- Header fields from the message body,

- Beginnings of fields from lines which continue fields,

- Field-names from field-contents.

The abbreviated set of syntactic rules which follows will

suffice for this purpose. They describe a limited view of

messages and are a subset of the syntactic rules provided in the

main part of this specification. One small exception is that the

contents of field-bodies consist only of text:

SYNTAX:

message = *field *(CRLF *text)

field = field-name ":" [field-body] CRLF

field-name = fnatom *( LWSP-char [fnatom] )

fnatom = 1*<any CHAR, excluding CTLs, SPACE, and ":">

field-body = *text [CRLF LWSP-char field-body]

SEMANTICS:

Headers occur before the message body and are terminated by

a null line (i.e., two contiguous CRLFs).

A line which continues a header field begins with a SPACE or

HTAB character, while a line beginning a field starts with a

printable character which is not a colon.

A field-name consists of one or more printable characters

(excluding colon), each separated by one or more SPACES or HTABS.

A field-name MUST be contained on one line. Upper and lower case

are not distinguished when comparing field-names.

Standard for the Format of Text Messages 37

Bibliography

BIBLIOGRAPHY

ANSI. Representations of universal time, local time

differentials, and United States time zone references for

information interchange. ANSI X3.51-1975; American National

Standards Institute: New York, 1975.

Bhushan, A.K. The File Transfer Protocol. ARPANET Request for

Comments, No. 354, Network Information Center No. 10596;

Augmentation Research Center, Stanford Research Institute:

Menlo Park, July 1972.

Bhushan, A.K. Comments on the File Transfer Protocol. ARPANET

Request for Comments, No. 385, Network Information Center No.

11357; Augmentation Research Center, Stanford Research

Institute: Menlo Park, August 1972.

Bhushan, A.K., Pogran, K.T., Tomlinson, R.S., and White, J.E.

Standardizing Network Mail Headers. ARPANET Request for

Comments, No. 561, Network Information Center No. 18516;

Augmentation Research Center, Stanford Research Institute:

Menlo Park, September 1973.

Feinler, E.J. and Postel, J.B. ARPANET Protocol Handbook.

Network Information Center No. 7104; Augmentation Research

Center, Stanford Research Institute: Menlo Park, April 1976.

(NTIS AD A003890).

McKenzie, A. File Transfer Protocol. ARPANET Request for

Comments, No. 454, Network Information Center No. 14333;

Augmentation Research Center, Stanford Research Institute:

Menlo Park, February 1973.

McKenzie, A. TELNET Protocol Specification. Network Information

Center No. 18639; Augmentation Research Center, Stanford

Research Institute: Menlo Park, August 1973.

Myer, T.H. and Henderson, D.A. Message Transmission Protocol.

ARPANET Request for Comments, No. 680, Network Information

Center No. 32116; Augmentation Research Center, Stanford

Research Institute: Menlo Park, 1975.

Neigus, N. File Transfer Protocol. ARPANET Request for

Comments, No. 542, Network Information Center No. 17759;

Augmentation Research Center, Stanford Research Institute:

Menlo Park, July 1973.

Pogran, K., Vittal, J., Crocker, D. and Henderson, A. Proposed

official standard for the format of ARPA network messages.

Standard for the Format of Text Messages 38

Bibliography

ARPANET Request for Comments, No. 724, Network Information

Center No. 37435; Augmentation Research Center, Stanford

Research Institute: Menlo Park, May 1977.

Postel, J.B. Revised FTP Reply Codes. ARPANET Request for

Comments, No. 640, Network Information Center No. 30843;

Augmentation Research Center, Stanford Research Institute:

Menlo Park, June 1974.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有