1 10/21/83  Mail System Addresses
  2 
  3 An address identifies an originator or a recipient of a message.  A
  4 single address refers to one of the following: a Multics mailbox either
  5 by pathname or User_id, a Forum meeting, a user (or group of users) on
  6 another computer system, an entry in the system's mail table, or a
  7 mailing list.
  8 
  9 Each address has three different representations.  The internal
 10 representation of an address is used exclusively by the mail system and
 11 appears to programs which use the mail system as a PL/I pointer
 12 variable.  The printed representation of an address is the human
 13 readble form of an address which is used when displaying a message or
 14 searching a message for a given character string.  The control argument
 15 representation of an address is the sequence of command/request line
 16 arguments and control arguments recognized by the mail system in order
 17 to allow a user to specify one or more addresses on a command/request
 18 line.
 19 
 20 
 21 List of address types:
 22    The following types of addresses are supported by the mail system:
 23 
 24 user default mailbox address
 25    identifies a user's default mailbox by both User_id and pathname.
 26    A user's default mailbox mailbox has the pathname --
 27          >udd>Project_id>Person_id>Person_id.mbx
 28    and is the mailbox where a user ordinarily receives his incoming
 29    mail.
 30 logbox address
 31    identifies a user's logbox by both User_id and pathname.  A user's
 32    logbox has the pathname --
 33          >udd>Project_id>Person_id>Person_id.sv.mbx
 34    and is one of the mailboxes where a user may store messages for
 35    future reference.
 36 
 37 
 38 savebox address
 39    identifies a user's savebox by both User_id and pathname.  A savebox
 40    is any mailbox with a suffix of "sv.mbx".  Like the logbox, a user
 41    normally stores messages in a savebox for future reference.
 42 mailbox address
 43    identifies any mailbox by pathname which is not a user's default
 44    mailbox, a logbox, or a savebox.
 45 forum address
 46    identifies any Forum meeting by pathname.
 47 foreign address
 48    identifies a user (or group of users) on another computer system.  A
 49    foreign address consists of an arbitrary character string which is
 50    the address on the foreign system, the name of the foreign system,
 51    and optional explicit and implicit address routes which are used to
 52    aid in the delivery of mail to the address.  See "Address routes"
 53    below for more information.
 54 
 55 
 56 mail table address
 57    identifies an entry in the system's mail table by its name or one of
 58    its aliases.  In addition to its name and aliases, every entry in
 59    the mail table includes a mail system address.  When mail is sent to
 60    a mail table address, it is delivered to the address listed in the
 61    mail table for that entry.  For more information on the mail table,
 62    type:
 63          help mail_table.gi
 64 mailing list address
 65    identifies a mailing list by pathname.  A mailing list is an ASCII
 66    segment or archive component which contains the printed
 67    representations of one or more addresses.  When mail is sent to a
 68    mailing list, it is delivered to each of the addresses in the list.
 69    For more information on mailing lists, type:
 70          help mailing_lists.gi
 71 
 72 
 73 named group address
 74    identifies a named group of addresses.  A named group is
 75    distinguished from a mailing list by the fact that the individual
 76    addresses which comprise the group appear in the printed
 77    representation of the address whereas only the pathname of the
 78    mailing list appears in its printed representation.  Usually, this
 79    type of address is only found in messages which were created on
 80    another computer system.
 81 invalid address
 82    identifies an invalid address.  An invalid address will be created
 83    by those entrypoints in the mail system which convert printed
 84    representations of addresses, etc. into their internal
 85    representation if requested by their callers when a character string
 86    is found in the printed representation which does not correspond to
 87    any of the types of address supported by the mail system.  Any
 88    attempt to send mail to an invalid address will, of course, be
 89    detected as an error.
 90 
 91 
 92 Address names:
 93 The address name, which is an optional part of all types of addresses,
 94 is a character string which identifies the person who receives mail at
 95 a given address.  Normally, the address name is the individual's full
 96 name; however, in the case of a mailing list or named group, the
 97 address name is a global description of the individual addresses within
 98 the list.  On some non-Multics systems, several persons are allowed to
 99 share a single address; in these cases, the system uses the address
