MM REFERENCE MANUAL Electronic Mail Facility on the Context DECsystem-20 at Stanford Universtiy Adapted from the University of Chicago Computation Center's MM Reference Manual. September 1981 PAGE 2 TABLE OF CONTENTS 1.0 INTRODUCTION 1.1 Starting MM............................................ 3 1.2 Giving Commands to MM.................................. 4 1.3 Message Sequences...................................... 5 2.0 TOP LEVEL 2.1 Available Commands..................................... 7 2.2 Description of Commands................................ 8 2.3 Commands Which Default................................. 13 2.4 Command Parser and Getting Help........................ 13 2.5 TOP LEVEL Summary...................................... 13 3.0 READ MODE 3.1 What is READ MODE?..................................... 14 3.2 Invoking READ MODE..................................... 14 3.3 Commands in READ MODE.................................. 14 4.0 SEND MODE 4.1 What is SEND MODE?..................................... 17 4.2 Commands in SEND MODE.................................. 19 4.3 Distribution List...................................... 23 4.4 Sending Messages to a File............................. 24 5.0 CONCLUDING THOUGHTS......................................... 24 PAGE 3 1.0 INTRODUCTION 1.1 Starting MM MM can be started by simply typing MM to the operating system top level command handler, called the EXEC. The EXEC is identified by the @ prompt. So to start MM you would type: @MM [RETURN] -- -------- MM then checks to see if you have new mail. If you do, it displays a line indicating what the message number is, the receive date, who the message is from, the subject and the length of the message in characters: @MM [RETURN] -- -------- N 20 6 Feb Jon Sandelin <JCSAN Meeting cancelled (426 chars) Last read: 6-Feb-81 16:16:49, 20 msgs (19 old), 10 pages In this example, the user types MM. The first line indicates that the user has new mail. The next line, beginning "Last read:..." is a summary of the contents of the file. The MM> prompt is what MM types to show that it is waiting to receive a command from you. Let us examine each of these lines in detail. The first line is called a header. It is a condensation of what the new message is about. The N means that the message is NEW (i.e. you haven't seen it before and it is recent). The 20 indicates that it is message number 20 in the file. The file is simply a group of messages one after the other. If you have 19 messages in your file and a new one arrives then it would be the 20th and have a 20 next to it. The "6 Feb" is the date, February 6th. The "Jon Sandelin <JCSAN" tells who the message is from. The "<JCSAN" is simply part of the user name. The rest is too long to easily fit on the line so it is chopped off in the header; however in the message body itself it is completely visible. "Meeting cancelled" is the subject of the message. The "(426 chars)" means that the message has 426 characters in it. This is merely a gauge for you since you might prefer to look at it later if it is very long and you are on a slow terminal. Notice the single letter N at the beginning of the header line. Not all messages have a letter next to their header like this. There are several different flavors of letter: A, D, F, N, R and U. Page 4 These mean ANSWERED, DELETED, FLAGGED, NEW, RECENT, and UNSEEN respectively. A means you've answered the message. D means it is a deleted message which will be erased from your message file next time you give the EXIT or EXPUNGE commands. F means it has been marked to draw attention to it via the FLAG command. We will discuss this later. N means that it is recent and unseen. R means that it has just arrived as of this MM session. And, of course, U means that it has never been TYPEd or READ. (No letter in front of a header means the message has already been seen.) The next line begins with "Last read: 6-Feb-81 16:16:49...". This means that your mail file was last read on February 6th, 1981 at 16:16:49 (or 4:16:49 in the afternoon -- MM uses a "24-hour" clock.). There are 20 messages in the file, 19 of which are old, and the file is 10 pages long. 1.2 Giving Commands To MM When you see the MM> prompt, this means that MM is awaiting a command. A command simply consists of an English word, or several, typed to the MM> prompt followed by a carriage return. MM then attempts to interpret that command. If it understands it, then it executes it. If not, it will complain to you about the command error. MM has a large list of commands that it understands. Each one does a different thing. Not all of them are necessary for using MM effectively, but they make a flexible whole for MM to operate with. One way of approaching MM is in the following manner. 1. You notice you have new mail. Either the system has told you that you have new mail when you logged in or perhaps it has told you with a message like 'You have a message from ...' 2. You invoke MM by giving the MM command to the EXEC. 3. MM outputs the headers of the new messages. 4. At the MM> prompt you type READ followed by carriage return and proceed to read the new messages in a special mode called READ Mode which is invoked via the READ command. As you process each message, you might delete it, or save it, or reply to it, or any of a number of different things. 5. After processing the last of the new messages, MM takes you out of READ mode and back to the MM> prompt (also known as the Top Level.) 6. Perhaps you now want to send some mail. You type MM>SEND followed by a carriage return, and type in the people you want to send it to, the subject, and the text, and then when satisfied, you send it off. Page 5 7. You then end your message session via the EXIT command. 8. Having returned to the EXEC, you are now free to do your usual work. The above is what a typical sample session with MM might look like. We have purposely generalized some of the finer points, such as what exactly is done while you are READing or SENDing messages. These details will be considered later. Remember that MM has an extensive internal help facility. At any point in MM you can type a ? and get an informative message about what is available to you at that point. Also, at any level you can type HELP <command> where <command> is one of the things that MM can give you help on. To find out what things it can give you help on type HELP ? at Top Level, READ level or SEND level. 1.3 Message Sequences One very important notion is that of the message sequence. A message sequence is some group of messages that have a particular trait in common (or which are just considered a sequence because you talk to MM about them using their numbers -- e.g. 5:100 would be a message sequence of the 5th through 100th message). There are many message sequences. They are: ALL This represents every message in your file, whether deleted or not. CURRENT The current message is the message that MM is currently pointing at. MM keeps a pointer to the message last READ or JUMPed to so that you don't always have to know its message number to refer to it. You may substitute a period wherever you would ordinarily use CURRENT. This is merely an abbreviation. DELETED This represents messages that have been deleted via the DELETE command. On a subsequent EXPUNGE or EXIT command, the deleted messages will be physically removed from your mail file and gone forever. Generally, when you process new messages and reply to them, you are finished with them and want to get rid of them. You would DELETE them so that your mail file doesn't become unnecessarily cluttered by old messages. Page 6 FLAGGED Sometimes you will want to keep old messages for awhile because they have some relevance to immediate tasks which you are doing. MM can make a particular set of messages 'stand out' like a sore thumb. When you FLAG a message it tells MM to remember that particular message as a flagged message. The headers of FLAGGED messages will be displayed whenever you start MM, and all flagged messages are accessible via the FLAGGED message sequence. FROM You may want to have some way of looking at or processing all messages from a particular person. This message sequence is for that purpose. Suppose you want to delete all messages in your message file from a user named S.SILVERMAN. The way to do that would be MM>DELETE FROM S.SILVERMAN. Note that after FROM you type the user-name of the person that you are interested in. So 'FROM S.SILVERMAN' or more generally 'FROM <user-name>' accesses all messages from <user-name>. INVERSE This message sequence accesses all messages in an inverse order (most recent message first). LAST If you are interested in the most recent message use the LAST message sequence. You may use a percentage mark, % , instead of the word LAST when specifying the last message. This is merely an abbreviation. NEW This refers to messages which are both RECENT and UNSEEN. Generally this is a message which has arrived while you were away from the computer, or perhaps one that has just arrived while you were working. ON Suppose you would like to access the messages received on 4-Jul-76. The sequence 'ON 4-JUL-76' will do that. RECENT Any message which is new as of this session with MM is RECENT. If you have 5 new messages when you login, then they would all be marked RECENT until you've ended your session with MM. SEEN Most messages are marked SEEN since you've usually seen most messages in your file. Any message which you have looked at at some earlier date is marked as SEEN. A message that is marked SEEN will not have a letter next to its header. SINCE If you want to access all the messages received since a given date you can use 'SINCE <date>'. For example, to see all the messages since 4-JUL-76 you could say TYPE SINCE 4-JUL-76. Page 7 SUBJECT Suppose you are interested in all messages that have a Subject including the word 'computer'. Then you can access them via SUBJECT COMPUTER. More generally 'SUBJECT <topic>' means a message sequence with all messages including the phrase <topic> in their Subject line. TEXT If you are interested in messages which deal with COMPUTER but may not have that as part of their Subject line, then you can use the TEXT COMPUTER message sequence. More generally, TEXT <phrase> will mean a message sequence with all messages including the phrase <topic> in the body of the message. UNANSWERED Any message which has not been ANSWER'd or REPLY'd. UNDELETED messages not DELETEd. UNFLAGGED messages not FLAGged. UNSEEN messages which have never been TYPEd or READ. or a SEQUENCE OF MESSAGE NUMBERS denoting specific messages in the file: example 1:5, 7, 10:17, etc. EXAMPLES MM>READ FLAGGED [RETURN] would start READ Mode with all the ---- ------- -------- FLAGGED messages. MM>TYPE FROM H.HENDERSON [RETURN] would display all the messages ---- ---- ----------- -------- from H.HENDERSON. MM>TYPE 3:8 [RETURN] would display messages 3 through 8 individually. ---- --- -------- 2.0 TOP LEVEL 2.1 Available Commands When you start MM you are at the Top Level. This is identified by the MM> prompt being displayed. At this level, all the power of MM is available to you via a large number of commands which enable you to manage your messages, read them, send new ones, reply to old ones and so forth. Page 8 Commands available at this level are: Alias, Answer, Append, BBoard, Blank, Bug, Check, Continue, Copy, Count, Create-init, Daytime, Delete, Edit, Enable, Examine, Exit, Expunge, File-list, Flag, Forward, Get, Headers, Help, Jump, Keywords, List, Literal-type, Logout, Mark, Move, Net-mail, Next, Previous, Profile, Push, Quit, Read, Remail, Restore-draft, Send, Set, Status, System-msgs, Type, Unanswer, Undelete, Unflag, Unmark, Version. We will now describe the functions and use of each of these in detail. You will probably want to refer to these as you use MM the first few times. These are essentially the descriptions you would get by typing HELP <command> while in MM. Some of these mention that they take arguments. What is meant by this is that you would type first the command and then the argument, for example MM>ANSWER 3. In this example, ANSWER is the command and 3 is the argument. The argument that ANSWER takes is a message sequence. As you recall from the earlier description of a message sequence, the person could have substituted 4:10 or 2,5,7 or FROM S.SILVERMAN for 3 above. 2.2 Description Of Commands ALIAS takes a single argument, a username. It then causes MM to behave as if you were that user; all mail sent will be "from" that user (your login name will be the "sender"), and MM will be reading the aliased user's mail file. ANSWER takes 1 argument, a message sequence you would like to answer. So, to reply to message 3 you would say MM>ANSWER 3 where 3 is the message number. Or you could answer any other message sequence. After typing MM>ANSWER 3 and then carriage return it asks you "Reply msg #3 to:" and awaits one of "ALL" or "SENDER". If you respond with ALL, then your answer will go to everyone in the header of the message: the person who sent it to you and everyone CCed. If you respond with SENDER, then your answer will only go to the sender of the message. APPEND takes a message sequence, and appends those messages together into one message. BBOARD types the bulletin board file <BBOARD>mail.txt. BLANK blanks your screen, if you are on a video display terminal. If not, then it does nothing. BUG can be used to report problems or suggestions to the maintainers of MM. BUG puts you into SEND MODE with a predefined list of addresses to send the bug to. You send it the normal way you would send a message. The response may take a short while, e.g. a day or two. Page 9 CHECK used to check for new messages that may have arrived while you are using MM. CONTINUE resumes a SEND which was interrupted by QUIT. COPY takes two arguments. The first is a filename and the second is a message sequence. It copies the specified message sequence into the given file leaving it intact in your mail file. CREATE-INIT makes a file, MM.INIT in your directory which MM subsequently reads when you start up a new MM. In it, you can set various switches to make your MM environment more comfortable and easy to use for your own personal tastes. You can change the settings by editing the file with your editor, or you can use the SET command in MM. The following are the settings possible: BLANK-SCREEN-STARTUP ..number.. If 0, blanks screen on startup and between messages. CONTROL-N-ABORT ..number.. If negative, never aborts on [CTRL]-N. If positive, always aborts. If 0, asks for confirmation before aborting. DEFAULT-CC-LIST ...user-names... A list of addresses to always CC your outgoing messages to EDITOR ...editor name... The editor you want to use ESCAPE-AUTOMATIC-SEND ..number.. If 0, both [ESC] and [CTRL]-Z return to SEND level when inputting text. This is the default. If positive, [ESC] sends the message and [CTRL]-Z returns to SEND level. If negative, [CTRL]-Z sends the message and [ESC] returns to SEND level. GET-CONNECTED-DIRECTORY ..number.. If 0, ask which mail file to read from if connected to another directory. If positive, then connected directory always. If negative, then login directory always. PERSONAL-NAME ...your name.. Used for outgoing messages READ-PROMPT ...read mode prompt... REPLY-CC-OTHERS ..number.. If 0, REPLY CC's everyone other than original sender. REPLY-INCLUDE-ME ..number.. If negative, you receive a copy of REPLYs. REPLY-INITIAL-DISPLAY ..number.. If negative, header of REPLY is displayed before input prompt. REPLY-SENDER-ONLY-DEFAULT ..number.. If negative, REPLY sent only to sender, unless otherwise specified. Page 10 SAVED-MESSAGES-FILE ..filename.. File to receive copies of your outgoing messages SEND-PROMPT ...send mode prompt.. SEND-VERBOSE-FLAG ..number.. If negative, delivery of mail not confirmed. If positive, delivery of messages confirmed. TOP-LEVEL-PROMPT ...top level prompt... USER-NAME ...your user name... COUNT takes a message sequence, and prints out the number of messages in that sequence. DAYTIME tells you the current date and time. DELETE takes one argument, a message sequence and marks it for deletion. The messages are not erased until the EXIT or EXPUNGE command is given. EDIT takes one argument, a message sequence. It proceeds to edit each message in that message sequence using the editor specified in your MM.INIT file. ENABLE enables your capabilities (if you have any.) EXAMINE takes one argument, a filename. It is like the GET command except that the file is read-only, and the file reference date is not updatad. EXIT used to erase any deleted messages in the current message file and end a session with MM. EXPUNGE used to erase deleted messages from the current message file and write out a new copy of the file. FILE-LIST is like the LIST command, except that it will ask you which file you would like to list to. After the file argument, it takes a message sequence (rather than the lineprinter). FLAG takes one argument, a message sequence. It marks the messages in that sequence with the FLAG bit, so with other commands that take message sequences as arguments, the FLAGGED sequence will access those messages. FORWARD takes one argument, a message sequence. It forwards the messages in the sequence to an address which you specify after hitting carriage return. GET takes one argument, a filename. It will read in that message file, parse the messages and act as if that were the default message file. All commands now apply to that file. Page 11 HEADERS takes one argument, a message sequence. It will then output all the headers of that sequence in order of lowest message number to highest. HELP lets you get help on various topics including all the commands at the level at which HELP is being invoked. So to find out the things you can get help on do HELP ? JUMP allows you to specify a message in the current message file to jump to. It resets that message to be the CURRENT message. For instance, MM>JUMP 10 will make message number 10 be the current message. KEYWORDS takes two arguments, a keywords list and a message sequence. It will then marks the message in that sequence as being included in the keyword. To define a keyword, put a line in your MM.INIT of the form: KEYWORDS list-of-keywords This feature is useful for classifying old messages. LIST prints a message sequence on device LPT: (usually the lineprinter). LITERAL-TYPE takes a single argument, a message sequence. It then types out the bodies of those messages, without regard to ONLY-TYPE-HEADERS or DONT-TYPE-HEADERS. LOGOUT logs you out from the system after expunging and updating your message file. MARK takes one argument, a message sequence. It will then mark the messages in that sequence as SEEN. MOVE takes two arguments. The first is a filename and the second is a message sequence. It moves the specified message sequence into the given file and deletes the sequence from your mail file. NET-MAIL the NET-MAIL command will attempt to send any messages that may be queued in your directory. NEXT goes to the next message in the file and types it if undeleted. The next message is considered to be the one directly after the current one. PREVIOUS goes to the previous message in the file and types it if undeleted. The previous message is considered to be the one directly before the current one. PROFILE helps you set up an environment for using MM corresponding to your desires in message handling. It asks you a series of questions and then makes MM remember your responses (via the MM.INIT file). Page 12 PUSH gives you a new EXEC. This means that you'll get a fresh copy of the TOPS-20 command interpreter, which prompts you with @. At this point you can then do anything, and you may get back to MM by typing POP. QUIT exits MM without expunging messages marked for deletion. RE-MAIL is similar to forward, except instead of inserting the message after typein, the message is sent as is with the headers modified to indicate who did the remailing. READ takes one argument, a message sequence and starts reading the messages in that sequence in special READ Mode. For more information see the chapter on READ MODE. RESTORE-DRAFT takes a single argument, a file name created by the SAVE-DRAFT command, and restores the state of the send from that draft. SEND starts sending a message. It prompts for the addresses, subject and text of the message. To send the message, type [ESC] after typing the text in. For more information, see the chapter on SEND MODE. SET allows you to change certain defaults that MM uses in handling your messages. The various arguments that you can give to SET are listed under the CREATE-INIT command above. This command can be used in conjunction with the CREATE-INIT command. You could first type CREATE-INIT and then edit the resultant MM.INIT in your directory or you can SET variables and then type CREATE-INIT which will put those defaults in MM.INIT. STATUS tells you relevant information and statistics about your current message file, i.e. how many messages are deleted, unseen, how large the file is, etc. SYSTEM-MSGS reads in the system message file <SYSTEM>MAIL.TXT. TYPE takes a single argument, a message sequence. It then types out each message in the sequence if it is undeleted. UNANSWER takes a single argument, a message sequence and then removes the answered status from all the messages in that sequence. UNDELETE takes a single argument, a message sequence and then undeletes all the messages in that sequence, i.e. makes them so that they won't be physically removed from the file when you give the EXIT or EXPUNGE commands. Page 13 UNFLAG takes a single argument, a message sequence and unflags all the messages in that sequence, i.e. makes them so that they are no longer accessible through the FLAGGED message sequence. UNMARK takes a single argument, a message sequence and then unmarks all the messages in that sequence, i.e. makes them appear unseen. VERSION tells you the version number of the current MM program. 2.3 Commands Which Default Commands such as HEADERS and TYPE, etc. which take arguments such as a message sequence also default to the CURRENT message. If, at any point, you want to know whether a command that takes an argument defaults to one of its arguments, you can just type an [ESC] where you would normally type the argument. If it has a default, it will type it out and you can confirm that you want that argument by typing a carriage return (otherwise you can abort with a [CTRL]-U or backspacing). If it doesn't have a default, your terminal will beep at you. 2.4 Command Parser And Getting Help When you are prompted by the MM> (or for that matter in READ MODE by R> or in SEND MODE by S>) you will be using a command parser that is just like the one you are used to with TOPS-20. Partially typed commands can be completed by typing [ESC]. Also, at any point you can usually type a question-mark and get some useful help message. This is completely separate from the HELP facility MM has built into it already. So the important thing to remember is that you should type ? and [ESC] whenever you are not sure of what to do next. Also, typing HELP should be of some assistance. 2.5 TOP LEVEL Summary Of the above commands, by far the ones you will use most frequently are READ and SEND. Each of these invokes its own special mode that is identified by a different prompt from the Top Level MM> prompt. You should carefully study the following chapters on READ MODE and SEND MODE. Page 14 3.0 READ MODE 3.1 What Is READ MODE? READ MODE is a special way of reading and processing the messages in your message file. It has a number of commands, many of them very similar to the ones in TOP LEVEL, but different in that they refer only to the message being read. So, for instance, if you were to type READ 3, then the commands in READ MODE would, for the most part, apply to message 3. If you typed READ 3:10 (meaning to read messages 3 through 10, individually and one right after the other), then the commands in READ MODE would apply, for the most part, to each message between 3 and 10 inclusive as you read it. This turns out to be very useful for managing your message file since you will usually be dealing with individual messages. 3.2 Invoking READ MODE READ MODE is invoked simply by typing READ at the TOP LEVEL followed by an argument. (If the argument is left out, READ is taken to mean READ NEW and it will read any new messages you may have. If none exist, then it simply returns you to the Top Level). When you start MM and it tells you you have new messages, you should type READ in order to process the new messages one at a time. 3.3 Commands In READ MODE Following is a list of the commands available to you while in READ MODE. READ MODE is identified by the R> prompt. At that prompt, any of the following commands can be used: Blank, Continue, Copy, Delete, Edit, Flag, Forward, Header, Help, Keywords, List, Literal-type, Move, Net-mail, Next, Previous, Push, Quit, Re-mail, Reply, Send, Type, Unanswer, Undelete, Unflag, Unkeywords, Unmark. The following descriptions are basically what you would see if you typed R>HELP <command>. Notice that these commands are very similar to the TOP LEVEL commands, except that they do not take message sequence arguments. Instead, they apply to the message currently being read: BLANK blanks the terminal screen. CONTINUE resumes a SEND which was interrupted by QUIT. COPY takes one argument, a filename and copies the message currently being read into that file. DELETE deletes the message currently being read. Page 15 EDIT edits the message currently being read with the editor specified by the EDITOR variable in your MM.INIT FLAG makes the message currently being read be FLAGged so that the FLAGGED message sequence will contain this message. FORWARD forwards this message to other users. Suppose you are READing a message that you think S.SILVERMAN should also see. Then you could FORWARD him the message. HEADER outputs the one-line header summary of the current message sequence. HELP Allows you to get help on a specific topic of interest in READ MODE. HELP <command> gets help on that particular command. HELP, followed by a carriage return, gives you a general HELP for READ MODE. KEYWORDS takes one argument, a keywords list. It will then mark the current message with the designated keyword(s). To define a keyword, put a line in your MM.INIT of the form: KEYWORDS list-of-keywords This feature is useful for classifying old messages. LIST This prints the current message on the lineprinter. LITERAL-TYPE types out the body of the current message, without regard to ONLY-TYPE-HEADERS or DONT-TYPE-HEADERS. NET-MAIL the NET-MAIL command will attempt to send any messages that may be queued in your directory. MOVE takes 1 argument, a filename. So R>MOVE MESSAGES [RETURN] would move the message currently being read into that file and then subsequently delete the message. Note that this is similar to the COPY command in READ MODE which moves it into a file but doesn't delete it from your mail file. NEXT proceeds to read the next message in the sequence currently being read. So if you are currently READing 3 and you had specified MM>READ 3:6, then typing R>NEXT would go on to read message 4. (You can also just type a carriage return at the R> prompt. This is the same as typing NEXT.) Page 16 PREVIOUS goes to the previous message in the file and types it if undeleted. PUSH gives you a fresh copy of the TOPS-20 command language interpreter, heralded by the @ prompt. (To get back into READ mode, type POP at the @ prompt.) QUIT gets you out of READ MODE and back to the TOP LEVEL. RE-MAIL is similar to FORWARD, except instead of inserting the message after typein, the message is sent as is with the header modified to indicate who did the remailing. REPLY Suppose you are READing message 3 and think it warrants a reply on your part. Then you should type REPLY. It will automatically setup to reply back to the sender of message 3. End your reply with [ESC] just like in SEND MODE. SEND puts you into SEND MODE so you can send a message. If you are READing a message and it reminds you to send a message to someone, you would type SEND at that point. You get out of SEND MODE via [ESC], which sends the message gets you back to READ MODE. TYPE displays the current message. UNANSWER removes the answered status from the message currently being read. UNDELETE undeletes the message currently being read, assuming it has been DELETED earlier at some point. UNFLAG unflags the message currently being read, assuming it has been FLAGged earlier at some point. UNKEYWORDS unmarks the messages currrently being readk, as not being included in the keyword. UNMARK unmarks the message currently being read, i.e., makes it appear unseen. Page 17 4.0 SEND MODE 4.1 What Is SEND MODE? SEND MODE is invoked by the SEND command at TOP LEVEL or in READ LEVEL. In the following examples, underlined words in uppercase are those which you would type. Whenever you SEND a message, REPLY or ANSWER a message, or send a BUG report, SEND MODE is invoked in some form. Suppose you type SEND followed by a carriage return: MM>SEND [RETURN] ---- -------- To: At this point, MM is awaiting a list of addresses to send the message to. Legal addresses are of the form USERNAME or USERNAME,USERNAME,USERNAME (i.e., several usernames separated by commas). Suppose you want to send a message to S.SILVERMAN, JHSIEGMAN, and JCSANDELIN. You would say MM>SEND [RETURN] ---- -------- To: S.SILVERMAN, JHSIEGMAN, JCSANDELIN [RETURN] ------------ ---------- ---------- -------- The list of addresses is terminated with a carriage return. Notice that space will be ignored. You could just as well have said 'S.SILVERMAN,JHSIEGMAN,JCSANDELIN'. They are separated by space here only for readability. This is known as specifying the TO-LIST in sending a message. The next thing it will ask you for is a CC-LIST: MM>SEND [RETURN] ---- -------- To: S.SOLOMON [RETURN] --------- -------- cc: At this point you can specify a set of legal addresses as described above. These people will be sent a 'carbon copy' of the message. Usually you carbon copy people who, although you aren't sending them the message specifically, you would like them to see the message anyway. Suppose you would like to send a message to S.SOLOMON, M.MCLURE and would like VLAKANA to also receive a copy but you don't want her to feel as if he should respond. Then you would type: MM>SEND [RETURN] ---- -------- To: S.SOLOMON, M.MCLURE [RETURN] ---------- -------- -------- cc: VLAKANA [RETURN] ------- -------- Page 18 After specifying the CC-LIST you will then be asked for the subject of the message. Usually this is just a few words or a phrase which describes the topic of your message. For example, if you are sending a message to the above people about the recent difficulties involved with your project, you might say something like MM>SEND [RETURN] ---- -------- To: S.SOLOMON, M.MCLURE [RETURN] ---------- -------- -------- Cc: VLAKANA [RETURN] ------- -------- Subject: DIFFICULTIES ENCOUNTERED WITH PROJECT [RETURN] ------------ ----------- ---- ------- -------- After specifying all of the above information, you will be asked to actually type in the body of the message itself. Suppose you want to send a message to the above people, saying 'I AM ENCOUNTERING PROBLEMS WITH ACCESSING THE COMPUTER ON A REGULAR BASIS DUE TO THE EXTENDED PERIODS OF DOWNTIME. WHAT, IF ANYTHING, CAN BE DONE TO INSURE THE STABILITY OF THE COMPUTER?'. To do this you should type: MM>SEND [RETURN] ---- -------- To: S.SOLOMON, M.MCLURE [RETURN] ---------- -------- -------- cc: VLAKANA [RETURN] ------- -------- Subject: DIFFICULTIES ENCOUNTERED WITH PROJECT [RETURN] ------------ ----------- ---- ------- -------- Message (end with ESCAPE or ^Z): I AM ENCOUNTERING PROBLEMS WITH ACCESSING THE COMPUTER ON A [RETURN] - -- ------------ -------- ---- --------- --- -------- -- - -------- REGULAR BASIS DUE TO THE EXTENDED PERIODS OF DOWNTIME. WHAT,[RETURN] ------- ----- --- -- --- -------- ------- -- --------- ------------- IF ANYTHING, CAN BE DONE TO INSURE THE STABILITY OF THE [RETURN] -- --------- --- -- ---- -- ------ --- --------- -- --- -------- COMPUTER? [RETURN] --------- -------- [ESC] ----- S.SOLOMON -- ok M.MCLURE -- ok VLAKANA -- ok MM> In the above example, the message is typed in and ended with [ESC]. MM responds by confirming the delivery to S.SOLOMON and M.MCLURE and VLAKANA. Thereafter, it returns back to the TOP LEVEL MM> prompt. Page 19 While typing the text of your message, there are a number of useful commands that can be used. The commands are: [CTRL]-B insert a file into the place where you are currently typing. You will be prompted with INSERT FILE: at which point you should type the name of the file you want inserted and then a carriage return. You can then continue typing more of the message or send it. [CTRL]-C clobber MM and return to the TOPS-20 command (or [CALL]) language interpreter, heralded by the @ prompt. If you run a program at this point, you will lose your MM core image. To get back to it type @CONTINUE. [CTRL]-E invoke the editor specified in the EDITOR variable entry in your MM.INIT file on the text of the message as typed so far. (The default is TVEDIT.) [CTRL]-I inserts a tab into the text at the point where you or [TAB] are currently typing text in. [CTRL]-K types out the text of the message as it appears thus far. [CTRL]-R retypes the line that you are typing, from leftmost character to rightmost. [CTRL]-U erases the line that you are typing, from leftmost character to rightmost. [CTRL]-W erases the last word you typed. [DELETE] delete the last character. [ESC] or escape to SEND MODE heralded by the S> prompt at [CTRL]-Z which point any of the SEND MODE commands apply. To send the messgage, type SEND and then a carriage return. 4.2 Commands In SEND MODE As you see above, simply typing MM>SEND will not immediately put you into SEND MODE with the S> prompt. What will do this is finishing the text of your message with an [ESC] or [CTRL]-Z. However, if you want to change some attribute (e.g. add or subtract an address from the header, change the subject, etc.) you will need to get to the S> prompt with an [ESC] or [CTRL]-Z. If you do this, then you can use any of the SEND MODE commands. They are: BCC, BLANK, CC, DISPLAY, EDIT, ERASE, HEADERS, HELP, INSERT, LITERAL-TYPE, PUSH, QUIT, REMOVE, RESTORE-DRAFT, SAVE-DRAFT, SEND, SUBJECT, TEXT, TO, TYPE, USER-HEADER. Page 20 Following is a description of each of the above commands: BCC A blind-carbon copy is like a carbon-copy except that anyone who is not blind-carbon copied does not see the people who are. This is useful if you want to send a note to S.SILVERMAN and would like VLAKANA to see the message but don't want S.SILVERMAN to know that VLAKANA is also receiving a copy of the message. To do this you would put S.SILVERMAN as the To: recipient and [ESC] to SEND LEVEL and say S>BCC VLAKANA followed by a carriage return. BLANK blanks the terminal screen. CC This is used to add more carbon-copy addresses to the CC-LIST. To add JHSIEGMAN and JCSANDELIN, you would say S>CC JHSIEGMAN, JCSANDELIN. DISPLAY If you want to show the message you've typed thus far, its addresses, and the subject line, you can say S>DISPLAY followed by a carriage return. If the message is very long and you just want to display one of the fields, you can say S>DISPLAY TO or S>DISPLAY CC or S>DISPLAY SUBJECT or S>DISPLAY TEXT and a carriage return to show the corresponding field. EDIT A very useful feature that you will have occasion to use is to edit the text of your message. To do this, simply type S>EDIT followed by a carriage return. MM will then invoke the editor specified after the EDITOR variable in your MM.INIT file (If you specify none, the system default is TVEDIT.). To get back to MM you will have to use the standard exit from your editor ([ESC] [ESC] F if TVEDIT). ERASE Suppose you want to completely erase some field of your message, either TO, CC, SUBJECT, TEXT or ALL. You can use the ERASE command to do that. So to erase the text of your message, S>ERASE TEXT and a carriage return. MM will not let you send a message that doesn't have at least some TO: entry so if you S>ERASE TO, you will have to specify some other address(es) with the S>TO command in order to send it. HEADERS This command is identical to the one at TOP LEVEL. It lets you type out the headers of any messages in your message file. It takes a message sequence as an argument. However, it defaults to the current message. HELP This is the SEND MODE HELP command. You can use it to get general help about SENDing (by just saying S>HELP) or you can get more specific help by doing S>HELP <topic>. You can get a list of topics by saying S>HELP ?. Page 21 INSERT If you would like to insert the contents of a file as an addendum to your message, you should use this command. So to insert the file ADDENDUM, you would say S>INSERT ADDENDUM followed by a carriage return. LITERAL-TYPE This will type out the bodies of messages, without regard to ONLY-TYPE-HEADERS or DONT-TYPE-HEADERS informatin in your MM.INIT. PUSH This is identical to the PUSH commands at TOP LEVEL and READ LEVEL. It gives you a fresh copy of the TOPS-20 command language interpreter, heralded by the @ prompt. To get back to SEND mode, type POP. QUIT Similar to the QUIT commands at TOP and SEND levels. This takes you to the level immediately above your current SEND LEVEL. So it could take you back to TOP LEVEL if you had just previously been there. Or if you had given the SEND command at READ LEVEL it would take you back there. Note that this will abort the current message so you will lose any partially completed message you have been typing. REMOVE Suppose you have a long list of addresses in your TO-LIST and you want to remove one of them. You certainly don't want to ERASE TO since then you'll have to type them all in again. Rather you'd like to REMOVE the appropriate address. REMOVE is the command to do that. So suppose your TO-LIST looks like To: RDLAI, M.MCLURE, S.SILVERMAN, JCSANCELIN, SONDRA. You can remove JCSANDELIN by simply typing S>REMOVE JCSANDELIN [RETURN]. RESTORE-DRAFT If you were interrupted in the middle of a SEND and you saved a copy of the partial message with the SAVE-DRAFT command (see below), you can recall that message and finish it with this command. SAVE-DRAFT If you are interrupted in the middle of sending a message, you can save the draft and return to it later by using the SAVE-DRAFT filename command. Your message will be stored in a file which is saved in your directory. A copy of this draft stays in this file until you delete the file from your directory. SEND If you have decided that you want to send off the current state of your message, you can do so by typing S>SEND followed by a carriage return, or you can just type a carriage return at the S> prompt. SUBJECT This is used to change the subject of the current message you are sending. To change the current subject to be BUDGETS you should say S>SUBJECT BUDGETS. BUDGETS, of course, can consist of more than one word, if you so desire. Page 22 TEXT If you want to add text on to the end of the text as it currently exists, you can use this command. To add 'THE GREY DOG JUMPED OVER THE LAZY SWAN' you would simply say S>TEXT [RETURN] ---- -------- THE GREY DOG JUMPED OVER THE LAZY SWAN [ESC] --- ---- --- ------ ---- --- ---- ---- ----- TO To add more addresses to the TO-LIST, use this command. For example, to add JEMARCUS, M.MCLURE, RDLAI to the TO-LIST, you would simply type S>TO JEMARCUS, M.MCLURE, RDLAI [RETURN] -- --------- --------- ----- -------- TYPE This displays the message which would be typed out by the MM>TYPE CURRENT command at TOP LEVEL. For example, suppose you are at TOP LEVEL, give the TYPE command followed by a message number. It types out that message, and perhaps you desire to send off a message to someone since you have just remembered something that the message reminded you of. So you type MM>SEND. Then, while typing in your message, you want to refer back to that message again. To do that, simply get to the S> prompt and say TYPE followed by a carriage return. This types out that message. Page 23 4.3 Distribution Lists Thus far, we have dealt with short TO-LIST's and CC-LIST's. But what happens if you have 50 people you want to send a message to, and perhaps you send messages to this group of people fairly often. Clearly, you don't want to have to type the names in each time. Besides, if you had to do this, the header of the message would be extraordinarily long. There is a facility in MM for using distribution lists. A distribution list is simply a file, created with an editor, containing user names in it. For example, suppose you send a message to a group of users who head their projects. So you would create a file called PROJECT.LEADERS consisting of: PROJECT-LEADERS: PENTTI_KANERVA, SONDRA, S.SILVERMAN, VLAKANA, JEMARCUS, JHSIEGMAN If a file called PROJECT.LEADERS contains the above text, you can then use the file as a distribution list. So when you are prompted with 'To:' or 'cc:' you can say '@PROJECT.LEADERS' and have the above file inserted at that point. If you subsequently do a S>DISPLAY to see what has been put in the header, you'll note that only the text up to the colon is put in. So, for the above example if you did: MM>SEND [RETURN] ---- -------- To: @PROJECT.LEADERS [RETURN] ---------------- -------- cc: [RETURN] -------- Subject: SUMMARY OF WORK [RETURN] ------- -- ---- -------- Message (end with ESCAPE or ^Z): A SUMMARY OF THE WORK DONE SO FAR ON OUR RESPECTIVE [RETURN] - ------- -- --- ---- ---- -- --- -- --- ---------- -------- PROJECTS CAN BE FOUND IN <PROJECTS>SUMMARY.TEXT. [RETURN] -------- --- -- ----- -- ----------------------- -------- [ESC] ----- S> and now if you do a S>DISPLAY TO, you would see S>DISPLAY TO [RETURN] ------- -- -------- To: mailing-list: S> This is done so that you don't have to have the entire group of people in the header of the message. Rather, they are referred to collectively by the title appearing before the first colon in the PROJECT.LEADERS file. Of course, if you just have usernames separated by commas, then they will all be included in the header. Note that this distribution list capability works for the TO-LIST, CC-LIST, and BCC-LIST. Page 24 4.4 Sending Messages To A File You can also send messages to a file. This is done by simply specifying *<FILENAME> when you are prompted with the To: or cc:. For instance, if you wanted to send a copy of the above note to those project leader people and also CC a copy of the message to a file called MESSAGE.PROCEEDINGS in your directory, you could say: S>SEND [RETURN] ---- -------- To: @PROJECT.LEADERS [RETURN] ---------------- -------- cc: *MESSAGE.PROCEEDINGS [RETURN] -------------------- -------- : : 5.0 CONCLUDING THOUGHTS The best way to learn how to use MM is to look at this manual while you use MM. As you desire to read or send a message, look up the corresponding chapters on READ MODE and SEND MODE and use the information contained in them to learn more during your first MM sessions. Trying to remember all the different possibilities is just a waste of your time, since you certainly won't need to use them all. If, after you have used MM extensively, you feel that something has been left out of the program, feel free to use the BUG command. We are willing to listen to reasonable suggestions and let you know if anything can be done.