1 12/07/83 Mail System Message Format
2
3 A message is the basic unit of communication between users.
4
5 There are two types of message: ordinary and interactive. An
6 interactive message is a message which is displayed immediately on the
7 user's terminal when it is delivered. An ordinary message is a message
8 which is only displayed at the user's explicit request after it has
9 been delivered. Whenever the mail system delivers an ordinary message
10 to a user, it also delivers an interactive message to inform the user
11 that the ordinary message was just delivered.
12
13
14 Message structure:
15 The mail system represents a message as a structured object comprised
16 of four parts: an envelope, a header, a redistributions list, and a
17 body. With the exception of the body, each of these parts contains
18 several fields.
19
20 The message envelope describes when, by whom, and via what route the
21 message was mailed and subsequently delivered.
22
23 The message header contains the message's subject, authors, and
24 recipients. For a message which is a reply to other messages, the
25 header contains information which identifies those original messages.
26 The header may also contain additional fields which are used by user
27 written application programs.
28
29
30 The redistributions list records each time the message was
31 redistributed forwarded by one user to another. The information
32 recorded for each redistribution includes the users who requested the
33 redistribution, the date/time it was requested, the recipients of the
34 redistribution, and an optional comment.
35
36 The message body is the actual content of the message. The body is
37 divided into one or more sections. Each section may have its own
38 distinct structure and formatting instructions.
39
40
41 List of message envelope fields:
42 Posted-Date
43 is the date/time that the message was given to the mail system for
44 delivery. This field is only present if the message was not created
45 and posted simultaneously.
46 Sender
47 is the address of the actual user who gave the message to the mail
48 system for delivery. This field is only present if there is more
49 than one author of the message or if the author was not the user who
50 gave the message to the mail system.
51 Route
52 is only present in messages which originated on another computer
53 system and lists the systems through which the message was relayed
54 in order to reach this system.
55
56
57 Relayed
58 is only present in messages which originated on another computer
59 system and describes a single relay operation. This field includes
60 the date/time of the relay, the sending and receiving systems, and
61 an optional description of the protocols used. This field may
62 appear in the message more than once.
63 Delivery-Date
64 is the date/time that the mail system delivered this message to the
65 user's mailbox. This field is only present if the message was not
66 posted and delivered simultaneously.
67 Delivery-By
68 is the address of the actual user in whose process the mail system
69 delivered this message to the user's mailbox. This field is only
70 present if the delivery agent was different from the sender.
71
72
73 Acknowledge-To
74 is the address of the user who is to receive an acknowledgement when
75 this message is read by a recipient. This field is only present if
76 the message requests an acknowledgement.
77
78
79 List of message header fields:
80 With the exception of the Date, From, Access-Class, and Message-ID
81 fields, all fields in the message header are optional.
82
83 Date
84 is the date/time that the message body was created.
85 From
86 is the list of addresses of the users responsible for the content
87 of the message. These users are also known as the authors of the
88 message.
89 Subject
90 is the subject of the message.
91
92
93 Reply-To
94 is the list of addresses of the recipients for any future replies to
95 this message. If this field is not present, replies will be sent to
96 the authors as listed in the From field.
97 To
98 is the list of addresses of the primary recipients of the message.
99 cc
100 is the list of addresses of the secondary recipients of the message.
101 bcc
102 is the list of addresses of the "blind" recipients of the message.
103 The copies of the message delivered to the primary and secondary
104 recipients do not include this list.
105
106
107 In-Reply-To
108 is the list of references to the messages for which this message is
109 a reply. Each reference includes the values of the referenced
110 message's Date, From, Subject, and Message-ID fields.
111 Access-Class
112 is the Access Isolation Mechanism AIM access class of the message.
113 A user may read the message only if his process authorization is
114 greater than or equal to this access class; a user may delete the
115 message only if his authorization is equal to this access class.
116 Message-ID
117 is the unique identifier associated with the body of the message.
118 If two messages have the same value for this field, they contain the
119 same message body; however, their envelopes, headers, and
120 redistribution lists may differ.
121
122
123 List of message redistribution fields:
124 In addition to the fields described in this, each redistribution
125 also has its own envelope which contains the fields described above.
126 For a redistribution, however, the envelope fields are called
127 Redistributed-Posted-Date, Redistributed-Sender, etc. With the
128 exception of the Redistributed-Date, Redistributed-From, and
129 Redistributed-Message-ID fields, all fields in a redistribution are
130 optional.
131
132 Redistributed-Date
133 is the date/time that the redistribution was requested and the
134 redistribution's comment, if any, was created.
135 Redistributed-From
136 is the list of addresses of the users who requested that the
137 redistribution take place.
138
139
140 Redistributed-To
141 is the list of addresses of the recipients of the redistribution.
142 Redistributed-Comment
143 is the text of the comment associated with the redistribution of the
144 message.
145 Redistributed-Message-ID
146 is the unique identifier associated with the redistribution. If two
147 redistributions in multiple copies of a message have the same value
148 for this field, they are the same redistribution.
149
150
151 Printed representation of a message:
152 The printed representation of a message is the human readable form of
153 that message. It is used by the mail system when displaying a message.
154
155
156 The basic format of the printed representation is --
157
158 <envelope>
159 <header>
160 <redistributions list>
161
162 <body>
163
164 where <envelope> is the printed representation of the message envelope,
165 etc. As can be seen from the above, the printed representation of the
166 message body is separated from the other parts of the message by a
167 blank line; the printed representations of the envelope, header, and
168 redistributions list, on the other hand, are contiguous.
169
170
171 The user may request that different levels of detail should be used
172 when displaying the contents of the envelope, header, and
173 redistributions list. The message header and redistributions list may
174 be displayed in long, default, or brief form; the message envelope may
175 be displayed only in long or default form.
176
177
178 Printed representation of the message envelope:
179 The long form of the printed representation of the message envelope
180 follows:
181
182 Posted-Date: <date-string>
183 Sender: <address>
184 Route: <address-route>
185 Relayed: from <sending-host> to <receiving-host> using
186 <mail-protocol> with <comm-protocol> via <comm-media> ID
187 <message-id> for <address>; <date-string>
188 Relayed: ...
189 Delivery-Date: <date-string>
190 Delivery-By: <address>
191 Acknowledge-To: <address>
192
193
194 The Route and Relayed fields are only displayed in the long form of the
195 message envelope. The first Relayed field displayed describes the
196 oldest relay operation and the last Relayed field describes the most
197 recent relay operation.
198
199 The Acknowledge-To field is only displayed if the message requests an
200 acknowledgement.
201
202
203 In the long form of the message envelope, all fields except the Route,
204 Relayed, and Acknowledge-To fields are displayed. If the Posted-Date
205 field is not present, the value of the Date field in the message header
206 is used; if the Delivery-Date field is not present, the value of the
207 Posted-Date field or if needed the Date field is used. If the
208 Sender field is not present, the single address in the From field of
209 the message header is used; if the Delivery-By field is not present,
210 the value of the Sender field or if needed the From field is used.
211
212 In the default form of the message envelope, the Posted-Date field is
213 displayed only if its value differs from the Date field of the message
214 header; the Delivery-Date field is displayed only if its value differs
215 from the Posted-Date field. The Sender field is displayed on if its
216 value differs from the From field of the message header; the
217 Delivery-By field is displayed only if its value differs from the
218 Sender field.
219
220
221 Printed representation of the message header:
222 The long form of the printed represenation of the message header
223 follows:
224
225 Date: <long-date-string>
226 From: <address-list>
227 Subject: <text-string>
228 Reply-To: <address-list>
229 To: <address-list>
230 cc: <address-list>
231 bcc: <address-list>
232 In-Reply-To: <message-reference-list>
233 Access-Class: <AIM-class>
234 Message-ID: <message-id>
235 <user-field-name>: <field-value>
236 <user-field-name>: ...
237
238
239 The optional fields in the message header are not displayed unless they
240 are present in the header. Ie: the field name will not be displayed
241 without a subsequent field value.
242
243 The Access-Class field is always displayed in the long form of the
244 header. It is ommitted from the default form if it is equal to the
245 user's process authorization. It is always ommitted from the brief
246 form of the header.
247
248 The Message-ID field is only displayed in the long form of the header.
249
250
251 In the brief form of the message header, the Date and From fields are
252 always displayed. The Subject field is displayed if present. None of
253 the other fields in the header are displayed. However, if the user is
254 not the only recipient of the message, the following psuedo-field is
255 displayed in place of the To, cc, and bcc fields:
256
257 Recipients: Yourself and N others
258
259 where N is the number of recipients of the message in addition to the
260 user. The string "Yourself and" is displayed only if the user is
261 explicitly mentioned in one of the To, cc, or bcc fields.
262
263
264 Printed representation of the redistributions list:
265 The long form of the printed representation of the redistributions list
266 follows:
267
268 <redistribution-1>
269 .....
270 <redistribution-N>
271
272 where <redistribution-1> is the first oldest redistribution of the
273 message and <redistribution-N> is the last latest redistribution of
274 the message.
275
276
277 The long form of the printed representation of a single redistribution
278 follows:
279
280 <envelope>
281 Redistributed-Date: <date-string>
282 Redistributed-From: <address-list>
283 Redistributed-To: <address-list>
284 Redistributed-Comment:
285 <text-string>
286 Redistributed-Message-ID: <message-id>
287
288 where <envelope> is the printed representation of the redistribution's
289 envelope as described above. However, all field names in the envelope
290 are prefixed with the string "Redistributed-". The redistribution
291 envelope's printed representation is ommitted from the brief form of
292 the redistribution.
293
294
295 The optional fields in the redistribution are not displayed unless they
296 are present in the redistribution. Ie: the field name will not be
297 displayed without a subsequent field value.
298
299 In the brief form of a redistribution, the Redistributed-To field is
300 replaced by a Redistributed-Recipients psuedo-field as described above
301 for the To, cc, and bcc fields.
302
303 The Redistributed-Message-ID field is ommitted from the default and
304 brief forms of the redistribution.
305
306 The entire redistribution is ommitted from the brief form of the
307 redistributions list if it does contain a comment.
308
309
310 If the last redistribution is ommitted from the brief form of the
311 redistributions list, the Last-Redistributed psuedo field is displayed
312 in its place. The format of this field is
313
314 Last-Redistributed: <date-string> by <address>
315
316
317 Canonical form of a message:
318 The canonical form of a message is a variant of the default form of the
319 printed representation of the message. The canonical form is used by
320 the mail system when storing the message in a mailbox or searching the
321 message for a given character string.
322
323
324 The canonical form of a message differs from the default printed
325 representation as follows:
326
327 In the canonical form, the redistributions list appears before the
328 message envelope; in the default printed representation, it appears
329 after the message header.
330
331 In the canonical form, the redistributions appear in reverse
332 chronological order ie: the latest redistribution is first etc.; in
333 the default printed representation, they are in chronological order.
334
335 The Message-ID, Route, and Relayed fields are included in the canonical
336 form; they are omitted from the default printed representation.
337
338
339 List of field value representations:
340 <date-string>
341 is the printed representation of a date/time. Its format is
342 DD Month YYYY HH:MM zone
343 For example:
344 9 April 1983 12:17 edt
345
346 <long-date-string>
347 is the printed representation of a date/time. Its format is
348 DayName, DD Month YYYY HH:MM zone
349 For example:
350 Saturday, 9 April 1983 12:17 edt
351
352
353 <address>
354 is the printed representation of the address in the given field.
355 For a description of these representations, type:
356 help addresses.gi -section printed representations
357
358 <address-list>
359 is the printed representation of a list of addresses. Its format is
360 <address-1>, <address-2>, ..., <address-N>
361
362 <address-route>
363 is the printed representation of an address route. For a
364 description of this representation, type:
365 help addresses.gi -section printed representations
366
367
368 <text-string>
369 is the printed representation of the text comprising the given
370 field. This representation consists of the acutal text with two
371 exceptions. If the text is more than one line long, each additional
372 line is indented by an amount equal to the indentation of the first
373 line of the text If any line in the text is blank, the string "--"
374 is placed on that line just before the left margin of actual text.
375 For example:
376 Subject: Sample text field that is multiple lines
377 with some lines indented more than others
378 --
379 and also some blank lines.
380
381
382 <message-reference-list>
383 is the printed representation of a set of message references. The
384 printed representation of a single message reference has the
385 following format:
386 Message of <date-string> from <address-name>
387 where <address-name> is the address name of the first address in the
388 From field of the referenced message. If this address does not have
389 a name, its printed representation is used instead. For example:
390 Message of 1 May 1983 17:49 edt from Gary Palter
391 If the list contains multiple references, they are separated by
392 commas and the second through last references are indented by
393 sufficient whitespace to align them with the first reference. For
394 example:
395 In-Reply-To: Message of 9 April 1983 14:50 edt ...,
396 Message of 1 May 1983 10:17 edt from ...
397
398
399 <AIM-class>
400 is the printed representation of an AIM access class as returned by
401 the standard system subroutine convert_authorization_$to_string_short.
402
403 <message-id>
404 is the printed representation of a unique identifier. Its format is
405 <STR at HOST>
406 where STR is the actual unique identifier which, if generated by a
407 Multics system, will be the long form of a request ID. Type:
408 help request_ids.gi
409 for a description of the format of a request ID. If the identifier
410 was generated by a foreign system, that system's name is included in
411 the printed representation in the "at HOST' phrase. The angle
412 brackets <> above are actually part of the representation; the
413 braces are not.
414
415
416 <user-field-name>
417 is the name of a user-defined field in the message header.
418
419 <field-value>
420 is the printed representation of the value of a user-defined field.
421 It will be a <date-string>, <address-list>, or <text-string>.
422
423 <sending-host>
424 is the name of the sending system for a relay operation.
425
426 <receiving-host>
427 is the name of the receiving system for a relay operation.
428
429
430 <mail-protocol>
431 is the name of the mail transport protocol used for a relay
432 operation.
433
434 <comm-protocol>
435 is the name of the communications protocol used for a relay
436 operation.
437
438 <comm-media>
439 is the name of the communications media used for a relay operation.