100 name to determine for which of these individuals a given message is
101 intended.
102 
103 
104 Address comments:
105 The address comment, which is an optional part of all types of
106 addresses, is a character string with no semantic meaning that may be
107 associated with an address.  Although now considered obsolete, the
108 address comment is still supported by the mail system to provide
109 compatibilty with prior releases and with non-Multics systems that
110 still use the address comment in place of the address name.
111 
112 
113 Address routes:
114 As mentioned briefly above, a foreign address may include optional
115 explicit and implicit address routes.  An address route defines the
116 path through one or more networks to be used to deliver a piece of mail
117 to a foreign system.  An address route is represented as an ordered
118 list of system names.  A message is sent by the local system to the
119 first system in the route; that system then sends the message to the
120 second system in the route, and so on until the message arrives at its
121 destination.
122 
123 The mail system will compute the shortest address route for a given
124 foreign address at the time that mail is actually sent to that address.
125 However, this computation may be affected by the explicit and implicit
126 address routes which are part of that foreign address.
127 
128 
129 The explicit route, if present, is the address route which has been
130 specifically requested by a user to be used for the given foreign
131 address.  The explicit route is normally used to instruct the mail
132 system how it should deliver mail to a system for which it would not be
133 able to compute an address route.  However, if present, an explicit
134 route will always be used by the mail system even when its internal
135 routing algorithms could compute a shorter route to the destination
136 system.
137 
138 The implicit route, if present, is an address route associated with a
139 message that originated on a foreign system.  When requested to deliver
140 a message to one of the addresses in the original message (eg: via the
141 read_mail reply request), the mail system will attempt to compute an
142 address route for the address.  If the address route computation fails,
143 the mail system will use the implicit route as the route for the
144 address.
145 
146 
147 List of printed representations:
148    The printed representation of an address is the human readable form
149    of that address.  It is used by the mail system when displaying a
150    message or searching a message for a given character string.
151 
152    In the following printed representations, braces ({}) actually
153    appear as part of the printed representation and brackets ([]) are
154    used to denote optional parts of a printed representation.  The
155    printed representations used by the mail system are:
156 
157 
158 Person_id.Project_id
159    identifies either a user's default mailbox --
160          >udd>Project_id>Person_id>Person_id.mbx
161    or a user's logbox --
162          >udd>Project_id>Person_id>Person_id.sv.mbx
163    Any use of this printed representation to create an address will
164    create an address referencing the specified user's default mailbox
165    rather than his logbox to insure that other users will never attempt
166    to send mail directly to his logbox.  (By default, only the user can
167    add messages to his logbox).  However, when constructing a message
168    for later delivery, the mail system will use the "{logbox}" format
169    described below to represent the user's logbox.  This alternate
170    representation allows the user to distinguish between his mailboxes
171    in case he needs to change where his copy of the message will be
172    delivered.
173 
174 
175 {logbox}
176    appears only in the printed representation of messages being
177    prepared for delivery and identifies the user's logbox --
178          >udd>Project_id>Person_id>Person_id.sv.mbx
179    When the message is actually delivered, the printed representation
180    of this address will be converted to the "Person_id.Project_id"
181    format described above.
182 
183 
184 Person_id.Project_id (STR.sv)
185    identifies a savebox belonging to the specified user.  STR is the
186    entryname of the savebox excluding the "sv.mbx" suffix.  Any use of
187    this printed representation to create an address will create an
188    address referencing the specified user's default mailbox rather than
189    his savebox to insure that other users will never attempt to send
190    mail directly to his savebox.  (By default, only the user can add
191    messages to one of his saveboxes).  However, when constructing a
192    message for later delivery, the mail system will use the
193    "{save path}" format described below to represent one of the user's
194    saveboxes.  This alternate representation allows the user to
195    distinguish between his mailboxes in case he needs to change where
196    his copy of the message will be delivered.
197 
198 
199 {save path}
200    appears only in the printed representation of a message being
201    prepared for subsequent delivery and identifies a savebox.  Path is
202    the absolute pathname of the savebox excluding the "sv.mbx" suffix.
203    When the message is actually delivered, the printed representation
204    of this address will be converted to the
205    "Person_id.Project_id (STR.sv)" format described above.
206 {mbx path}
207    identifies an arbitrary mailbox by pathname.  Path is the absolute
208    pathname of the mailbox excluding the "mbx" suffix.
209 {forum path}
210    identifies a Forum meeting by pathname.  Path is the absolute
211    pathname of the meeting excluding the "control" suffix.
212 
213 
214 STR at FSystem [address-route]
215    identifies an address on another computer system.  STR identifies
216    the user (or group of users) to receive the message and is not
217    interpreted in any way by the local system.  FSystem is the name of
218    the foreign system where the address is located.  If the optional
219    address-route is not present, FSystem will be the primary name of
220    the foreign system as specified in the local system's network
221    information table (NIT).  However, if an address-route is specified,
222    the foreign system name does not have to be known to the local
223    system.  See "Printed representation of an address route" below for
224    further information.
225 STR
226    identifies an entry in the system's mail table.  STR is the name of
227    the mail table entry.  The display_mailing_address command may be
228    used to display the actual address corresponding to this STR.
229 
230 
231 {list path}
232    identifies a mailing list by pathname.  Path is the absolute
233    pathname of the mailing list segment or archive component excluding
234    the "mls" suffix.
235 STR: [ADDRs];
236    identifies a named group address.  STR is the name of the group.  If
237    present, ADDRs are the printed representations of the addresses
238    which comprise the group and are separated by commas.
239 {invalid STR}
240    identifies and invalid address.  STR is the text of the invalid
241    address as it appeared in the original message or address list.
242 
243 
244 Printed representation of an address name:
245 When present, the address name is placed before the printed
246 representation of the address which is then enclosed in angle brackets
247 ("<" and ">").
248 
249 For example:
250      Site Administrators <{list >udd>ssa>SiteSAs}>
251      Gary M. Palter <Palter.Multics>
252 
253 
254 Printed representation of an address comment:
255 When present, the address comment is enclosed in parentheses and is
256 placed after the printed representation of the address.
257 
258 For example:
259      Palter.Multics (Gary M. Palter)
260      Gary M. Palter <Palter.<Multics (Mail system maintainer)>
261 
262 
263 Printed representation of an address route:
264    The printed representation of an address route is:
265 
266 [via RelayN ...] via Relay1
267    where Relay1 is the name of a foreign system in the local system's
268    network information table (NIT) and the remaining names, if any,
269    need not appear in the NIT.  Mail directed to an address with this
270    address route will be forwarded to the system identified as Relay1.
271    From there, it will be forwarded to the system identified as Relay2,
272    etc. until it reaches the system identified as RelayN where it will
273    be delivered to the system on which the foreign address actually
274    resides.
275 
276 For example, the printed representation of a foreign address with an
277 address route would be:
278      GMP at EECS.MIT via MC via MIT-MULTICS.ARPA
279 
280 
281 Special characters in printed representations:
282 If a STR, Person_id.Project_id, FSystem, or RelayI in one of the above
283 printed represetnations contains any commas, colons, semi-colons,
284 parentheses, angle brackets (<>), braces ({}), quotes ("), commercial
285 at-signs (@), or whitespace other than single sequences of a space, it
286 must be quoted to avoid ambiguity with other printed representations.
287 Such a string is quoted by surrounding it with quotes and then doubling
288 any quotes found within the string.
289 
290 For example, the string
291      Richard "Rick" Kovalcik, Jr.
292 
293 would be quoted as
294      "Richard ""Rick"" Kovalcik, Jr."
295 
296 
297 If a pathname in one of the above printed representations contains any
298 parentheses, braces ({}), quotes ("), or whitespace other than single
299 sequences of a space, it must be quoted as described above in order to
300 avoid ambiguity.
301 
302 If the text of a comment contains any parentheses, quotes ("), or
303 whitespace other than single sequences of a space, it must be quoted as
304 described above in order to avoid ambiguity.
305 
306 
307 List of control argument representations:
308    The control argument representation of an address is the sequence of
309    command/request line arguments and control arguments recognized by
310    the mail system in order to allow a user to specify one or more mail
311    system addresses on a command/request line.
312 
313    The control argument sequences recognized by the mail system are:
314 
315 -user STR
316    specifies either a user's default mailbox or an entry in the system
317    mail table.  See "Notes on the -user address control argument" below
318    for more information.
319 -log
320    specifies the user's logbox and is equivalent to:
321          -mailbox >udd>Project_id>Person_id>Person_id.sv.mbx
322 
323 
324 -save path, -sv path
325    specifies the pathname of a savebox.  The suffix "sv.mbx" is added if
326    necessary.
327 -mailbox path, -mbx path
328    specifies the pathname of a mailbox.  The suffix "mbx" is added if
329    necessary.
330 -meeting path, -mtg path
331    specifies the pathname of a Forum meeting.  The suffix "control" is
332    added if necessary.  If the pathname given is just an entryname (ie:
333    no "<" or ">" characters appear in the pathname), the "forum" search
334    path is used to find the meeting.
335 STR -at FSystem {-via RelayN ... -via Relay1}
336    specifies an address on another computer system.  See "Notes on
337    the foreign address control argument representation" below for more
338    information.
339 
340 
341 -mailing_list path, -mls path
342    specifies the pathname of a mailing list.  The suffix mls is added if
343    necessary.  The archive component pathname convention is accepted.
344    For more information, type:
345          help mailing_lists.gi
346 STR
347    is any non-control argument interpreted by the mail system.  If STR
348    contains either "<" or ">", it is interpreted as:
349          -mailbox STR
350    otherwise, it is interpreted as:
351          -user STR
352 
353 
354 -name STR, -nm STR
355    must appear immediately following one of the above forms of an address
356    and specifies the name of the address.  An address name is usually the
357    full name of the person who receives mail at that address or, for
358    mailing lists, a description of the addresses comprising the mailing
359    list (eg: Site Administrators).
360 -comment STR, -com STR
361    must appear immediately following one of the above forms of an address
362    and specifies a comment to be associated with that address.  This
363    control argument is considered obsolete.
364 
365 
366 Notes on the -user address control argument:
367 As listed above, the "-user STR" address is used to specify either a
368 user's default mailbox of an entry in the system mail table.  For more
369 information on the mail table, type:
370      help mail_table.gi
371 
372 
373 If the above STR contains exactly one period and no whitespace, it is
374 interpreted as a User_id which specifies a user's default mailbox;
375 otherwise, it is interpreted as the name of an entry in the mail table.
376 
377 For example,
378      -user Sibert.SiteSA
379 is interpreted as a User_id which identifies a default mailbox.  On the
380 other hand,
381      -user "Gary M. Palter"
382      -user J.C.Snead
383 are both interpreted as the names of entries in the mail table; the
384 first because it contains whitespace and the second because it contains
385 more than one period.
386 
387 
388 When interpreted as a User_id, the STR may not contain any angle
389 brackets (<>) and must have the form Person_id.Project_id where
390 Person_id may not exceed 28 characters in length and Project_id may not
391 exceed 32 characters in length.  In this case, "-user STR" is
392 equivalent to the address
393      -mailbox >udd>Project_id>Person_id>Person_id.mbx
394 
395 When interpreted as the name of a mail table entry, STR may not contain
396 any commas, colons, semi-colons, backslashes (\), parentheses, angle
397 brackets (<>), braces ({}), quotes ("), commercial at-signs (@), or
398 whitespace other than spaces.  The query of the mail table is performed
399 in a case insensitive manner.  The display_mailing_address command may
400 be used to determine the actual address corresponding to the STR.
401 
402 
403 Notes on the foreign address control argument representation:
404 As listed above, "STR -at FSystem..." specifies an address on another
405 computer system.
406 
407 STR identifies the user (or group of users) to receive the message and
408 is not interpreted in any way by the local system.
409 
410 FSystem is the name of the foreign system where the address is located.
411 If the optional -via control arguments are not present, FSystem must be
412 one of the names of a foreign system in the local system's network
413 information table (NIT).  However, if the -via control arguments are
414 specified, the foreign system name does not need to be known to the
415 local system.
416 
417 
418 If the -via control arguments are specified, they identify an explicit
419 route to be used to reach the foreign system.  In this case, Relay1
420 must be one of the names of a foreign system in the local system's NIT.
421 Mail destined for this foreign address will be forwarded to the system
422 identified as Relay1.  From there, it will be forwarded to the system
423 identified as Relay2, etc. until it reaches the system identified as
424 RelayN where it will be delivered to the system on which the foreign
425 address actually resides.
426 
427 When the NIT is queried for either FSystem or Relay1, the query will be
428 performed in a case insensitive manner.
429 
430 
431 For example, the address
432 
433       GMP -at OZ -via MC -via mit-multics
434 
435 identifies the address "GMP" on a system named "OZ".  In order to send
436 mail to this address, it will be relayed from the local system to the
437 system known as "mit-multics" which must be a system listed in the
438 local NIT.  "Mit-multics" will then forward the message to a system
439 named "MC" which will actually deliver the message to its final
440 destination.