The format is rather complex, at least partially because
part of it is implemented in the operating system. Some of the
syntax rules follow. I hope you can understand this.
The part that is implemented in the operating system (via
the COMND% JSYS) is as follows. A mailing list file consists of
a single logical "line", which is terminated by CRLF. Where it
is necessary to insert a physical line break (e.g. to enhance
readability) continuation must be indicated by use of hyphen as
the last character on the previous physical line. An unlimited
amount of whitespace (space or tab) may be placed between atoms,
however there must be NO whitespace after a continuation hyphen;
it will become part of an atom otherwise. Semicolon (";") is
used to indicate commentary and declares the rest of the logical
line to be a comment. More useful is exclamation ("!") which
toggles comment mode. End of logical line will end a comment,
but end of physical line will not unless it is also a logical
line end (that is, a hyphen should not be the last character).
A mailing list must consist of one and only one logical
line. Multiple logical lines may "bleed into" other prompts
(e.g. subject or text) and in any case will generally not do
anything useful. Think of it as an answer to the To: prompt
which only accepts one line, and that the contents of the file
are "typed in" to the mail composer (this is actually quite close
to the way it is implemented under TOPS-20).
Note that angle brackets denote meta-words. "String" is
intentionally defined as a meta-word, as its definition may
change over time. If your string contains characters other than
alphanumerics (hyphen is an alphanumeric) and you have any doubt
if it is valid to use in unquoted form, quote it with
double-quotes.
address = mailbox | foreign_mailbox
address_list = [group-name ":"] address ["," address_list]
file_name = <any valid TOPS-20 filename>
file_recipient = "*" file_name
finger_mailbox = <any string returned as a valid mailbox name by the
Finger program using the MMailbox/Finger interface>
foreign_mailbox = <string> "@" <host name>
group_name = <string> | <null>
indirect_file = "@" file_name
mailbox = indirect_file | file_recipient | mailing_list |
user_name | finger_mailbox
mailing_list = <any string defined as a valid mailing in this file>
user_name = <any valid TOPS-20 user name on this host>
A group name is used to suppress the list of recipients in
the message header. For example,
"My friends": Peter, Paul, Mary
would show up in the message header as
To: "My friends":
Note that "My friends" is quoted because of the embedded space.
An example of a well-formed mailing list is follows: