COMSAT request-file protocol... The following programs use this protocol: (Q)MAIL, BUG, MSG - regular mailing pgm & variants. MM Mail - EMACS library program for sending mail. Babyl - Another EMACS library for mail. FTPS - FTP server, for incoming net mail. DDT - turns failing :SENDs into mail. INQUIR - sends update requests to all UPDATE-INQUIR mailboxes. DRAGON - asks people to print out the monthly ZUSRPT file PWORD - and PANDA for accounts notification. NAME - for crash reports. LGM - CStacy and Duffey's Digest sending programs. APNYT - redistributes newswires from SAIL. BDAY - (DRAGON;DAILY BDAY) sends birthday greetings every midnight. * - Any other programs using the protocol should be added here, in order to more easily update them when and if the protocol is changed or improved. OVERVIEW Any program can send mail simply by writing a file in the proper format to .MAIL.;MAIL >. The comsat will detect this writing by virtue of a special system word named NQMFWR that is incremented whenever a file open for writing on .MAIL. is closed. The file will be slurped up, and the necessary mailings or sendings carried out-- response will be nearly instantaneous if the comsat was idle to begin with, but can be delayed for indefinite periods (1 or 2 minutes at most, usually) if there is already a request being processed or mail being unqueued. GENERAL SYNTAX Such a file or request is composed of various ITEMS, each with a name and value (another terminology is to say "attributes" instead of "items"). Names should always start at the beginning of a line, and must be composed of only letters, digits, and dashes; their values are strings which can contain any characters. Blank lines between items are ignored. There are only two ways of specifying such items, which depend on the fact that either a colon or a semi-colon will terminate a name: [1] : In this case, the use of ":" implies that the string comprising the value of is everything after the ":", up to but not including the . The only forbidden character in a value of this type is , which terminates the string. For example, FROM-PROGRAM:QMAIL [2] ; This form is used when one desires to use 's in a string value, and is the most general. The ";" indicates that the string up to the is an number specifying the length, in chars, of the string value following the . This is most commonly used to specify message text. For example, to specify "Hithere" (11. chars) one would say: TEXT;11. Hi there The character count, as well as any strings specified as being numbers, can be either octal or decimal; a number with a trailing decimal point is decimal (e.g. 11.), whereas one without is octal (e.g. 13). There is also one special case of [2]. If the number specified is "-1", it is taken to mean that everything following, up to end-of-file, is the string value. This is also mostly useful for specifying message text when the exact length is unknown or too much trouble to figure out beforehand; it does, however, require that the item using this construction be the last one in the file. For most items, leading spaces are allowed and will be ignored (but the character count after a semicolon must include them). Exceptions are TEXT, FAKE-TO, and SUBJECT, which are taken verbatim. MAIL ITEMS The following are the possible items which can be specified in a request to the comsat. In each case, the item name is followed by a discussion of the specific syntax required and what the item does. Some items are absolutely required; without them the COMSAT will complain that the MAIL file is in error. These items are: * One of AUTHOR or FROM. * One of RCPT or TO. * TEXT. Some others are "mostly required", by which we mean that every program is strongly encouraged to explicitly provide them, but the COMSAT will default them anyway. In order of importance, these are: * FROM-PROGRAM * FROM-XUNAME * FROM-UNAME The order in which the items appear is not significant to the mailer. HOWEVER, for debugging purposes it is strongly recommended that the FROM-PROGRAM item be first in the file (so that if there is a format error it will be possible to tell what program needs to be hacked), and that the FROM-XUNAME be next (to create the highest probability that the sender name is recoverable even if the file contains a format error, so that the sender can be notified and can correct the problem). And now, the items themselves: AUTHOR This is a recipient-type specification. There should be one of these for each author of the message. There MUST be at least one AUTHOR or COMSAT will complain. These people will be put in the FROM field in the header. NOTE: at the moment, only one AUTHOR is allowed, and it must be a simple string, as for FROM-UNAME. In the future more than one will be allowed and full rcpt syntax will be parsed. {=> PARCSN A$CSN} RCPT: The construction of is exactly like that in the NAMES > database; this allows arbitrarily complex options to be given in a standardized format. There must be at least one RCPT specification; any reasonable number may be given. FROM-PROGRAM (name of program writing this file) [old FROM-JOB] This item is not required, but is strongly recommended as a debugging aid. It is also recommended that this be the first item in the file (so that it is intact if there is an error later). FROM-UNAME: [old SENT-BY] This is used for the SENDER (or SENT-BY) field in the header. It also provides the COMSAT with the name of the person to complain to if there is trouble sending the message. If not present it defaults to the FROM-XUNAME; if both missing, defaults to the first AUTHOR. {=> PARSBY A$SNM} FROM-XUNAME: This is not used now, but may be someday. If not present, defaults to FROM-UNAME; if both missing, defaults to first AUTHOR. {=> PARNIL} CLAIMED-FROM: (OBSOLETE - do not use!) This used to be specified only for two situations: first, when the user explicitly furnished a "claimed-from name". If not, then only if the sending process' XUNAME was different from the UNAME, whereupon the XUNAME would be specified by this item. These are obsoleted by AUTHOR and FROM-XUNAME. {=> PARCSN A$CSN} FROM: [