home *** CD-ROM | disk | FTP | other *** search
Text File | 1986-11-30 | 49.3 KB | 1,783 lines |
-
-
-
-
-
-
-
- Msg 3.1 Users Guide
-
-
- Dave Taylor
-
-
- March 15, 1986
-
-
-
-
-
- 1. Introduction
-
- The UNIX operating system was originally written on a
- small PDP machine to work with teletypewriters. Conse-
- quently, all the original software for the operating system
- was written with a 'tty' in mind - they were all line
- oriented, rather than screen oriented.
-
- Gradually this began to change, and, with the addition
- of the Berkeley vi visual shell to the ed line editor, the
- trend was brought to the attention of certain UNIX systems
- designers.
-
- This, however, seemingly hasn't been enough, as vi and
- notes are still the only screen oriented software available
- (other than games, which are a taboo subject with managers
- and the like!). Consequently, after becoming more and more
- frustrated with the existing electronic mail facilities on
- the system ('mail' and 'mailx', both of which are essen-
- tially line-editors) I decided to write my own!
-
- This document discusses the msg mailer, and includes a
- set of example screens and a discussion of configuration
- (for systems administrators). It is broken down into the
- following general sections; The .msgrc file, starting
- options of msg, the main system level, responses of various
- commands, the alias system, and system configuration.
-
- Any comments or problems with either this document or
- the program itself are welcome: all installed systems should
- have an alias that will ensure that I receive any mail sent
- to 'msg'.
-
-
-
-
-
-
-
-
-
-
- Page 1
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- 2. The .msgrc File
-
- The msg mailer has the ability to automatically read in
- a configuration file at each invocation. The file must be
- called ".msgrc" and reside in your home directory for it to
- be read in, and can have any of the following entries in any
- order (note that the first four entries replace environment
- variables of the same name, and the four boolean options
- supplement required starting parameters);
-
- fullname This is the name the mailer will use when sending
- mail from you. It is highly recommended that you
- use your full name and nothing strange or unusual,
- as that can appear extremely rude to people
- receiving your mail.
-
- maildir This is the default mail folder. It is used to
- expand filenames in the mailer when specified
- using the '=' metacharacter. That is, if you save
- to file "=/stuff" then the '=' will be expanded to
- the current value of maildir.
-
- mailbox This is where to put incoming mail after you've
- read it. When you answer 'y' to the "save to
- mailbox?" prompt, this is where the messages go!
-
- editor The editor to use when typing in message to peo-
- ple.
-
- print This indicates how to print out a message. There
- are two possible formats for this string, either a
- command that can have a filename affixed to (as a
- suffix) and then sent to the system for execution,
- or a string that contains the meta-sequence '%s'
- which will be replaced by the name of the file and
- then also sent to the shell. Examples of each
- are;
-
- print = print -formfeed
- print = pr %s | lpr
-
-
- prefix When you reply to a message or forward a message
- to another person, you can optionally include the
- original message. Defining the prefix value here
- allows you to indicate what the prefix of each
- included line should be. The default is "> " and
- is fairly standard in the Unix community.
-
- savemail This is where outgoing mail will have a copy
- silently (and quickly) saved. This will only be
-
-
-
- Page 2
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- used if the flag 'copy' is turned on. Also note
- that if the 'savename' flag is turned on then this
- line is ignored since each outgoing message is
- saved according to whom it's being sent to.
-
- shell This defines the shell to use when doing '!'
- escapes and such. Note that the program also
- reads the $SHELL variable out of the current
- environment, but that defining this in the .msgrc
- file will override the environment definition.
-
- weedout This is something new and exciting! When specify-
- ing this option, you can then list as many headers
- of messages that you don't want to see when you
- are read mail. This list can continue for as many
- lines as desired, as long as the continued lines
- all have leading indentation.
-
- alternatives This is a list of other machine/username combi-
- nations that you receive mail from (forwarded).
- This is used when the G)roup reply feature is
- invoked to ensure that you don't send yourself a
- copy of the outbound message.
-
- autocopy This is a boolean flag, and if set will automati-
- cally copy the text of each message being replied
- to into the edit buffer. This is the same as the
- '-a' starting parameter.
-
- copy This, in combination with the "savemail" filename,
- will allow you to have silent copies of all outgo-
- ing mail made on the outbound step.
-
- resolve This is a boolean flag that defines the behaviour
- of the program for such actions as deletion, sav-
- ing a message and so on.
-
- weed This is a boolean flag that, in combination with
- the "weedout" list, allows you to custom define
- the set of headers you would like to not have
- displayed while reading messages. The defaults
- are listed further into the document.
-
- noheader This boolean flag tells the mailer not to include
- the headers of messages when copying a message
- into a file buffer for replying to or forwarding.
-
- titles This boolean flag allows you to have each page of
- a message to be titled with:
- Message #N from username Mailed date at time
- where all the information has been previously
-
-
-
- Page 3
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- extracted from the message. This is especially
- useful if you weed out all the headers of each
- message with a large 'weedout' list...
-
- Two more things: the format for each of the lines is;
-
- variable = value
-
- and for boolean variables, value can be 'ON' or 'OFF' only.
-
- For a better idea of how this all works, here's my .msgrc
- file. While looking through it, notice that you can have
- lots of comments and blank lines for readability and that
- you can also use 'shell variables' and the '~' metacharacter
- for your home directory, and they are expanded accordingly
- when read in by the mailer.
-
- #
- # .msgrc - automatic variable defines for the 'msg' mailer.
- #
- # Personalized for Dave Taylor
- #
-
- fullname = Dave Taylor
-
- # where to save my mail to, default directory
- maildir = ~/Mail
-
- # where to save messages to, default file
- mailbox = ~/Mail/mailbox
-
- # what editor to use
- editor = $EDITOR
-
- # where to save mail if not specified somewhere else
- savemail = ~/Mail/mail.sent
-
- # how to print a message ('%s' is the filename)
- print = /usr/local/bin/print -p lpn -f %s
-
- # prefix sequence for including message text in other messages...
- prefix = >
-
- # what headers I DON'T want to see, ever.
-
- weedout = "Via:" "Sent:" "Date:" "Status:" "Original"
- "From" "Phase" "Subject:" "Fruit" "Sun"
- "Lat" "Buzzword" "Return" "Posted" "Telephone"
- "Postal-Address" "Origin" "X-Sent-By-Nmail-V"
- "Resent" "X-Location" "Source" "Mood" "Neuron"
- "Libido" "To:" "X-Mailer:" "Full-Name:" "X-HPMAIL"
-
-
-
- Page 4
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- "Cc:" "cc:" "Mmdf" "Network-"
-
- # automatically copy message being replied to into buffer?
- autocopy = OFF
-
- # save a copy of all outbound messages?
- copy = ON
-
- # emulate the mailx message increment mode (only increment after something
- # has been 'done' to a message, either saved or deleted)
- resolve = ON
-
- # enable the weedout list to be read...
- weed = ON
-
- # when messages are copied into the outbound buffer, don't include headers
- noheader = ON
-
- # display message title when displaying pages of message
- titles = ON
-
- # alternative addresses that I could receive mail from (usually a
- # forwarding mailbox)
-
- alternatives = hpcnof!dat, hpcnof!d_taylor, hpcnou!d_taylor,
- hpcnou!root, hpcnou!postmaster, hpcnoe!d_taylor,
- hpcnoe!dat, hpcnoa!d_taylor, hpcnoa!dat,
- hpfcla!d_taylor
-
- Along with this, there is still an environment variable that
- the mailer checks for, namely "EDITOR", which can also
- define what editor to use when entering messages. As with
- the shell variable, having an editor specified in the .msgrc
- file will override anything read in from the current
- environment.
-
-
-
-
- 3. The Starting Parameters
-
- There are a number of starting options to the msg pro-
- gram, with only one that needs to be remembered: '-?'or '-h'
- for help.
-
- The flags are;
-
- -d Debug. Useful for debugging the msg program. The
- results of using the debug option is much less
- drastic than in the previous versions of the pro-
- gram - it creates a file in your home directory
-
-
-
- Page 5
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- called "Msg.debug.info" and creates a (verbose)
- log of activity as the program is used.
-
- -f <file> File. Read specified file rather than the
- default input mailbox.
-
- -h or -? Help. Gives a short list of all these options
- and exit.
-
- -k Keypad - This option, when used, lets the msg pro-
- gram know that you're on an HP terminal, and it
- can then interpret the PREV NEXT and HOME/DOWN-
- HOME keys accordingly. If you are not on an HP
- terminal, it is recommended that you do NOT use
- this option.
-
- -s Softkeys. The msg mailer can, to a rather limited
- extent, use the HP softkeys as an alternative form
- of input. If you specify this option be sure that
- you're on an HP terminal that can accept the stan-
- dard 2622 terminal escape sequences!
-
- -z Zero. This causes the mailer not to be started if
- you don't have any mail. This emulates the
- behaviour of programs like 'mailx'.
-
- -S <subject> In batch mode, this is how to indicate the
- subject of the resulting message. Please see the
- section on "Non-Interactive Uses of Msg" for
- further information.
-
- All the above flags default to reasonable options, so
- there is usually no need to use them.
-
-
-
-
- 4. Non-Interactive Uses of Msg
-
- Before we discuss the main mail system, it's worth not-
- ing that there are a couple of other ways to use the msg
- mail system, namely to 'send only' and to send files (batch-
- mail).
-
- To send a message to someone without any of the associ-
- ated overhead of the main system being loaded, you can
- invoke the mailer with the name(s) of the people to send to.
- The mailer will then prompt for Subject, Copies, and then
- drop you in your (defined in the ".msgrc" file) editor to
- compose the message. When composition is complete, the
- program verifies transmission then terminates. For example;
-
-
-
- Page 6
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- $ msg dat
- To: ihnp4!hpfcla!d_taylor
- Subject: this is a test
- Copies To: <return>
-
- <invokes editor, message composed, then>
-
- Are you sure you want to send this? (y/n) y
-
- mail sent.
-
- $
-
- Note that the user input is in bold face, so you can see
- that the mailer verified the alias expansion too!
-
-
- The mailer also supports batch type mailing, of files
- and so on, by using the following starting sequence;
-
- $ msg -S "File help.c" dat < help.c
-
- which will read in the file and transmit it to the specified
- user with the specified subject. Note that the program is
- intelligent enough to check to see what the stdin is from
- this invocation, so a command of the form
-
- $ msg -S "file help.c" dat
-
- would result in the following sequence (since the program is
- reading the "standard in" for information;
-
- $ msg -S "file help.c" dat
- To: ihnp4!hpfcla!d_taylor
- Subject: file help.c
-
- Enter your message, ending with ^D
-
- this is the message
- Please don't ask me why I used this wierd mode!
-
- ^D
- <end-of-message>
-
- $
-
- which is reasonable behaviour!! (not only that, but this is
- almost exactly what /bin/mail does in the same situation!!)
-
-
-
-
-
-
- Page 7
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- Enough of this foolishness, however, let's get onto the
- real stuff;
-
-
-
-
- 5. The Main System
-
- Upon entry to the program, the main screen will be
- displayed as below;
-
-
- -----------------------------------------------------------------
- Mailbox is '/usr/mail/mymail' with 13 messages. [Version 3.0]
-
- 1<- Apr 3 rob Doing anything tonight?
- 2 Apr 5 hplabs!joe bug in gammon game
- 3 Apr 5 root
- 4 Apr 6 root (continuation of previous message)
- U 5 Apr 8 decvax!mouse Re: net.music article decvax:495
- 6 Apr 13 John Jacobs How can you hate RUSH?
- 7 Apr 15 kevin More software requests
- N 8 Apr 18 games Hi there
- N 9 Apr 18 Dave Taylor EditFile.c source...
- N 10 Apr 23 veeger!carl More silly stuff
-
-
- |=pipe, !=shell, ?=help, <n>=set current to n, /=search pattern
- A)lias, C)hange mailbox, D)elete, F)orward, G)roup reply, M)ail,
- N)ext, P)rint, R)eply, S)ave to file, Q)uit, U)ndelete, or eX)it
-
- Mail :@
- -----------------------------------------------------------------
-
-
-
- There are a number of things to notice about this
- screen;
-
- o The top line always displays the current mail file, the
- number of messages in the file, and the current msg
- version number.
-
- o On the left side of each message is the message number
- which is unique for each message in the file.
-
- o The arrow ('<-') always points to the current message.
- This is the message that the commands having default
- message numbers (such as D)elete, and N)ext) will work
- with.
-
-
-
-
- Page 8
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- o The date associated with each message is the date the
- person sent the message. This is obtained by either
- the oldest of the ">From" line dates, or, if possible,
- by parsing the "Date:" line.
-
- o The third field displayed is a truncated 'from'
- address, and will indicate whom the message is from.
- Note that on the sixth and ninth messages full names
- appear instead of the usual machine!login format. This
- is because these messages have a From line of the form:
-
- From: fullname <address>
- or From: address (fullname)
-
- which the mailer reads and displays if possible. The
- msg mailer (version 2.1 and beyond) also generates this
- header line on outgoing mail.
-
- o The final field is the (optional) subject of the mes-
- sage. Note that message 3 has no subject.
-
- o Message five is an 'Urgent' message (it contains the
- header
-
- Priority: Urgent
-
- to make it urgent) that should be read immediately.
-
- o Messages 8 thru 10 are new since the last time the user
- read their mail - the "N" in the leftmost margin indi-
- cates this.
-
- o A maximum of ten messages are displayed at one time*.
- Further into the document we'll learn how to change
- 'pages' in the mailbox.
-
- o The three line mini-menu will always indicate what com-
- mands are available at the current moment.
-
- o Finally, the '@' character indicates where the cursor
- would be, awaiting your input.
-
- The typical action at this point is to use the <return>
- key to read the current message. This particular option
-
-
- __________
-
- 0. On terminals with greater than 25 lines, more messages
- will be displayed automatically.
-
-
-
-
- Page 9
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- isn't noted in the mini-menu, but choosing the '?=help'
- option will inform you of a number of choices other than
- those in the basic menu!
-
- Pressing this key will clear the screen and display the
- first page of the message. At the bottom of the page, the
- system will write either;
-
- Please press <space> to continue <xx> lines left
-
- or
-
- Please press <space> to return
-
- These indicate how much of the current message has been
- read: 'continue' indicates the presence of at least one more
- line of information (the exact number will be indicated on
- the right hand side as 'xx lines left'). Pressing <return>
- rather than <space> will automatically return you to the
- main system level at any page of a message.
-
- When the message continues onto another page the msg
- mailer will also indicate how many lines are left in the
- message...
-
- If resolve-mode is turned off (see the 'resolve' flag)
- the current message pointer (the arrow) will be incremented
- after reading the message and will point to the next message
- in the list.
-
- As you can see, it would be quite simple to quickly
- read through all the pending mail by repeatedly using the
- <return> command at the menu level, and the <space> bar
- while reading each message!
-
- While reading is perhaps the most fundamental function
- that the msg program performs, there are a number of other
- options available, namely;
-
-
- Command Action
-
-
- | Pipe current message to specified com-
- mand.
- ! Shell escape.
- ? A help screen listing commands
- +, <space>, or <NEXT> Next page of headers
- -, or <PREV> Previous page of headers
- =, or <HOME> Set current message to 1
- *, or <SHIFT>-<HOME> Set current to last message.
-
-
-
- Page 10
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- <n> Set current message to n
-
- a Alias, change to 'alias' mode
- c Change current mail file
- d Delete current message
- f Forward message to specified user
- g Group reply - reply to everyone who
- received the current message
- h Display message + headers
- j Increment current message by one
- k Decrement current message by one
- m Mail to arbitrary user(s)
- n or <return> Next message (Read current, then
- increment)
- o Option. Alter current options.
- p Print current message.
- r Reply to the author of current message
- s Save current message to file
- t The current time and date is displayed
- q Quit - mail deleted, saved in mbox or
- left.
- u Undelete current message
- v Variables. Display current variables.
- x Exit - don't record as read, don't
- save...
-
- ^L Rewrite screen.
- ^M (<return>) Read current message
- ^Q, ^Z, DEL Exit - don't record as read, don't
- save...
-
-
- That are all the commands available at the main level of the
- msg program! Now you can see why it is nice to leave the
- three-line menu displayed!
-
-
-
- As an example, let's enter a series of commands and
- indicate what the display would be after each one;
-
-
- First off, let's go to the next page of mail with '+';
-
-
-
-
-
-
-
-
-
-
-
- Page 11
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- -----------------------------------------------------------------
- Mailbox is '/usr/mail/mymail' with 13 messages. [Version 3.0]
-
- N 11<- Apr 27 Jack Wanna buy some albums cheap?
- N 12 Apr 28 Jack Cancel the previous offer!
- N 13 Apr 30 sdcsvax!dx Moving day (long)
-
-
-
-
-
-
-
-
-
- |=pipe, !=shell, ?=help, <n>=set current to n, /=search pattern
- A)lias, C)hange mailbox, D)elete, F)orward, G)roup reply, M)ail,
- N)ext, P)rint, R)eply, S)ave to file, Q)uit, U)ndelete, or eX)it
-
- Mail :@
- -----------------------------------------------------------------
-
- We need to move the current message pointer to message
- 11, so type in '11', then let's read the new current message
- by using the next command (typing <return>)...
-
-
- -----------------------------------------------------------------
-
- Message #11 from Jack Mailed December 7, 1984 at 8:45 pm
-
- Hey Dave! I've got some old AC/DC and KISS albums, and as I know
- you are a collector, do you want to buy them off of me before
- I make ashtrays out of them (or frisbees...)?
-
- Humourously,
- Jack The Gripper
-
-
-
-
-
-
-
- Please press <space> to return: @
-
- -----------------------------------------------------------------
-
-
-
-
-
-
-
- Page 12
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- Needless to say, we can't let this message go by
- without replying! So let's press the <space> bar to return
- to the main menu, then use the reply command to respond.
-
- After pressing the 'r' key, the program asks if a copy
- of the source message is desired (the character under the
- cursor indicates the default if <return> is pressed. In
- this case, the default is 'no');
-
- copy source message? (y/n) @
-
- We choose to answer no, so press the 'n' key. Next msg
- verifies that the subject is okay;
-
- Subject: Re: Wanna buy some albums cheap?@
-
- Typing anything other than <return> will allow us to change
- the subject to something more appropriate. Furthermore, if
- we choose to type our "kill line" character (the same as the
- one the shell uses, probably Control-U or Control-X) the
- entire line will be erased. We decide, however, to leave it
- be and press return.
-
- Finally, we're asked if we want to send copies of this mes-
- sage to anyone. We don't, so we press <return> one more
- time.
-
- The program then puts us in the vi editor (the default,
- assuming no other editor specified by the '.msgrc' variable
- "editor") with a blank file.
-
- After having entered a suitable reply, and left the
- editor, the msg system then verifies that we really want to
- send the message with;
-
- Are you sure you want to send this message? (y/n) @
-
- To which the response is 'y' for 'yes'. It then sends the
- message off to Jack, who will receive it hopefully quite
- soon (or at least before he makes ashtrays out of the
- albums!)
-
-
- Also, if we have a file called ".msgheaders" in our
- home directory, the mailer will include those headers in the
- outbound message. This is to allow custom (personalized)
- mail, especially headers like "Organization:" and "Loca-
- tion:".
-
-
-
-
-
-
- Page 13
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- Message 11 is still the current message, so, now that
- we have saved it, let's mark it for deletion by using the
- delete command 'd'.
-
- The screen is now;
-
-
- -----------------------------------------------------------------
- Mailbox is '/usr/mail/mymail' with 13 messages. [Version 3.0]
-
- N 11 * Apr 27 Jack Wanna buy some albums cheap?
- N 12<- Apr 28 Jack Cancel the previous offer!
- N 13 Apr 30 sdcsvax!dx Moving day (long)
-
-
-
-
-
-
-
-
-
-
- |=pipe, !=shell, ?=help, <n>=set current to n, /=search pattern
- A)lias, C)hange mailbox, D)elete, F)orward, G)roup reply, M)ail,
- N)ext, P)rint, R)eply, S)ave to file, Q)uit, U)ndelete, or eX)it
-
- Mail :@
- -----------------------------------------------------------------
-
-
-
- Now lets go back to the first page of messages by typing '=';
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 14
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- -----------------------------------------------------------------
- Mailbox is '/usr/mail/mymail' with 13 messages. [version 2.2]
-
- 1<- Apr 3 rob Doing anything tonight?
- 2 Apr 5 hplabs!joe bug in gammon game
- 3 Apr 5 root
- 4 Apr 6 root (continuation of previous message)
- U 5 Apr 8 decvax!mouse Re: net.music article decvax:495
- 6 Apr 13 John Jacob How can you hate RUSH?
- 7 Apr 15 kevin More software requests
- N 8 Apr 18 games Hi there
- N 9 Apr 18 Dave Taylor EditFile.c source...
- N 10 Apr 23 veeger!carl More silly stuff
-
-
-
- |=pipe, !=shell, ?=help, <n>=set current to n, /=search pattern
- A)lias, C)hange mailbox, D)elete, F)orward, G)roup reply, M)ail,
- N)ext, P)rint, R)eply, S)ave to file, Q)uit, U)ndelete, or eX)it
-
- Mail :@
- -----------------------------------------------------------------
-
-
-
- Gee..note five not only looks mildly interesting but
- it's an Urgent message too! So let's read it by typing
- '5'<return> to make that the current message, and press
- <return> again to read it. After reading the message we
- decide that this seems like a message worth keeping in the
- 'music' mailbox, so lets do that by using the save to file
- command!
-
- Pressing 's' results in the msg system prompting;
-
- Save to what file : @
-
- to which we reply '=/music'. The file is then saved in the
- directory we specified as mail home via the '.msgrc' vari-
- able "maildir". After saving, the "Mail:" prompt returns,
- with message 5 marked for deletion and the current message
- pointer incremented to message 6.
-
- Before we finish up, we suddenly remember that one of
- the messages was supposed to be about how to write decent
- documentation for Unix systems, so let's try to find it...
-
- First off, we'll move back to message one with the
- <HOME> key (you'll need to use the "-k" starting option and
- be on an HP terminal for this to work!) and then use the '/'
- pattern matching command:
-
-
-
- Page 15
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- Mail: Pattern / = match anywhere in messages
- Match pattern: @
-
- we'll type in 'document' and see if the system can find it.
- After a brief second or two it returns 'pattern not found.'
- Hmm...maybe it's not either the from or the subject of any
- of the messages...In case, let's try using the new match
- anywhere in message command;
-
- Mail: @
-
- To which we type '/' for pattern matching;
-
- Mail: Pattern / = match anywhere in messages
- Match pattern: @
-
- Now we'll use '/' again to get the match anywhere in file
- option, and then get the prompt;
-
- Match pattern (in entire mailbox): @
-
- to which we respond 'document' again.
-
- The msg mailer then searches through each line of all
- the messages in the file and moves the current message
- pointer to message number 7. A quick check reveals that
- this message indeed contains the word 'document', but it's
- not the one we want, so we're going to just get outta here!
-
- We've had enough mail for today, so lets quit, saving
- all messages in our mailbox as defined in the '.msgrc' file,
- except messages 5 and 11, which are marked for deletion.
-
- Quit prompts;
-
- Delete messages? (y/n) @
-
- to which we answer 'y' for yes. The next prompt is then;
-
- Keep mail in incoming mailbox? (y/n) @
-
- To which we also answer yes...the program then quickly saves
- the files, removing message 5 and 11 as it goes along, and
- exits.
-
-
-
-
-
-
-
-
-
-
- Page 16
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- 6. Responses...
-
-
-
- This section will discuss each command in the msg pro-
- gram in more detail than above, including the prompts the
- user can expect upon executing the command, the meaning of
- different options etc etc.
-
-
- | Pipe. This command allows you to pipe the current
- message through other filters as you desire. The
- shell used for the entire command will be either
- the one specified in your ".msgrc" file, or, if
- none, /bin/sh.
-
- ! Shell. This allows you to send a command to the
- shell without leaving the program.
-
- ? Help. This command produces a two-page display
- that details all the commands available in a
- reference guide format.
-
- / Pattern match. This command, on the top level,
- allows the user to search through all the from and
- subject lines of the current mailbox starting at
- the current message and continuing through the
- end. If the first character of the pattern is a
- '/', then the program will try to match the speci-
- fied pattern against ANY line in the mailbox.
- Again, this works from one after the current mes-
- sage through the end.
-
- <n> Specify new current message. Typing in any of the
- digits one thru nine will result in the msg pro-
- gram producing the prompt 'Set current to : n',
- where 'n' is the digit entered. Note that changing
- the current message to a message not on the
- current page of the headers will result in a new
- page of headers being displayed.
-
- a Alias. The alias system is a way by which more
- complex mail addresses can be shortened for the
- mail user. For example;
-
- joe, blow : Joe Blow : veeger!hpcnoe!hpcfla!jblow
-
- which allows mail to 'joe' with the system expand-
- ing the address properly. As is obvious, this not
- only saves remembering complex addresses, it also
- allows the address to be optimized to go through
-
-
-
- Page 17
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- the minimum number of machines without anyone hav-
- ing to be informed of the change. A more detailed
- discussion can be found in the section entitled
- 'The Alias System'.
-
- c Change mailbox. Specifying this command allows
- the user to change the mailbox file that is
- currently being read. This is intended for
- perusal and reply to previously archived messages.
- The prompt is 'Name of new mailbox : ' and enter-
- ing <return> cancels the operation, while entering
- a filename causes the program to read that file as
- the new mailbox file, if possible. As with the
- "save" command, this command expands filenames
- with '~' being your home directory and '=' being
- your MAILDIR directory, if defined. This command
- also allows the special character '!' to be used
- to allow you to change to the default incoming
- mailbox.
-
- d, u Delete and Undelete. Neither of these two com-
- mands have any prompts and indicate their action
- by either adding an asterisk to the current mes-
- sage index entry (indicating deletion pending) or
- removing the asterisk (indicating that the dele-
- tion is cancelled).
-
- f Forward. Allows the user to forward the current
- message to another user. This copies the message
- into the edit buffer and allows the user to add
- their own message too. The prompt is 'Forward
- to:' and will expand an alias if entered.
-
- j, k These two keys work similarly to what they would
- do in 'vi' or any of the other screen oriented
- programs. The 'j' key moves the current message
- pointer down to the next message (going to the
- next page if needed) and the 'k' key moves the
- current message pointer back to the previous mes-
- sage (also changing pages if needed)
-
- m Mail. Send mail to a specified user. The prompt
- that is associated with this command is 'Send mail
- to :'. Entering an alias name results in the full
- address being rewritten in parenthesis immedi-
- ately. This prompt is followed by 'Subject:'
- which allows the user to title their note. The
- final field is 'Copies to: ', which allows other
- people specified to receive "carbon copies" of the
- message. Upon entering all three items the vi edi-
- tor (or any other editor specified by $EDITOR) is
-
-
-
- Page 18
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- invoked and the message can be composed.
-
- n Next message. See above.
-
- o Options. This is a small subsystem of the msg
- system with the various options selected by their
- first letter, '1' enabling the option, '0' disa-
- bling it and <return> leaving it unchanged. 'r'
- returns to the main system.
-
- p Print message. This allows you to print out the
- current message to a previously defined printer
- (see the section on the '.msgrc' discussing the
- "print" variable)
-
- q Quit. This command's action is dependent on the
- current state of the msg program. For example, if
- the current mailbox is the default mailbox the
- messages that are not deleted are saved in the
- file $home/mbox, whereas if it is a specified
- mailbox the to-be-deleted messages are removed
- from the file. The possible prompts are 'Save to
- mailbox?' if the default mailbox is being read and
- there is at least one message to save, 'Delete all
- messages' if all messages in any mailbox are
- marked for deletion or 'Delete message(s)?' if not
- reading the default mailbox and there are some
- messages that should be saved. A response of 'n'
- (no) to any of these questions will result in the
- quit command aborting, and the files being
- untouched.
-
- r Reply. Reply to the author of the current mes-
- sage. If the autocopy flag is not specified, the
- program will prompt 'Copy Message? (y/n)' to which
- the user can specify whether a copy of the source
- message is to be copied into the edit buffer, or
- not. If copied in, all lines from the message are
- prepended with the prefix character sequence, as
- specified in the users ".msgrc" file.
-
- s Save to file. As demonstrated in the above exam-
- ple, this command allows the current message to be
- copied into an arbitrary file. If there is any-
- thing in the file currently the message is
- appended to the end, otherwise the file is created
- containing only the message. The prompt for this
- command is 'Save to file : '. A response of
- <return> cancels the command and returns the user
- to the system prompt. After saving a file, the
- message is marked for deletion and the current
-
-
-
- Page 19
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- message pointer is incremented. There are two
- available meta-characters when specifying a
- filename too - '~' as the first character expands
- to your home directory, and '=' as the first char-
- acter expands to the mail folder directory defined
- via the 'maildir' variable in the users ".msgrc"
- file.
-
- t Time. This simply displays the current date and
- time in a nice readable format.
-
- v Variables. This is also a small subsystem of the
- msg system allowing you to alter the value of
- various msg variables. The variables that you can
- change are the 'EDITOR' variable which determines
- what editor to use when you compose a message, the
- 'MAILBOX' variable which indicates where mail is
- to be put after being read, and the 'USERNAME'
- variable. (Note that only the superuser can
- change their username within the program)
-
- x Exit. This is functionally the same as answering
- 'n'o to the quit command prompt, and simply leaves
- the program in the quickest possible manner. This
- command can also occur from typing DELETE,
- control-Q or control-Z, all of which are also exit
- commands.
-
-
-
-
- 7. Special Outgoing Mail Processing
-
-
-
- There are a few extra features that the mailer offers
- on outgoing mail that are worthy of mention;
-
-
- The first, and probably the most exciting feature, is
- the ability to send encrypted mail! To do this is extremely
- simple: You need merely to have two 'key lines' "[encode]"
- and "[clear]" in the message body.
-
- Consider the following outgoing message:
-
- Joe,
- Remember that talk we had about Amy? Well,
- I talked to my manager about it and he said...
-
- uhh...better encrypt this...the usual 'key'...
-
-
-
- Page 20
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- [encode]
-
- He said that Amy was having family problems
- and that it had been affecting her work.
-
- Given this, I went and talked to her, and
- told her I was sorry for getting angry. She said
- that she understood.
-
- We're friends again!!
- [clear]
-
- Exciting stuff, eh?
-
- Mike
-
- While this is obviously quite readable while being typed
- into the editor, as soon as the message is confirmed as
- wanting to be sent, the msg mailer prompts with;
-
- Enter encryption key: @
-
- and accepts a key (or series of 8 or less characters)
- without echoing them to the screen. After entry, it will
- ask for the same key again to confirm it, then *poof* it
- will encrypt and send the mail!
-
- If you have the "copy" option enabled, the program will
- save your copy of the message encrypted too. (This is to
- ensure the privacy and security of your archived mail too!)
-
- If the mailer doesn't ask for the encryption key, it's
- because you don't have the '[encode]' entered as the first 8
- characters of the line. It MUST be so for this to work!!
-
- On the other end, a person receiving this mail (they
- must also be using msg to receive it, since this mailer has
- a unique encryption program) will be reading the message and
- then suddenly be prompted;
-
- Enter decryption key: @
-
- and will again be asked to re-enter it to confirm. The pro-
- gram will then on-the-fly decrypt the mail and display each
- line as it is decoded. The '[clear]' line signifies that
- the block to encrypt is done.
-
- For those sites not running msg, I also have available
- the encryption code as a separate program suitable for a
- filter for use with other mailers...
-
-
-
-
- Page 21
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- The other option on outgoing mail is the ability to
- specify what section of the message you want to have
- archived (assuming "copy" is enabled) and what section you
- don't. This is most useful for sending out source file
- listings and so on...
-
- To indicate the end of the section that should be saved
- in the archive, you need merely to have the line
-
- [no save]
-
- appear by itself on a line. This will be removed from the
- outgoing mail, and will indicate the last line of the mes-
- sage in the saved mail.
-
-
-
-
- 8. The Mail Archive File
-
-
-
- The format of the mail saved to the archive file is
- also worth a quick discussion. Unlike the usual exact copy
- of the entire header section, the archived mail has the fol-
- lowing header;
-
- From To:<name> 15 Jan 1985 4:54:30 MST
- Original-To: <address>
- Subject: <subject>
-
- <message body>
-
- The first line, the 'From' line, is deliberately mangled
- with the occurance of the 'To:<name' to ensure that when you
- are perusing your archive file with the mailer that you see
- WHO the message was TO, since they're all going to be FROM
- you!! The <name> will either be the machine!login of the
- person, or, if used as an alias, it will be the alias name.
-
- To read this file, you can use the mailer, choosing the
- "C)hange mailbox" command, or start up specifying your
- archive file as the mailbox to read.
-
-
-
-
-
-
-
-
-
-
-
- Page 22
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- 9. Using MSG with the Notes System
-
-
-
- A new and innovative feature in the 3.0 release of the
- msg program is the ability to read files saved by the notes
- system and display them as individual messages. Unfor-
- tunately, the notes software does not currently save a note
- with the subject line, however, so the mailer uses the next
- best thing and displays each note in the form:
-
- 1 Apr 5 hplabs!kundler Note from group net.unix-wizards
- 2 Apr 7 hplabs!richards Note from group net.unix-wizards
-
- and so on. The individual notes can be replied to by using
- the reply command, as with normal mail, and the mailer will
- modify it's behaviour to work with this particular brand of
- mail file.
-
- How does the mailer know if it's reading a file that
- contains normal mail versus a saved set of notes? By check-
- ing the first line of the file - if it's the header line
- that notes emits (ie "/***** host:login / notesgroup / date
- **/") then the file is considered to be a notes file. If
- not, the default for unknown files is to assume they're mail
- files.
-
-
-
-
- 10. The Alias System
-
-
-
- As mentioned previously, there exists in the msg system
- a set of aliases that associate an arbitrary word (such as a
- persons name) to a complex address or group. The advantages
- are readily apparent; rather than remembering an address of
- the form;
-
- machine1!machine2!machine3! ... !machineN!account
-
- the user merely has to remember a single word.
-
- Two alias tables are available for a each user within
- msg, namely the system alias file and the users' alias file.
- The system alias file is created and maintained (by the sys-
- tem administrator) by editing the file
- '/usr/mail/.alias_text' as described in the documentation
- with the newalias command, then running the newalias pro-
- gram.
-
-
-
- Page 23
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- An individual user can also have an alias file which
- works in conjunction with the system aliases. To do this,
- they need merely to peruse the documentation for the
- newalias command and create a file as indicated therein.
- After executing the program, the aliases will be available
- for using from within msg.
-
- The command checkalias is also useful to ensure that
- the aliases are installed correctly.
-
- Within msg, however, the alias system acts as an
- entirely different program, with it's own commands and own
- mini-menu. The menu replaces the standard mini-menu with;
-
-
- ---------------------------------------------------------------------
-
- Alias commands
-
- A)lias current message, C)heck alias, M)ake user alias, R)eturn
-
-
- Alias: @
- ---------------------------------------------------------------------
-
-
- The commands are;
-
- a Alias current message. This allows the user to
- create an alias that has the return address of the
- current message as the address field of the alias.
- It prompts for a unique alias name. Important
- note: when you alias an address in this fashion,
- the mailer will try to minimize the amount it
- needs to store by iteratively comparing machine
- names in the path with the machines in the
- pathalias database. Once it finds an entry the
- address will be saved at that point. For further
- information, please see the "Msg Alias System
- Guide".
-
- c Check alias. This is a simple way of checking
- what is in the alias database - it prompts for an
- alias name, and returns the address associated
- with that name or the error message 'alias not
- found' as appropriate.
-
- m Make user alias. This will prompt for a unique
- alias name and then for an address. The informa-
- tion provided will be added to your individual
- alias_text file ($home/.alias_text) and then added
-
-
-
- Page 24
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- to the database.
-
- r Return. Return to the main level of the msg pro-
- gram.
-
-
-
-
- 11. While We're Talking Aliases...
-
- Another feature worthy of discussion, since it's been
- getting lots of veiled references throughout this document,
- is the system alias section. This is implemented using the
- uucp pathalias database, with a file (whose location is
- specified in the hdrs/sysdefs.h file - see the Configuration
- Guide) in the format:
-
- hostname <tab> address!%s
-
- The actual details of the file are, suprise suprise, located
- in the Alias System Users Guide.
-
- Anyway, to use them is quite simple...when specifying
- the address of someone, you can either have an alias for
- them already, resond to their mail to you, or use the system
- alias feature!
-
- Enough hype, right? Okay...to use this feature, you
- specify an address by either "machine!person" ignoring if
- your specific machine can talk directly to the machine
- specified, or, if you prefer the ARPANET addressing scheme,
- "person@machine". When you enter the address as specified,
- the mailer will quickly search through the pathalias data-
- base file and expand the specified address to be a legiti-
- mate routing address.
-
- What's really nice about this is that the address that
- we're going to send to can be either on ARPA, CSNET, BITNET,
- uucp, or any other network. The method of specifying the
- basic address is the same regardless!
-
- For example, mail to me could be sent as either
- "hpfcla!d_taylor" (or "hpfcla!hpcnof!d_taylor", with the
- first machine name being expanded) or "d_taylor@hpfcla".
- msg will expand them both in the same manner.
-
- As the song goes, check the alias guide...
-
-
-
-
-
-
-
- Page 25
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- 12. Expert Mail Users and Debugging the Mailer
-
- There are some additional facilities available in the
- msg mailer for those people who are knowledgable about mail
- protocols, or trying to debug/track down a problem.
-
- The 'h' command at the outermost level of the mailer
- will display the current message ignoring the current set-
- ting of the 'weed' option. This is most useful for answer-
- ing questions of the form "I wonder what this guy put in his
- header?" and such. This command does not show up on the
- mini-menu because it is somewhat esoteric, but it DOES
- appear on the '?' help screen (can you find it there?).
-
- The '@' command at the outermost level of the mailer
- will output a screen of debugging information, including the
- number of lines and offsets of each of the message in the
- current mailbox.
-
- The '#' command at the outermost level of the mailer
- will display the entire stored 'record structure' for the
- current message.
-
- The '%' command at the outermost level of the mailer
- will display the full computed return address of the current
- message.
-
- Starting up msg with the "-d" debug option will create
- a file called Msg.debug.info in your home directory and con-
- tain a wealth of useful information (to me, at least!) to
- aid in tracking down what errors are occuring and why. With
- this option on, most everything acts the same with the
- exception of when you get new mail while in the mailer - it
- will indicate "New mail: N bytes" rather than the usual "New
- mail has arrived...hang on...".
-
-
- If there are any problems with the mailer, please try
- to recreate the error with the debug option enabled before
- sending defect reports my way.
-
-
- One final note: all error numbers reported by the pro-
- gram are defined in the HP-UX Reference Manual in Errno(2).
-
-
-
-
-
-
-
-
-
-
- Page 26
-
-
-
-
-
-
-
- Msg Users Guide Version 3.2
-
-
-
- 13. Credits and so on
-
- This mailer has been evolving over the past year or so
- with some extremely valuable input from the following people
- at Hewlett Packard; Mark Laubach, Walt Underwood, Tw Cook,
- Larry Fenske, Rob Sartin, and of course Carl Dierschow.
- There have been many others, to numerous to mention, that
- have inspired me with questions like "why can't the
- mailer..." or "why does it do that?"
-
- Also helpful was the ability to have my 'own' machine
- to close up the many many iterative loops that this software
- has gone through - since being on a big multi-user machine
- tends to slow it down to a standstill...
-
- Finally, it's also been a very useful experience
- overall, confirming my beliefs that iterative software
- design and keeping a close watch on users (not to mention an
- open mind and mailbox!) improves a product manyfold.
-
- Incidentally, this entire mail system, including this
- documentation, is
-
- (C) Copyright 1986 Dave Taylor
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 27
-
-
-
-
-