Network Working Group Request for Comments: 806 Proposed Federal Information Processing Standard SPECIFICATION FOR MESSAGE FORMAT FOR COMPUTER BASED MESSAGE SYSTEMS National Bureau of Standards Institute for Computer Sciences and Technology September 1981
TABLE OF CONTENTS Page EXECUTIVE SUMMARY 1 1. INTRODUCTION 3 1.1 Guide to Reading This Document 3 1.2 Vendor-Defined Extensions to the Specification 4 1.3 The Scope of the Message Format Specification 4 1.4 Issues Not Within the Scope of the Message Format 4 Specification 1.5 Relationship to Other Efforts 5 2. A SIMPLE MODEL OF A CBMS ENVIRONMENT 6 2.1 Logical Model of a CBMS 8 2.2 Relationship to the ISO Reference Model for Open 10 Systems Interconnection 2.3 Messages and Fields 10 2.4 Message Originators and Recipients 11 3. SEMANTICS 12 3.1 Semantics of Message Fields 12 3.1.1 Types of fields 12 3.1.2 Semantic Compliance Categories 13 3.1.3 Originator fields 13 3.1.4 Recipient fields 14 3.1.5 Date fields 15 3.1.6 Cross-reference fields 16 3.1.7 Message-handling fields 16 3.1.8 Message-content fields 17 3.1.9 Extensions 18
3.2 Message Processing Functions 18 3.2.1 Message creation and posting 19 3.2.2 Message reissuing and forwarding 20 18.104.22.168 Redistribution 22 22.214.171.124 Assignment 22 3.2.3 Reply generation 23 3.2.4 Cross referencing 24 126.96.36.199 Unique identifiers 24 188.8.131.52 Serial numbering 24 3.2.5 Life span functions 25 3.2.6 Requests for recipient processing 25 184.108.40.206 Message circulation 26 3.3 Multiple Occurrences and Ordering of Fields 26 4. SYNTAX 28 4.1 Introduction 28 4.1.1 Message structure 28 4.1.2 Data elements 29 220.127.116.11 Primitive data elements 30 18.104.22.168 Constructor data elements 30 4.1.3 Properties 30 22.214.171.124 Printing-names 30 126.96.36.199 Comments 31 4.1.4 Data compression and encryption 31 4.1.5 Data sharing 31 4.2 Overview of Syntax Encoding 32 4.2.1 Identifier Octets 32 4.2.2 Length code and Qualifier components 33 188.8.131.52 Length Codes 35 184.108.40.206 Qualifier 36 4.2.3 Property-List 38 4.2.4 Data Element Contents 38 4.3 Data Element Syntax 39 4.3.1 Data elements 39 220.127.116.11 Primitives 42 18.104.22.168 Constructors 44 4.3.2 Using data elements within message fields 48 4.3.3 Properties and associated elements 49 4.3.4 Encryption identifiers 49 4.3.5 Compression identifiers 49 4.3.6 Message types 50 SUMMARY OF APPENDIXES 51
APPENDIX A. FIELDS -- IMPLEMENTORS' MASTER REFERENCE 52 APPENDIX B. DATA ELEMENTS -- IMPLEMENTORS' MASTER REFERENCE 57 APPENDIX C. DATA ELEMENT IDENTIFIER OCTETS 65 APPENDIX D. SUMMARY OF MESSAGE FIELDS BY COMPLIANCE 66 CATEGORY D.1 REQUIRED Fields 66 D.2 BASIC Fields 66 D.3 OPTIONAL Fields 66 APPENDIX E. SUMMARY OF MESSAGE SEMANTICS BY FUNCTION 68 E.1 Circulation 68 E.2 Cross Referencing 68 E.3 Life spans 68 E.4 Delivery System 68 E.5 Miscellaneous Fields Used Generally 69 E.6 Reply Generation 69 E.7 Reissuing 69 E.8 Sending (Normal Transmission) 69 APPENDIX F. SUMMARY OF DATA ELEMENT SYNTAX 70 APPENDIX G. SUMMARY OF DATA ELEMENTS BY COMPLIANCE CATEGORY 72 G.1 BASIC Data Elements 72 G.2 OPTIONAL Data Elements 72 APPENDIX H. EXAMPLES 74
H.1 Primitive Data Elements 74 H.2 Constructor Data Elements 76 H.3 Fields 81 H.4 Messages 84 H.5 Unknown Lengths 88 REFERENCES 92 INDEX 94
LIST OF FIGURES FIG. 1. LOGICAL MODEL OF A COMPUTER BASED MESSAGE SYSTEM 8 FIG. 2. MESSAGE FORWARDING AND REDISTRIBUTION 21 FIG. 3. EXAMPLE OF MESSAGE CIRCULATION 27 FIG. 4. STRUCTURE OF IDENTIFIER OCTETS 34 FIG. 5. ENCODING MECHANISM FOR QUALIFIERS AND LENGTH 35 CODES FIG. 6. REPRESENTATION OF LENGTH CODES 36 FIG. 7. EXAMPLES OF LENGTH CODES 37 FIG. 8. EXAMPLES OF QUALIFIER VALUES 38
LIST OF TABLES TABLE 1. FIELDS USED IN MESSAGE PROCESSING FUNCTIONS 19 TABLE 2. TYPE BITS IN THE IDENTIFIER OCTET 33
EXECUTIVE SUMMARY The message format specification addresses the problem of exchanging messages between different computer-based message systems (CBMSs). This interchange problem can be addressed on several levels. One level specifies the physical interconnections, another specifies how information travels between CBMSs, another specifies form and meaning of messages being interchanged. The highest level specifies operations on a message. Each of these levels would be covered by a different standard. This message format specification addresses only the issues of form and meaning of messages at the points in time when they are sent from one CBMS and received by another. Messages are composed of fields, containing different classes of information. These fields contain information about the message originator, message recipient, subject matter, precedence and security, and references to previous messages, as well as the text of the message. Standard formats (syntax) for messages ensure that the contents of messages generated by one CBMS can be processed by another CBMS. Standard meanings (sematics) for the components of a message ensure standard interpretation of a message, so that everyone receiving a message gets the meaning intended by its sender. Each CBMS that implements this message format specification will be compatible with any other CBMS that implements the specification. Compatibility ensures that the contents of a message posted by one CBMS can be received and interpreted by a different CBMS. This message format specification has been developed as a result of examining CBMSs currently in use in commercial and research environments. Three major design perspectives helped shape the message format specification. o Viability. The message format specification uses concepts that already work. It has been designed with implementation concerns in mind. o Compatibility. The message format specification contains concepts from existing CBMSs. For this reason, many CBMS would already contain functions and components similar to those required to implement the message format specification.
o Extensibility. This message format specification defines a broad range of message content components and requires only an elementary subset of them. This means that even a very simple CBMS can implement the message format specification. The message format specification contains a rich set of optional components and, in addition, mechanisms for user extensions and future extensions to the message format specification. The message format specification defines the form and meaning of message contents and their components as they pass from one CBMS to another through a message transfer system. The message format specification does not address any of the following major issues. o Functions or services provided to a user by a CBMS. For example, the message format specification assumes that every CBMS allows a user to send and receive messages. It does not specify any of the details of how a send function or a message-reading function might work or how it might appear to the user. That is, the message format specification neither limits nor mandates functions. o Storage or format of message contents in a CBMS. The message format specification defines the form and contents of messages when they are transferred between systems. A CBMS may or may not choose to use the same format for internal storage. o Message transfer system protocols. The message format specification does not specify how a message travels between CBMSs. It does specify the form of its contents as it leaves and arrives, assuming only that the message is moved transparently by the transfer system. o Message envelopes. While a message is traveling between CBMSs, it is enclosed in a message envelope. Message envelopes contain all the information about a message that a message transfer system needs to know. The message format specification does not define the format or content of a message envelope. o How message originators and recipients are identified. The message format specification does not provide a representation scheme for the names or addresses of message originators and recipients as they are known to a CBMS.
1. INTRODUCTION A computer-based message system (CBMS) allows communication between "entities" (usually people) using computers. Computers serve both to mediate the actual communications between systems and to provide users with facilities for creating and reading the messages. CBMSs have been developing for over ten years. More recently, CBMSs have been one of the bases in industry for the introduction of office automation. A growing number of organizations use either their own or a commercially available CBMS. The design and complexity of these systems vary widely. This message format specification provides a basis for interaction between different CBMSs by defining the format of messages passed between them. 1.1 Guide to Reading This Document The method of presenting the material in this specification is to combine the technical specification with tutorial information. This approach has been taken to place the specification in context and improve its readability. The core of the technical information in the document is in Section 2 "A Simple Model of a CBMS Environment", Section 3.1 "Semantics of Message Fields", Section 4.2 "Overview of Syntax Encoding", and Section 4.3 "Data Element Syntax". Appendixes A and B consolidate the technical informations. These appendices are designed for ease of reference and should be read in conjunction with the body of the report for a complete understanding of the message format presented in the specification. Section 2 presents a simple model of operation of a CBMS. Section 3 discusses the components of messages and their meaning (semantics). This includes discussions of the recommended relationship between message components and CBMS user functions. (See Section 3.2.) Section 4 presents details of the form (syntax) required for components of a message. Appendix D summarizes the components of messages according to whether they are required or optional for CBMSs implementing the message format specification. Appendix E organizes the message components according to the functional class of the components. Appendix F provides an overview of the syntactic elements defined by this message format specification; Appendix G
summarizes those elements according to whether they are required or optional for a CBMS implementing the message format specification. Examples of each syntactic element appear in Appendix H, displaying syntax and describing the associated semantics. 1.2 Vendor-Defined Extensions to the Specification This specification provides the capability of extending the range of functionality by the use of vendor-defined qualifiers and vendor-defined data elements. Any vendor who uses this capability to provide services which are essentially equivalent to those already designated as required, basic, or optional does not comply with the specification. 1.3 The Scope of the Message Format Specification The purpose of this message format specification is to present the semantics and syntax to be used for messages being exchanged between CBMSs. Specifically, it defines the following. o The meaning and form of standard fields to be used in messages. o Which fields must be present in all messages. o Which fields complying CBMSs must be able to process. o How messages, fields, and the data contained in fields are represented. 1.4 Issues Not Within the Scope of the Message Format Specification The message format specification does not address the following issues, some of which are being covered by other NBS standards developments. (See [BlaR-80] for a description of the NBS protocols program.) o The nature of a message transfer system, except to state the assumption that it transfers messages transparently.
o The form or nature of the protocols used to transfer messages (posting, relay, and delivery protocols). o The content and representation of message envelopes. o Representations for unique identifiers (in particular, message identifiers). o Network and internetwork addressing. o Representations for identities of message originators and recipients. o Functions that CBMSs provide for users. o Presentation of messages to users. o Representations for multi-media objects. o Data representation for messages within CBMSs. o Data sharing or any storage management within CBMSs. o Representations for fixed or floating point numbers. 1.5 Relationship to Other Efforts The message format specification is based on several documents and the current state of many CBMSs available both in industry and the research community. These documents include the standardization efforts in the ARPANet [CroD-77, PosJ-79] and the CCITT, proposed ISO and ANSI header format standards [TasG- 80, ISOD-79], the work of IFIPS Working Group 6.5, and various papers about the general nature of mail systems, addressing, and mail delivery. (See [FeiE-79] for references.
2. A SIMPLE MODEL OF A CBMS ENVIRONMENT In order to provide a framework for presenting the message format specification, this section describes a simple functional model for a CBMS. The model provides a high-level description of both user facilities and system architecture. Discussions of messages, message originators and message recipients serve to further clarify the nature of a CBMS. A CBMS permits the transfer of a message from an originator to a recipient. "Originator" and "recipient" are used in their normal English senses. (See Section 2.4.) A message (in its most abstract definition) is simply a unit of communication from an originator to a recipient. A CBMS offers several classes of functions to its users: o Message Creation: The facilities used by a message originator to create messages and specify to whom they are to be sent. o Message Transfer: The facilities used to convey a message to its recipient(s). o Recipient Processing: The facilities used by a message recipient to process messages that have arrived. These classes of functions are presented in more detail in Section 3.2. CBMSs differ from other office automation/communications systems in a number of ways. o Unlike other types of electronic communications, CBMS messages are sent to particular individuals, not to stations or telephone sets. If a recipient moves to a different location, messages sent to that recipient are delivered to the recipient at the new location. o Transmission of CBMS messages is asynchronous. The recipient's system need not be available when the message leaves the originator's system. That is, CBMS message transfer facilities are store-and-forward. o CBMS messages can contain a wide variety of data. They are not constrained to any single kind of communication. CBMS messages are often simple memoranda but are not restricted to text. A CBMS message may contain any kind
of data that an originator wishes to send to a recipient. By contrast, Teletex systems and communicating word processors handle the transfer of final form documents; compatible communicating word processors can exchange documents in editable form; Telex and TWX deal in unformatted text. o CBMSs offer message creation facilities as an important part of the system. CBMSs assist users in the preparation of messages by having text editing facilities available and allowing users to include data stored on-line in messages. Some CBMSs also interface to other office automation facilities, such as formatters and spelling correctors. This is not true of Telex, TWX, or similar services. o CBMSs offer recipient processing facilities as an important part of the system. This is not true of most other forms of electronic communications. For example, Telex and TWX systems simply print messages on paper when they are received, without retaining a copy in the system. (Teletex systems are similar to Telex systems, but some can retain a copy of the document in local storage.) Communicating word processors might notify their operators that a document has been received and is stored on-line, but offer little in the way of other recipient processing facilities. Most CBMSs offer at least the following recipient processing facilities. . The ability to retain a copy of a message on-line after it has been read. . The ability to examine or delete stored messages individually. . The ability to organize messages using some form of electronic "file folder". . The ability to determine if a message is recent (has arrived since the last time the recipient used the CBMS) or unseen (has never been examined by the recipient). . The ability to summarize stored messages. A summary usually includes information such as whether the message is recent or unseen, when it was received, its length, who it is from, and its subject. . The ability to retrieve a stored message based upon
one or more of its attributes (for example, when the message was received, whether or not it has been seen or deleted, and the values contained in its fields). . A forward facility that allows users to include all or part of a message in a new outgoing message. . A reply facility that allows users to answer messages without having to enter a new list of recipients. 2.1 Logical Model of a CBMS CBMS facilities for message creation, transfer, and recipient processing are reflected in a logical model of a CBMS developed by IFIP Working Group 6.5 [SchP-79]. (An essentially identical model is being used by CCITT Study Group VII, Question 5, regarding Message Handling Facilities.) The model consists of a Message Transfer System and a number of User Agents. (See Figure 1.) | | | ************* | ********* ------> * Message * -------> ********* * User * Posting * Transfer * Delivery * User * * Agent * Protocol * System * Protocol * Agent * ********* <------- ************* <------- ********* | | | | Posting Delivery Slot Slot Message Flow Originator --------------------------------> Recipient FIG. 1. LOGICAL MODEL OF A COMPUTER BASED MESSAGE SYSTEM A User Agent is a functional entity that acts on behalf of a user, assisting with creating and processing messages and communicating with the Message Transfer System. The Message Transfer System] is an entity that accepts a
message from its originator's User Agent and ultimately passes it to each of its recipients' User Agents. The Message Transfer System may perform routing and storage functions (among others) in order to accomplish its task. Transferring a message from an originator's User Agent to the Message Transfer System is called Posting; the originator's User Agent and Message Transfer System engage in a Posting Protocol in order to accomplish Posting. Transferring a message from the Message Transfer System to a recipient's User Agent is called Delivery; the recipient's User Agent and Message Transfer System engage in a Delivery Protocol in order to accomplish Delivery. The point at which responsibility for a message is transferred is called a Slot. The Posting Slot is the point at which responsibility for a message passes from an originator's User Agent to the Message Transfer System; the Delivery Slot is the point at which responsibility for a message passes from the Message Transfer System to a recipient's User Agent. The model divides messages into two parts, the message content and the message envelope. The message content is the information that the originator wishes to send to the recipient; this message format specification deals solely with the message content. The message envelope consists of all the information necessary for the Message Transfer System to do its job; this message format specification does not specify the message envelope. Some of the data appearing on the message envelope could be redundant with some data found in the message content. The Message Transfer System is not expected to examine the message content unless it is told to do so by the originator's or recipient's User Agent. This message format specification places no restrictions on the Message Transfer System itself, except that it be transparent to the contents of messages. In addition, this message format specification does not dictate the form or nature of any protocol used by the Message Transfer System. Finally, this message format specification does not specify the content or form of the message envelope. That is, the message format specification defines the format for the contents of messages, not the manner in which they are transmitted. Many of today's commercially available CBMSs incorporate all of the facilities represented in the logical model. Their architectures may reflect the economies that can be taken when implementing systems that are self-contained. For example, stand-alone systems that store messages in a single central database require no Message Transfer System; an implementation may integrate software for User Agent and Message Transfer System functions, doing away with Posting or Delivery Protocols.
2.2 Relationship to the ISO Reference Model for Open Systems Interconnection Subcommittee TC97/SC16 of the International Standards Organization (ISO) has developed a reference model for describing communications between "open" systems [ISOD-81]. This model is known as the ISO Reference Model for Open Systems Interconnection (OSI). It divides communications protocols into seven layers, ranging from physical interconnection at the lowest layer to data exchange by application programs at the top. This message format specification deals with data used by an application within a system. Thus, the message format being specified here is not a protocol. Since it is not a protocol, it lies outside of the model for open systems interconnection. User Agents are application layer entities (layer 7), however, and the protocols used by a message transfer system are above the session layer (layer 5). 2.3 Messages and Fields A message is a unit of communication from an originator to a recipient. A message consists of a series of components called fields. Fields can be described according to their meaning in a message (semantics) and according to the format required for them in a message (syntax). Semantically, a field is just a component of a message; the meanings of particular fields are defined by this message format specification. Syntactically, a field is a unit of data whose form is defined by this message format specification. Additional fields can be defined by users or vendors as long as they conform to the syntactic and semantic rules that this message format specification defines for additional fields. (A note on terminology: A message consists of components called fields. The words "message" and "field" are used both in the informal sense of the previous sentence and in a more restricted sense as names of particular syntactic elements. As syntactic element names, Message and Field are always capitalized.) Some CBMS functions are based on the contents of particular fields; other functions (such as the ability to read a message) may have little to do with the fields themselves. Section 3.2 discusses some of the specific functions that a CBMS might provide to users and the fields that must be used to support those functions.
2.4 Message Originators and Recipients This message format specification refers to message originators and recipients. These terms were defined functionally in Figure 1. When the message format specification refers to the identity of a message originator or recipient, it means "that information which uniquely identifies the message originator or recipient within the domain of the given message system." The syntax and semantics of message addressing are not within the scope of the message format specification. Originators and Recipients can be people, roles, or processes. People. People as originators and recipients are specific individuals. Roles. Roles identify functions within organizations as opposed to the specific individuals who perform them. For example, consider a newspaper that produces both morning and evening editions and therefore operates with more than one shift. Someone wishing to contact the city desk would send a message to the city desk role rather than trying to determine exactly who was assigned to the city desk at a specific time. (Of course, messages can usually be sent to the individuals directly whether or not they are actually performing a role at the time.) Processes. A process in a computer could serve as either an originator or a recipient for messages. A computer system might originate a message to notify a recipient about the status of some task. For example, an archive utility could notify users about files that have been archived; a distributed file system could notify a user that a remote file has been deposited on a local file system. Messages could be used by computer systems to warn about some impending condition or even to monitor the performance of the computer itself. Some computer processes may also be message recipients, taking action based upon message contents. In addition, some CBMSs allow messages to be sent to groups. A group is a predefined list of message recipients. Using a group name as a recipient permits message originators to designate a potentially large number of recipients using a single recipient identifier. This makes using the CBMS more convenient and accurate.
3. SEMANTICS This section discusses two major topics, message processing functions and message field meanings. Section 3.1 describes the six functional groups of message fields. The functional groups are Origination, Dates, Recipients, Cross-referencing, Message- handling, and Message-contents. They are explained more fully in Section 3.1.1, along with detailed discussion of the semantics of all the fields in each functional group. Section 3.2 describes message processing functions whose operation is based on the meanings of particular message fields. 3.1 Semantics of Message Fields The definition of a message is discussed generally in Sections 1 and 2. Semantically valid messages must contain one From field, one To field, and one Posted-Date field. They may contain, in addition, any number of other fields, depending on the processing and functions supplied by the originating or receiving CBMS. (Section 3.2 describes classes of functions supplied by CBMSs.) 3.1.1 Types of fields Message receiving programs are required to interpret fields according to the semantics described in the remainder of this se. The message fields defined in this document are grouped into the following functional categories. o Originator fields indicate who or what participated in the creation of the message and where replies should be directed. (See Section 3.1.3.) o Date fields record when events take place, for a variety events, such as message creation or expiration. (See Section 3.1.5.) o Recipient fields indicate who or what is intended to receive a message. (See Section 3.1.4.) o Cross-reference fields label a message or refer to other messages. (See Section 3.1.6.) o Message-handling fields record the type of service a
message's sender requested of a message transfer system or indicate how the message should be treated by its recipients. (See Section 3.1.7.) o Message-content fields either contain the primary content of a message or index or summarize it. (See Section 3.1.8.) o Extension fields provide mechanisms for extending the message format specification. (See Section 3.1.9.) 3.1.2 Semantic Compliance Categories For purposes of determining whether a CBMS complies with the semantic requirements of this message format specification, message fields have been divided into three categories: REQUIRED These fields must be present in all messages and must be processed by message receiving programs as defined by the message format specification. BASIC These fields need not be present in all messages but when they do appear they must be processed by message receiving programs as defined by the message format specification. OPTIONAL These fields need not be present in all messages and may be ignored by message receiving programs. The exact meaning of "ignored" is not specified by the message format specification. In general, a CBMS must recognize the existence of an optional field (that is, optional fields should not cause errors) and must not process the field in a manner contrary to the semantics defined for that field by the message format specification. (Syntactic compliance is defined in Section 4.1.2.) 3.1.3 Originator fields A message originator may be a person, role, or process. Originator fields identify a message's author, who is responsible for the message, who or what sent it, and where any replies should be directed. (See Section 2.4.)
From (REQUIRED) This field contains the identity of the originator(s) taking formal responsibility for this message. The contents of the From field is to be used for replies when no Reply-to field appears in a message. Reply-To (BASIC) This field identifies any recipients of replies to the message. Author (OPTIONAL) This field identifies the individual(s) who wrote the primary contents of the message. Use of the Author is discouraged when the contents of the Author field and the From field would be completely redundant. Sender (OPTIONAL) This field identifies the agent who sent the message. It is used either when the sender is not the originator responsible for the message or to indicate who among a group of originators responsible for the message actually sent it. Use of the Sender field is discouraged when the contents of the Sender field and From field would be completely redundant. Only one Sender field is permitted in a message. 3.1.4 Recipient fields Message recipients may be people, roles, or processes. (See Section 2.4). Recipient fields identify who or what is to receive the message. To (REQUIRED) This field identifies the primary recipients of a message. Bcc (OPTIONAL) This field identifies additional recipients of a message (a "blind carbon copies" list). The contents of this field are not to be included in copies of the message sent to the primary and secondary recipients. See section 3.2.1 for further discussion of the use of blind carbon copies lists. Cc (BASIC) This field identifies secondary recipients of a message (a "carbon copies" list).
Circulate-Next (OPTIONAL) This field is used in conjunction with the Circulate-To field. (See Section 22.214.171.124.) It identifies all recipients in a circulation list who have not received the message. Circulate-To (OPTIONAL) This field identifies recipients of a circulated message. (See Section 126.96.36.199.) It is used in conjunction with the Circulate-Next field. 3.1.5 Date fields Date fields for two kinds of uses are provided. Dates can be associated with some event in the history of a message and dates can delimit the span of time during which the message is meaningful (its life span). Posted-Date (REQUIRED) This field contains the posting date, which is the point in time when the message passes through the posting slot into a message transfer system. Only one Posted-Date field is permitted in a message. Date (OPTIONAL) This field contains a date that the message's originator wishes to associate with a message. The Date field is to the Posted-Date field as the date on a letter is to the postmark added by the post office. End-Date (OPTIONAL) This field contains the date on which a message loses effect. (See also Section 3.2.5.) Received-Date (OPTIONAL) Delivery date. This field may be added to a message by the recipient's message receiving program. It indicates when the message left the delivery system and entered the recipient's message processing domain. Start-Date (OPTIONAL) This field contains the date on which a message takes effect. (See also Section 3.2.5.) Warning-Date (OPTIONAL) This field is used either alone or in conjunction with an End-Date field. It contains one or more dates. These dates could be used by a message processing
program as warnings of an impending end-date or other event. (See also Section 3.2.5.) 3.1.6 Cross-reference fields Cross reference fields can be used to identify a message and to provide cross references to other messages. (See Section 3.2.4.) In-Reply-To (OPTIONAL) This field designates previous correspondence to which this message is a reply. The usual contents of this field would be the contents of the Message-ID field of the message(s) being replied to. Message-ID (OPTIONAL) This field contains a unique identifier for a message. This identifier is intended for machine generation and processing. Further definition appears in Section 188.8.131.52. Only one Message-ID field is permitted in a message. Obsoletes (OPTIONAL) This field identifies one or more messages that this one supplants. Originator-Serial-Number (OPTIONAL) This field contains one or more serial numbers assigned by the message's originator. Messages with multiple recipients should have the same value in the Originator-Serial-Number field. References (OPTIONAL) This field identifies other correspondence that this message references. If the other correspondence contains a Message-ID field, the contents of the References field must be the message identifier. 3.1.7 Message-handling fields Message-handling fields describe aspects of how a message is to be handled or categorized. Precedence (OPTIONAL) This field indicates the precedence at which the message was posted. Ordinarily, message precedence or priority is a service request to a message transfer
system. A message originator, however, can include precedence information in a message. One example of precedence categories are those used by the U.S. Military: "ROUTINE", "PRIORITY", "IMMEDIATE", "FLASH OVERRIDE", and "EMERGENCY COMMAND PRECEDENCE". Message-Class (OPTIONAL) This field indicates the purpose of a message. For example, it might contain values indicating that the 1 message is a memorandum or a data-base entry. Reissue-Type (OPTIONAL) This field is used in conjunction with message encapsulating (see Section 2.4.1) to differentiate between messages being assigned or redistributed. Received-From (OPTIONAL) This field contains a record of a message's path through a message transfer system. The recipient's message receiving program could store here any information about the transfer that it obtained from a message transfer system. 3.1.8 Message-content fields The intent of most messages is to communicate some particular information from originator to recipient. Several fields in a message are designed to contain that information. Subject (BASIC) This field contains any information the originator provided to summarize or indicate the nature of the message. Text (BASIC) This field contains the primary content of the message. Attachments (OPTIONAL) This field contains additional data accompanying a message. It is similar in intent to enclosures in a conventional mail system. _______________ 1 The message format specification is not intended to be used as a specification for exchanging data-base records. Messages, however, sometimes contain data from or for a database.
Comments (OPTIONAL) This field permits adding comments to the message without disturbing the original contents of the message. Keywords (OPTIONAL) This field contains keywords or phrases for use in retrieving a message. 3.1.9 Extensions This message format specification allows two additional types of fields, vendor-defined fields and as-yet-undefined (extension) fields that will be introduced by extensions to this message format specification. vendor-defined-field Any field not defined in this message format specification or any extension or successor to it is a vendor-defined field. Names for vendor-defined fields could be preempted by extensions to this message format specification. extension-field Any field that is defined in a document published as a formal extension or replacement to this message format specification. 3.2 Message Processing Functions A CBMS provides three basic classes of functions, creating messages, transmitting messages to their recipient, and post- receipt processing. Although the message format specification does not define the number or nature of user functions in CBMSs, the meanings for the fields clearly assume certain kinds of functions. For example, fields specifying recipients of replies to messages assume some kind of reply function; fields specifying message life span assume some kind of date processing functions. This section provides more detail on the processing that might be done by these kinds of functions, discussing the message fields that would be used and how they would be used. (See summary in Table 1.)
Processing Function Fields Involved Message creation Author, From, Sender, To, and posting Cc, Bcc Message reissuing Reissue-Type Reply generation Reply-To Cross-referencing Message-ID, In-Reply-To, References, Obsoletes, Originator-Serial-Number Life span functions Start-Date, End-Date, Warning-Date Recipient processing Circulate-To, Circulate-Next TABLE 1. FIELDS USED IN MESSAGE PROCESSING FUNCTIONS 3.2.1 Message creation and posting Messages can be created either by reissuing an existing message to a new recipient (see Section 2.4.1) or by creating a new message. The process of message creation might mean that some fields of a new message are filled in from the contents of some other message. Reply functions (Section 3.2.3) provide an example of this. Different individuals could be involved in different phases of originating a message: creating it, taking responsibility for it, and explicitly interacting with a CBMS to send it to its recipient. One or more individuals may create (that is, write, but not necessarily enter into the CBMS) a message; they are said to be the message's authors, identified by the Author field. One or more individuals may take responsibility for its contents and the decision to post it; they are identified by the From field. One individual explicitly posts a given message; this person is called the message's sender (identified by the Sender field). The sender and author(s) are often, but not always, responsible for the message. A common case in which the sender is not responsible for the message is when a secretary enters and posts messages for someone else. An example of a situation in which a message's author is not responsible for the message itself is when an administrative assistant prepares a report that is sent under a manager's signature. Messages containing Bcc fields are treated specially by CBMSs. The contents of this field are not included in copies of the message sent to the recipients designated in the To and Cc fields. Some systems include the contents of the Bcc field only
in the originator's copy, others include include all or part of the Bcc field in the copies sent to the recipients indicated in the Bcc field. This specification does not mandate how the Bcc field is to be treated. Audit trail entries (such as the posting time and sender identity) are automatically appended to a message by the CBMS each time the message passes through a posting slot to a message transfer system; a message transfer system could also provide timestamps at each transfer between user agent and the transfer system. A message identifier (Sections 3.2.4 and 3.1.6), placed in the message by the original sender's User Agent, is preserved throughout this message flow. This means that when the same message is sent twice to the same recipients by the same Sender, the audit trail information for the two messages is different. 3.2.2 Message reissuing and forwarding Reissuing and forwarding both serve the general user goal of passing a message on to a new set of recipients. Forwarding is the term used for an informal mechanism, which CBMSs implement by copying some or all of the original message into the contents of a field in the new message. Reissuing is the term used for a formal mechanism to ensure that the message being passed on never loses its integrity as a previously sent message. CBMSs use reissuing to implement several different functions, depending on the purposes being served. o Redistribution. Make others aware of the complete and unaltered contents of the message. o Assignment. Delegate the responsibility for a message to somebody else. These purposes are exemplified in Figure 2. When a CBMS examines a forwarded message, it cannot always distinguish the old message from what was added when the forwarding took place. In addition, the forwarded information might no longer have the form of a message. This is usually because the format of the message has been changed (for example, to pure unformatted text). (See Figure 2 for an example of how a CBMS might forward a message.) In contrast, a reissued message can always be separated from its enclosing message and never loses its identity as a correctly formed message. This specification provides the Reissue-Type field for
The Original Message John Doe wishes Jane Jones to get a copy of the following message: Message: Field: From "Jean Smith" Field: Posted-Date "15 June 1980" Field: To "John Doe" Field: Subject "Next sales meeting" Field: Text "The agenda for ..." Redistribution Message: Field: From "John Doe" John Doe is responsible Field: Posted-Date "16 June 1980" for the redistribution. Field: To "Jane Jones" Field: Reissue-Type "Redistribution" This message directly Message: incorporates a Field: From "Jean Smith" redistributed message. Field: Posted-Date "15 June 1980" Field: To "John Doe" Field: Subject "Next Sales Meeting" Field: Text "The agenda for ..." Forwarding Message: Field: From "John Doe" Field: Posted-Date "16 June 1980" Field: To "Jane Jones" Field: Text A realization of the "From Jean Smith original message is To John Doe copied into the Text field. Sent on 15 June 1980 Note that John's CBMS Subject Next Sales Meeting has chosen to represent it as a text string. The agenda for ..." FIG. 2. MESSAGE FORWARDING AND REDISTRIBUTION
supporting re-issuing. Forwarding, since it is an informal means of serving the purpose of passing on information, has no supporting fields in the specification. This specification provides for reissuing of messages by encapsulating. This method embeds the entire original message inside a new message. Encapsulating adds structure around the 2 message . This allows any part of it to be easily extracted. Authentication is an organizational policy issue associated passing on previously sent messages. Each organization must decide if the CBMS it acquires should support reissuing or simply supply forwarding. 184.108.40.206 Redistribution Redistribution is a CBMS function for sending the original contents of a message intact and unchanged to new recipients. A redistributed message is identical to the original message with the exception of added information about the reissuing. For reissuing with this purpose, the Reissue-Type field contains the ASCII string "Redistribution". The original message has been included directly in a new message. (See Figure 2.) 220.127.116.11 Assignment Assignment is the process of designating responsibility. In some organizations, formal message traffic is funneled through one or more parts of the organization (called offices) where it is directed to the appropriate individuals or other offices for final disposition. Assignment is done by reissuing a message with the Reissue-Type field containing the ASCII string "Assigned." A message which contains this field is to be interpreted as meaning that the addressees in the "To" field have had the reissued message assigned to them for some action. Any addressee in the "Cc" field has had the message assigned for information. The "From" field records who assigned the message and the "Posted-Date" field records when the message was assigned. _______________ 2 A message can contain another message, and that message can contain another message, and so on to any depth of encapsulating. This can occur by reissuing a message repeatedly.
3.2.3 Reply generation Reply generation involves creating a new message in direct reply to some other message by drawing on the contents of fields in the other message to fill fields in the new message. Many CBMSs provide reply facilities that determine the intended recipients of a reply to a message. o A Reply-To field is defined by this message format specification. When a message contains a Reply-To field, the CBMS should send replies to the recipients designated in the Reply-To field instead of to the recipients designated in the From field. This statement applies to original messages only, not to reissued messages. The message format specification makes no recommendations concerning replies to reissued messages. Reply-To has several possible applications. 1. The individual(s) responsible for the message might not have regular access to a CBMS and would indicate an alternate recipient, for example, a secretary. 2. The people responsible for receiving responses might not be the people who were responsible for creating the message. 3. Discussion and conference groups could use this feature to ensure correct distribution of any submission by having the conference group itself designated in the Reply-To field. o When the message does not contain a Reply-To field, the recipient should reply to the originators enumerated in the From field. The sender and authors should not be added automatically to the list of those receiving the reply. Replies could also be sent to the other recipients of the original message. Vendors might offer additional reply facilities, depending on their view of users' organizational requirements.
3.2.4 Cross referencing A CBMS message may include designator(s) which identify other message(s). The designators are used to refer to related messages so that all information in a chain of correspondence can be determined by a CBMS user. The designator used to identify and cross-reference messages can take either of two forms, unique identifiers or serial numbers. 18.104.22.168 Unique identifiers Unique identifiers are machine-generated quantities that are intended primarily for processing by computers. While they could be examined by a human user, unique identifiers are not necessarily useful or convenient for people. Unique identifiers occur in several contexts. They are often used to identify the contents of individual messages unambiguously. When unique identifiers are used this way, they are called message identifiers. Different versions of a message (for example, the message when it is reissued with comments) receive new message identifiers. When a CBMS generates a message identifier, it must be able to guarantee that it is unique, both within the domain of the individual CBMS and globally, across all connected CBMSs. CBMSs could generate globally unique identifiers in several ways, all of which require prior agreement on behalf of the connected CBMSs. One method is to assign each connected CBMS a unique code. A CBMS then generates unique identifiers by using its code as a prefix to some other quantity that it can guarantee to be unique within its domain. (This second quantity could be a counter or a timestamp/user-id combination.) A CBMS can provide functions for tracing chains of correspondence by using unique identifers. The message format specification defines fields for which a CBMS provides unique identifiers as values. They are Message-ID, References, Obsoletes, and In-Reply-To. (See Section 3.1.6.) 22.214.171.124 Serial numbering Serial numbers are for users to maintain a personal numbering system for messages. The numbers are composed of both letters and digits so that users could maintain several sets of sequences concurrently (for example, A1, A2, A3... and B1, B2, B3...).
Serial numbers are assigned at a defined point in the history of a message. Serial numbers are not unique identifiers; they differ from unique identifiers (Section 126.96.36.199) in that they are not necessarily either generated or processed by a CBMS. They are designed to be typed and read by CBMS users. They can be as simple or complex as the user requires. Serial numbers are intended to be used to designate messages about a specific topic, or messages a given user has sent. Serial numbers are intended to be a permanent part of the message, just as unique identifiers are. A CBMS can provide functions allowing originators to add serial numbers to messages. A field has been provided to permit this. Originator-Serial-Number is for an originator to add a serial number to a message before sending it. 3.2.5 Life span functions Messages have life spans, usually delimited by the creation date and the time when the last copy of the message is destroyed. Messages could be meaningless before a certain time or irrelevant after a certain time. For example, a reminder to attend a meeting on 5 June loses most of its value on the sixth; a reminder to attend that same meeting is likely to be of little use on 5 May (although not for the same reason). A CBMS can define a message's life span explicitly using the Start-Date and End-Date fields. A third field, Warning-Date, when used in conjunction with the End-Date, may be used to signal the approach of the End-Date. It may also stand alone and be used by a periodic warning (alarm clock) mechanism. A CBMS could use these fields to help users manage their message stores. For example, a message whose start date has not yet passed could be bypassed by a retrieval command unless the user requested such messages explicitly. A CBMS could use the end date to help with message store housekeeping either by archiving or deleting the expired messages automatically or by asking the user for some action to be taken on them. The warning date could be used to automatically remind the user of an impending end date, such as a meeting reminder. 3.2.6 Requests for recipient processing Recipients have a wide variety of needs for examining and processing a message, ranging from automatic output on some specified device to the execution of a program embedded in the
message itself. Because many of these needs are highly specialized, and support for them not widely implemented, this message format specification does not constrain the requests for processing that may be included in a message. The message format specification does provide two fields that permit an originator to request circulation list processing from the recipient. These fields are Circulate-To and Circulate- Next. 188.8.131.52 Message circulation Message circulation involves serial distribution of a message to its recipients, based on a distribution list that is part of the message. The message is delivered first to the first recipient on the distribution list. This recipient, or someone the recipient delegates, sends the message on to the second recipient on the list, perhaps after commenting on or adding to the message. This continues until all recipients on the distribution list have received the message. This message format specification provides two fields to support message circulation. The Circulate-To field contains the complete distribution list, indicating the full set of recipients, and the Circulate-Next field indicates which recipients have not seen the message. See Figure 3 for an example of message circulation using these two fields. 3.3 Multiple Occurrences and Ordering of Fields Most message fields may occur more than once in a message; the exceptions are the Posted-Date, Sender, and Message-ID fields, which may occur at most once. What this means is that a received message may contain any number of instances of a particular field (such as the "To" field). If a message contains more than one instance of a particular field, that field "occurs multiply" and that message has "multiple occurrences" of that field. A particular instance of a message field is not superseded by later instances of the same field. The To field is an example of this. Multiple occurrences of a field are not necessarily equivalent to a single field containing the concatenated contents of the several instances of the given field. For example, with the Text field, concatenating the contents of several instances
----------------------------------------------------------------- A message originator wishes to circulate a message to recipients A, B and C. The originator includes the following fields in the message: To: A Circulate-To: A, B, C Circulate-Next: B, C When recipient A or somebody A delegates causes the message to be further circulated, the message is sent to the first address in the Circulate-Next field, and that name is removed from that field: To: B Circulate-To: A, B, C Circulate-Next: C B now sends the message on to its final recipient: To: C Circulate-To: A, B, C FIG. 3. EXAMPLE OF MESSAGE CIRCULATION ----------------------------------------------------------------- might lose important distinctions between the contents. A single message could be used to send three different documents, each one in a different Text field. However, putting the three documents into a single Text field would make it much more difficult to extract any individual document. The fields found in a single message may occur in any order. The order in which they occur does not necessarily reflect the order in which they were created. Nor does it constrain the order in which the message recipient examines, processes, or displays them.