RFC720 - Address Specification Syntax for Network Mail

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

Internet RFC/STD/FYI/BCP Archives

[ RFCIndex RFCSearch Usenet FAQs Web FAQs Documents Cities ]

Alternate Formats: rfc720.txt rfc720.txt.pdf

Comment on RFC720

RFC720 - Address Specification Syntax for Network Mail

Network Working Group D. Crocker (ISI)

Request for Comments: 720 Aug 1976

NIC #36337

References: RFC#680

Address Specification Syntax for Network Mail

EXPerience with processing mail on the Arpanet has pointed up many

addressing issues, including:

1. People's names are not the same as their addresses;

2. Mailing lists can get quite long;

3. To allow responding, messages often need to carry all of their

mailing list with them;

4. It would be very useful to be able to send mail to files other

than the person's primary mailbox.

The current mail syntax, specified in RFC680, does not provide a

convenient mechanism for distinguishing between a person's name and

their mailing address. In cases of shared Directories, the ATTN: clause

is marginally adequate; however it is completely inappropriate for

single-user mailboxes in which the address specification is simply

cryptic. CMU's identification tags are good examples of this problem,

since they tend to appear to be random character sequences; the use of

initials as tags also points up the problem. If you douBT the

referential ambiguity of addresses, then try to use only the information

presented, rather than random personal knowledge, to discern who

Micro@ISI, JFH@ISI, or Greep@ISD are. By having a formal syntax for

separately specifying names and addresses, mail display software can

printout out name lists which only contain human names...makes things

friendlier.

The problem with long mailing lists is that, if included in the text of

a message, they often are longer than the main part of the message.

Group names are allowed in address fields primarily to circumvent this

problem. However the advent of semi-automated message answering, in

which a receiver's message system prepares address lists for reply

messages by copying appropriate fields from the original message, makes

the current mechanism deficient: having the group name means that the

receiver does not have the names/addresses of the members of the group.

A convention is generally followed, now, which has the group name be a

pathname to the file containing the list. Though facilitative, this

does not represent an adequate solution.

And lastly is the issue of multiple mailboxes for a single user. This

feature is probably has the largest potential for teleconferencing

applications, with messages for an on-going discussion automatically

placed into a separate mailbox. In the case of shared directories, this

mechanism also would allow easy channeling into each person's own

mailbox.

-1-

With these needs in mind, and until a more robust mail syntax and

protocol is specified, the following general syntax is proposed to

augment the existing syntax specified in RFC680, for address fields

specified by the user:

Name:(Person(User-Id(Mailbox) at Host),...),; ...

Where

"Name" is the name of the mailing list; "Person" presumably is

the name of the person receiving the mail;

"User-Id" is their online reference name (usually their signon

directory);

"Mailbox" is a a secondary mailbox/file;

and the rest conforms to RFC680, although "@" may be used in

place of " at " in the specification.

Parentheses may be replaced by other bracketing pairs ([], {}, <>).

Quotation marks must be used any time the string contains ambiquating

characters, sUCh as space or parentheses. The brackets after Name are

used to request exclusion of the address list from the message, instead

using text which gives the pathname to the source of the list.

The formal syntax for address specification, within network mail

actually sent, is included in the next section.

Not all of a specification is required, so perhaps some examples will

clarify things:.

A normal specification, as used currently: Walker at ISI

A named list, to be carried with the message, with the last

address not a member of the list: List:Walker at

ISI,greep@rand-isd;Action@ISI

A named list, NOT to be carried with the message; the list

contents will be replaced with a text string indicating the source

of the list -- not very useful if the list is typed in by the

user, rather than pulled from a file; therefore

List:(Walker@ISI,greep at rand); Action at ISi will be changed to

appear in the message as List:("/rnd/dcrocker/mail.list"); Action

at ISI

A list with personal names. separate from addresses: "Steve

Walker"[Walker at ISI], Bob<rha@isd>

A teleconferencing address list:

Talkers:"Dave C"(DCrocker(TC.msg)@isi),...;

-2-

Formal Specification

--------------------

The following modified BNF is to serve as a direct

addition/replacement for specifications within RFC680. The fields

eliminated from the existing specification are: <addressee item>,

<address list>, <addressee>, <mailbox>, <host spec>, <attention spec>.

<user list>, <mailbox group>, <group numbers>, and <mailbox list>.

<Attention spec> can be performed through use of the person's name

and secondary file specification. Also, <Sender> should be modified

to be::

Sender = "SENDER: " Individual

And the added fields are:

Address-Field = Address-List / Address-List ,,:,

Address-Field

Address-List = Individual-List / Group-List

Group-List = Group-Name Group-Members

Group-Name = / Name ":"

Group-Members = Individual-List / L-Bracket Pathname

R-Bracket

Pathname = {A Name which can at least provide a

human with enough information to find

the file containing the Group-List}

Individual-List = Individual / Individual

Individual-List

Address Specification Syntax for Network Mail

Individual = Mailbox / Name L-Bracket Mailbox

R-Bracket

L-Bracket = "(" / "[" / "{" / "<"

R-Bracket = ")" / "]" / "}" / ">"

Mailbox = Id Secondary-File At Host

Id = Name

At = "" at "" / "@"

Host = {An acceptable host name}

-3-

Secondary-File = / L-Bracket Filename R-Bracket

Filename = Name

Name = {An Ascii string without carriage

return, line feed, space, '"', ",",

";", or any L-Bracket or R-Bracket} /

'"' {An Ascii string with any double

quotation marks doubled} '"'

The particular L-Bracket and R-Bracket characters used must match

each other. The requirement for quotation marks has been made more

severe than absolutely necessary in order to simplify software

requirments. Note also that the above specified syntax is for

inter-entity communications and is not necessarily indicative of what

the user types.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航