[comp.sources.unix] v18i084: Elm mail system, release 2.2, Part05/24

rsalz@uunet.uu.net (Rich Salz) (04/11/89)

Submitted-by: dsinc!syd@uunet.UU.NET (Syd Weinstein)
Posting-number: Volume 18, Issue 84
Archive-name: elm2.2/part05

#!/bin/sh
# this is part 5 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
# file doc/Ref.guide continued
#
CurArch=5
if test ! -r s2_seq_.tmp
then echo "Please unpack part 1 first!"
     exit 1; fi
( read Scheck
  if test "$Scheck" != $CurArch
  then echo "Please unpack part $Scheck next!"
       exit 1;
  else exit 0; fi
) < s2_seq_.tmp || exit 1
echo "x - Continuing file doc/Ref.guide"
sed 's/^X//' << 'SHAR_EOF' >> doc/Ref.guide
Xthan returned directly to the index screen.
XIf the external pager you are using exits when it reaches end of file
X(i.e. end of the message), you should have this flag ON,
Xotherwise the last screen of the displayed message will not be held
Xbut instead be immediately replaced by the index screen.
XIf the external pager you are using does not exit until you command it to exit,
Xyou have a choice.
XIf you usually want to see the index screen before issuing a command,
Xhaving the flag OFF will cut down out the extra keystroke needed to return
Xto the index screen.
XIf you usually don't need to see the index screen to before issuing the
Xnext command,
Xhaving the flag ON will allow you to proceed with your next command without
Xhaving to wait for the redrawing of the index screen.
X(The default is ON.)
X
X.lp pointnew 1.0i
XIf this is turned on, the mailer will be automatically 
Xpointing to the first new message in your folder when started, instead
Xof at message #1.  This will only be effective for the incoming mailbox since
Xother folders are not expected to have `new' mail.  (The default is ON.)
X
X.lp resolve 1.0i
XThis is a boolean flag that defines the behaviour of the
Xprogram for such actions as deletion, saving a message 
Xand so on.   Specifically, with this option enabled, as
Xsoon as mail is `dealt with' the program moves you to the
Xnext message in the folder, with deletion, undeletion,
Xsaving a message and forwarding a message all being treated as
Xdealing with email in this manner.
X(The default is ON.)
X
X.lp savename 1.0i
XOne of the problems with electronic mail systems is that one
Xtends to get very large, one-dimensional (flat) files that
Xcontain lots of completely unrelated mail.  If this option
Xis turned on, \f2elm\f1 will use a more intelligent 
Xalgorithm \(em on incoming mail, when you \f2save\f1 or \f2copy\f1 it,
Xthe default mailbox to save to (changeable by pressing anything other than
X<return> of course) is a folder that is the \f2login name\f1 of the
Xperson who sent you the message.  Similarly, when sending mail out,
Xinstead of just blindly saving it to the \f2sentmail\f1 folder, \f2elm\f1
Xwill save it to a folder that is the login name of the 
Xperson who is to receive the mail\s-2\u2\d\s0.
X.fn
X2. When sending to a group, it's saved to the first person in the 
Xlist only.
X.ef
X
XIn practice, this means that important people that you communicate
Xwith (those that you tend to save mail from) have folders that are
Xactually \f2a recorded log of the discussion in both directions\f1
Xand those others (random mailings) are all stuffed in the \f2sentmail\f1
Xfolder for easy perusal and removal. (The default is ON.)
X
X.lp softkeys 1.0i
XIf on, this tells \f2elm\f1 that you have an HP terminal with the
XHP 2622 function key protocol and that you'd like to have them available
Xwhile in the program.  (The default is OFF.)
X
X.lp titles 1.0i
XThis flag allows you to have the first line of a message
Xtitled with:
X.sp
X.ft CW
X.ps 9
X.nf
X.tl '           Message \f2N/M\fP from \f2username\fP''\f2date\fP at \f2time\f1      '
X.fi
X.ps 10
X.ft 1
X.sp
Xwhere all the information has been previously extracted
Xfrom the message.
XThis is especially useful if you weed out all the headers of each
Xmessage with a large `weedout' list...
X(The default is ON.)
X
X.lp warnings 1.0i
XThe mailer likes to warn you when you send mail to a machine that cannot
Xbe directly accessed.  In some situations, however, the system is set up so
Xthat mail is automatically forwarded to another machine that might then
Xhave better connections.  Setting this flag will allow you to effectively
Xshut off all the warning messages.  (The default is ON.)
X
X.lp weed 1.0i
XThis is a boolean flag that, in combination with the
X``weedout'' list, allows you to custom define the set of
Xheaders you would like to not have displayed while reading
Xmessages.  
X(The default is ON.)
X.in 0
X.sp
XOne more thing: the format for each of the lines is:
X.nf
X.ft CW
X.ti .5i
Xvariable = value\f1
X.fi
Xand for boolean variables, \f2value\f1 can be `ON' or `OFF' only.
X.sp
XFor a better idea of how this all works, here's 
Xmy \f2.elm/elmrc\f1 file.
XWhile looking through it, notice that you can have lots of comments
Xand blank lines for readability and that you can also use `shell
Xvariables' and the `~' metacharacter for your home directory, 
Xand they are expanded accordingly when read in by the mailer.
X(Note that this was automatically saved by the \f2elm\f1 program
Xon the fly from the o)ptions screen)
X.ft CW
X.nf
X  #
X  # .elm/elmrc - options file for the ELM mail system
X  #
X  # Saved automatically by ELM 2.2 for Dave Taylor
X  #
X
X  # For yes/no settings with ?, ON means yes, OFF means no
X
X  # where to save calendar entries
X  calendar = ~/.Agenda
X
X  # what editor to use ("none" means simulate Berkeley Mail)
X  editor = none
X
X  # the character to use in the builtin editor for entering commands
X  escape = ~
X
X  # the full user name for outbound mail
X  fullname = Dave Taylor
X
X  # where to save received messages to, default file is "=received"
X  receivedmail = $HOME/Mail/received
X
X  # where to save my mail to, default directory is "Mail"
X  maildir = /users/taylor/Mail
X
X  # program to use for displaying messages ('builtin' is recommended)
X  pager = builtin
X
X  # prefix sequence for indenting included message text in outgoing messages...
X  prefix = >_
X
X  # how to print a message ('%s' is the filename)
X  print = lpr -Plw2 %s
X
X  # where to save copies of outgoing mail to, default file is "=sent"
X  sentmail = /users/taylor/Mail/mail.sent
X
X  # the shell to use for shell escapes
X  shell = /bin/csh
X
X  # local ".signature" file to append to appropriate messages...
X  localsignature = localsig
X
X  # remote ".signature" file to append to appropriate messages...
X  remotesignature =  remotesig
X
X  # how to sort folders, "Mailbox" by default
X  sortby = Reverse-Received
X
X  # should the default be to delete messages we've marked for deletion?
X  alwaysdelete = ON
X
X  # should the default be to store read messages to the "received" folder?
X  alwaysstore = ON
X
X  # should the default be to keep unread messages in the incoming mailbox?
X  alwayskeep = ON
X
X  # should we use the "->" rather than the inverse video bar?
X  arrow = OFF
X
X  # should the message disposition questions be displayed(ON) or
X  # auto-answered(OFF) with the default answers when we resync or change folders?
X  ask = ON
X
X  # would you like to be asked for Carbon-Copies information each msg?
X  askcc = ON
X
X  # automatically copy message being replied to into buffer? 
X  autocopy = OFF
X
X  # threshold for bouncing copies of remote uucp messages...
X  # zero = disable function.
X  bounceback = 0
X
X  # save a copy of all outbound messages?
X  copy = ON
X
X  # do we want to be able to mail out AT&T Mail Forms?
X  forms = OFF
X
X  # should we keep folders from which all messages are deleted?
X  keepempty = OFF
X
X  # we're running on an HP terminal and want HOME, PREV, NEXT, etc...
X  keypad = OFF
X
X  # should we display the three-line 'mini' menu?
X  menu = ON
X
X  # when using the page commands (+ - <NEXT> <PREV>) change the current
X  # message pointer...?
X  movepage = ON
X
X  # just show the names when expanding aliases?
X  names = ON
X
X  # when messages are copied into the outbound buffer, don't include headers?
X  noheader = ON
X
X  # start up by pointing to the first new message received, if possible?
X  pointnew = ON
X
X  # prompt for a command after the external pager exits?
X  promptafter = ON
X
X  # emulate the mailx message increment mode (only increment after something
X  # has been 'done' to a message, either saved or deleted, as opposed to 
X  # simply each time something is touched)?
X  resolve = ON
X
X  # save messages, incoming and outbound, by login name of sender/recipient?
X  savename = ON
X
X  # are we running on an HP terminal and want HOME, PREV, NEXT, etc...?
X  # (this implies "keypad=ON" too)
X  softkeys = OFF
X
X  # set the main prompt timeout for resynching...
X  timeout = 60
X
X  # display message title when displaying pages of message?
X  titles = ON
X
X  # are we good at it?  0=beginner, 1=intermediate, 2+ = expert!
X  userlevel = 2
X
X  # tell us about addresses to machines we can't directly get to?
X  warnings = OFF
X
X  # enable the weedout list to be read?
X  weed = ON
X
X  # what headers I DON'T want to see, ever.
X  weedout = "Path:" "Via:" "Sent:" "Date" "Status:" "Original" "Phase" 
X	  "Subject:" "Fruit" "Sun" "Lat" "Buzzword" "Return" "Posted" 
X	  "Telephone" "Postal-Address" "Origin" "X-Sent-By-Nmail-V" "Resent" 
X	  "X-Location" "Source" "Mood" "Neuron" "Libido" "To:" "X-Mailer:" 
X	  "Full-Name:" "X-HPMAIL" "Cc:" "cc:" "Mmdf" "Network-" "Really-" 
X	  "Sender:" "Post" "Message-" "Relay-" "Article-" "Lines:" 
X	  "Approved:" "Xref:" "Organization:" 	"*end-of-user-headers*"
X
X  # alternative addresses that I could receive mail from (usually a
X  # forwarding mailbox) and don't want to have listed...
X  alternatives = hplabs!taylor  hpldat!taylor  taylor@hplabs  taylor%hpldat  
X.fi
X.br
X.ne 5
X.sp
X.hn 1 The Command Line Options
X
XThere are a number of command line options to the \f2elm\f1
Xprogram, with only one that needs to be remembered: ``-?''or ``-h'' for help.
X
XThe flags are:
X
X.lp \h'24p'-a 66p
XArrow.  This allows you to have the ``->'' arrow pointer
Xrather than the inverse bar.  This can also be set in
Xthe \f2.elm/elmrc\f1 
Xfile \(em check the boolean variable \f2arrow\f1).
X
X.lp \h'24p'-c 66p
XCheck only.  This is useful for expanding aliases 
Xwithout sending any mail.  The invocation is similar to
Xinvoking \f2elm\f1 in send-only mode:
X.ft CW
Xelm -c\f2  list-of-aliases\f1
X
X.lp "\h'24p'-d \f2n\f1" 66p
XSet debug level to \f2n\f1.  Useful for debugging the \f2elm\f1
Xprogram, this option will create a file in your home
Xdirectory called \f2ELM:debug.info\f1, then
Xoutput a running log of what is going on with
Xthe program.  Level \f2n\f1 can be 1 through 11,
Xwhere the higher numbers generate more output.
XThis option might be disabled by the the person who configured
X\f2elm\f1 for your system.
X
X.lp "\h'24p'-f \f2folder\f1" 66p
XFolder.  Read specified folder rather than the default incoming mailbox.
XNote that you can use the same metacharacters (e.g. `=') as when 
Xyou \f2change folders\f1 from within the program.  You can also use the
Xsame abbreviatory symbols (`!', `>' and `<'),
Xbut remember to ``single quote'' them
Xin case they have special meaning in the shell you use.
X
X.lp "\h'24p'-h or -?" 66p
XHelp.  Gives a short list of all these options and exits.
X
X.lp \h'24p'-k 66p
XKeypad \(em This option, when used, lets the \f2elm\f1 program
Xknow that you're on an HP terminal, and it can then interpret
Xthe <PREV>, <NEXT> and <HOME>/<SHIFT>-<HOME> keys accordingly.  If you
Xare not on an HP terminal, it is recommended that you do
XNOT use this option. (See the \f2keypad\f1 option in
Xthe \f2.elm/elmrc\f1 section.)
X
X.lp \h'24p'-K 66p
XKeypad + softkeys.  The \f2elm\f1 mailer can
Xuse the HP softkeys as an alternative form of
Xinput.  If you specify this option be sure that you're on
Xan HP terminal that can accept the standard 2622 terminal
Xescape sequences! (See the \f2softkeys\f1 option in
Xthe \f2.elm/elmrc\f1 section for more information.)
X
X.lp \h'24p'-m 66p
XInhibit display of the 3-line menu when using the mailer.  This,
Xof course, gives you three more message headers per page instead.
X(See also the 
X.ft CW
Xmenu\f1 option in
Xthe \f2.elm/elmrc\f1 section.)
X
X.lp "\h'24p'-s \f2subject\f1" 66p
XIn send-only and batch mode, this is how to indicate the subject of the
Xresulting message.  Please see the section on ``Non-Interactive
XUses of Elm'' in \f2The Elm Users Guide\f1 for more information.
X
X.lp \h'24p'-z 66p
XZero.  This causes the mailer not to be started if you don't
Xhave any mail.   This emulates the behaviour of programs
Xlike \f2Berkeley Mail\f1.
X
X.in 0
XAll the above flags default to reasonable options, so there is
Xusually no need to use them.  Furthermore, the most used flags
Xare available through the \f2.elm/elmrc\f1 file.  See above.
X.br
X.ne 5
X.sp
X.hn 1 Special Outgoing Mail Processing
X
XThere are a few extra features that the mailer offers on
Xoutgoing mail that are worthy of mention:
X
XThe first, and probably the most exciting feature\s-2\u3\d\s0, is the
X.fn
X3. Unfortunately, at many non-US sites, it's quite probable that
Xyou won't be able to use this feature since you won't have
Xthe \f2crypt()\f1 library available due to licensing restrictions.
X.ef
Xability to send \f2encrypted\f1 mail! To do this is 
Xextremely simple:  You need merely to have two key lines
X.ft CW
X[encode]\f1 and 
X.ft CW
X[clear]\f1 in the message body.
X
XConsider the following outgoing message:
X.nf
X.ps 9
X.in .5i
X.ft CW
XJoe,
XRemember that talk we had about Amy?  Well, I talked to my manager 
Xabout it and he said...
Xuhh...better encrypt this...the usual `key'...
X[encode]
XHe said that Amy was having family problems and that it had been 
Xaffecting her work.
XGiven this, I went and talked to her, and told her I was sorry for 
Xgetting angry.  She said that she understood.
XWe're friends again!!
X[clear]
XExciting stuff, eh?   
X\h'3i'Mike
X.ps 10
X.ft 1
X.in 0
X.fi
XWhile this is obviously quite readable while being typed into 
Xthe editor, as soon as the message is confirmed as wanting
Xto be sent, the \f2elm\f1 mailer prompts with:
X.nf
X.ft CW
X.ps 9
X.ti .5i
XEnter encryption key: @
X.ps 10
X.ft 1
X.fi
Xand accepts a key (a series of 8 or less characters) without
Xechoing them to the screen.  After entry, it will ask for the
Xsame key again to confirm it, then *poof* it will encrypt and
Xsend the mail.
X
XIf you have the \f2copy\f1 option enabled, the program will save
Xyour copy of the message encrypted too.  (This is to ensure
Xthe privacy and security of your mail archive, too.)
X
XIf the mailer doesn't ask for the encryption key, it's because
Xyou don't have the 
X.ft CW
X[encode]\f1 entered as the first 8 characters
Xof the line.  It MUST be so for this to work!!
X
XOn the other end, a person receiving this mail (they must also
Xbe using \f2elm\f1 to receive it, since this mailer has a
Xunique encryption program) will be reading the
Xmessage and then suddenly be prompted:
X.nf
X.ft CW
X.ps 9
X.ti .5i
XEnter decryption key: @
X.ft 1 
X.ps 10 
X.fi 
Xand will again be asked to re-enter it to confirm.  
XThe program will then on-the-fly decrypt the mail 
Xand display each line as it is decoded.  The 
X.ft CW
X[clear]\f1 
Xline signifies that the block to encrypt is done.  
X
XNote that it is not possible currently to \f2pipe\f1 or \f2print\f1
Xencrypted mail.
X.sp 2
XThe other option on outgoing mail is the ability to
Xspecify what section of the message you want to have
Xarchived (assuming \f2copy\f1 is enabled) and what section
Xyou don't.  This is most useful for sending out source
Xfile listings and so on.
X
XTo indicate the end of the section that should be
Xsaved in the archive, you need merely to have the
Xline
X.nf
X.ft CW
X.ti .5i
X[nosave]
X.ft 1
Xor
X.ft CW
X.ti .5i
X[no save]
X.ft 1
X.fi
Xappear by itself on a line.  This will be removed from 
Xthe outgoing mail, and will indicate the last line of
Xthe message in the saved mail.
XOther than this, the saved mail is identical to the outgoing mail.
X.br
X.ne 5
X.sp
X.hn 1 Customized header lines
X
XThe mailer provides a facility for including customized
Xheader lines in the messages you send.
XIf you have an \f2.elm/elmheaders\f1 file,
Xthe mailer will include its contents
Ximmediately after the regular headers of all outbound  mail.
XThe mailer supports use of the backquote convention in this file.
XHere's a typical \f2.elm/elmheaders\f1 file.
X.ft CW
X.nf
X  Organization: Hewlett-Packard Laboratories
X  Phone: (415)-555-1234
X  Operating System: `uname -srv`
X.fi
X.ft 1
XThese lines will appear after all other header lines in the message.
X.br
X.ne 5
X.sp
X.hn 1 Commands
X.sp
X
XThis section will discuss each command in the \f2elm\f1
Xprogram in more detail than above, including the 
Xprompts the user can expect upon executing the
Xcommand, the meaning of different options, etc.
X
X.lp \h'24p'? 66p
XHelp.  This command used once puts you in the \f2help\f1
Xmode, where any key you press will result in a one-line description
Xof the key.  Pressed again at this point will produce a two page
Xsummary listing each command available.
X<escape> or `.' will leave the help mode and return you to the
Xmain menu level.
X
X.lp \h'24p'<space> 66p
XDisplay the current message.
X<space> is useful for reading through a mail folder.
XWhen issued from the index screen,
Xit will display the first screen of the current message;
Xand then when issued while in the builtin pager,
Xit will page through the message to the end;
Xand then when issued at the end of a message
X(with either the builtin pager or an external pager),
Xit will display the first screen of the next message not marked for deletion.
X
X.lp \h'24p'<return> 66p
XDisplay the current message.
X<return> behaves somewhat differently from <space>.
XWhen issued while in the builtin pager,
Xit will scroll the current message forward one line,
Xand then when issued at the end of a message
X(with either the builtin pager or an external pager),
Xit will redisplay the first screen of the the \f2current\fP message.
XThe latter is useful in case you have issued a non-pager
Xcommand while in the builtin pager and want to restart the display
Xof the current message.
X
X.lp \h'24p'! 66p
XShell.  This allows you to send a command to the shell without
Xleaving the program. 
X
X.lp \h'24p'| 66p
XPipe.  This command allows you to pipe the current message
Xor the set of \f2tagged\f1 messages
Xthrough other filters as you desire.  The shell used for
Xthe entire command will be either the one specified in
Xyour \f2.elm/elmrc\f1 file, or the default shell (see above).
X
X.lp \h'24p'\/ 66p
XPattern match.  This command, on the top level, allows the
Xuser to search through all the \f2from\f1 and \f2subject\f1 lines of
Xthe current folder starting at the current message and
Xcontinuing through the end.  If the first character of the
Xpattern is a `/', then the program will try to match the
Xspecified pattern against \f2any\f1 line in the folder.  Again,
Xthis works from one after the current message through the
Xend.  Both searches are case insensitive.
X
X.lp "\h'24p'- or <left>" 66p
XDisplay the next page of the message index.
X
X.lp "\h'24p'+ or <right>" 66p
XDisplay the previous page of the message index.
X
X.lp \h'24p'<number><return> 66p
XSpecify new current message.  When you type in any digit key \f2elm\f1 will
Xprompt ``Set current to : n'', where `n' is
Xthe digit entered.  Enter the full number
Xand terminate with <return>.  Note that changing the
Xcurrent message to a message not on the 
Xcurrent page of headers will result in a new page
Xbeing displayed.
X
X.lp \h'24p'< 66p
XScan message for calendar entries.  A rather novel feature of 
Xthe \f2elm\f1 mailer is the ability to automatically incorporate
Xcalendar/agenda information from a mail message into the users
Xcalendar file.  This is done quite simply; any line that has
Xthe pattern
X
X.ti +.5i
X-> \f2calendar entry\f1
X
Xwill be automatically added to the users \f2calendar\f1 file (see
Xthe \f2calendar\f1 option of the \f2.elm/elmrc\f1 file) if the `<'
Xcommand is used.
X.sp
XFor example, let's say we had a message with the text:
X
X.ft CW
X.ps 9
X.ti +.5i
XRegardless of that meeting, here's the seminar stuff:
X.br
X.ti +.5i
X-> 8/03 3:00pm: AI Seminar with Ira Goldstein of HP Labs
X.ft 1
X.ps 10
X
Xthen using the `<' command would add the line:
X
X.ft CW
X.ps 9
X.ti +.5i
X8/03 3:00pm: AI Seminar with Ira Goldstein of HP Labs
X.ps 10
X.ft 1
X
Xto the users \f2calendar\f1 file.
X
X.lp \h'24p'a 66p
XAlias.  The alias system is a way by which more complex mail addresses
Xcan be shortened for the mail user.  For example:
X.nf
X.ps 9
X.ft CW
X.ti +.5i
Xjoe, bleu   =  Joe Bleu  =   joe@hpfcla.SSO.HP.COM
X.ft 1
X.ps 10
X.fi
Xwhich allows mail to `joe' or `bleu' with the system expanding
Xthe address properly.  As is obvious, this not only saves remembering
Xcomplex addresses, it also allows the address to be optimized to
Xgo through the minimum number of machines without anyone having to
Xbe informed of the change.  A more detailed discussion can
Xbe found in either the section entitled \f2The Alias System\f1 in
Xthis document or \f2The Elm Alias System Users Guide\f1.
X
X.lp \h'24p'b 66p
XBounce mail.  This ``remails'' mail to someone else in such a
Xway as to make the return address the original sender rather
Xthan you (as opposed to the \f2forward\f1 command, which makes
Xthe return address \f2you\f1 rather than the original sender)
X
X.lp \h'24p'C 66p
XCopy to folder.  This command copies the current message or set of
Xtagged messages to
Xa folder.  If there is anything in the folder currently the
Xmessage or messages are appended to the end, otherwise the folder is created
Xcontaining only the newly copied message.  The prompt for this command
Xis `Copy to folder: '.  A response of <return> cancels the command
Xand returns the user to the system prompt.  The usual filename
Xmetacharacters are available, too.  That is, this command expands filenames
Xwith `~' being your home directory and `=' being your
X\f2maildir\f1 directory, if defined.  This command also allows you to
Xuse `>' for your \f2receivedmail\f1 folder and
X`<' for your \f2sentmail\f1 folder.  You can also enter `?' at the prompt
Xto list the names of your folders.
X
X.lp \h'24p'c 66p
XChange folder.  Specifying this command allows the user to change
Xthe folder that is currently being read.  This is intended 
Xfor perusal and reply to previously archived messages.
XThe prompt is `Name of new folder: ' and entering <return>
Xcancels the operation, while entering a filename causes the program
Xto read that file as the new folder,
Xif possible.  This command expands filenames
Xwith `~' being your home directory and `=' being your
X\f2maildir\f1 directory, if defined.  This command also allows you to
Xuse `!' as an abbreviation for you incoming mailbox,
X`>' for your \f2receivedmail\f1 folder, and
X`<' for your \f2sentmail\f1 folder.  You can also enter `?' at the prompt
Xto list the names of your folders.
X
X.lp "\h'24p'd, u" 66p
XDelete and Undelete.  Neither of these two commands have any prompts
Xand indicate their action by either adding a `D' to the current
Xmessage index entry (indicating deletion pending) or removing
Xthe `D' (indicating that the message isn't set for deletion).
X
X.lp \h'24p'<control>-D 66p
XThis command allows you to easily mark for deletion all messages 
Xthat have a specific pattern.  After <control>-D is pressed,
Xthe program will prompt for the string to match (currently it
Xonly matches either the \f2from\f1 or \f2subject\f1 lines of
Xthe message).
X
X.lp \h'24p'<control>-U 66p
XThis is the direct opposite command to the previous \(em all messages
Xthat match the specified pattern can have any mark for deletion 
Xremoved by using this command.
X
X.lp \h'24p'e 66p
XEdit mailbox.  This allows you to modify the current mail file at
Xa single keystroke.  This is mostly useful for editing down messages
Xbefore saving them.  Modifying headers should be done with extreme
Xcaution, as they contain routing information and other vital stuff
Xfor full functionality.
X
X.lp \h'24p'f 66p
XForward.  Allows the user to forward the current message to another user.  
XThis copies the message into the edit
Xbuffer and allows the user to add their own message too.
XThe prompt is `Forward to:' and will expand an alias if
Xentered.  (See \f2bounce\f1 above, too.)
X
X.lp \h'24p'g 66p
XGroup reply.  Identical to \f2reply\f1 below, except that the
Xresponse is mailed to \f2all recipients\f1 of the original
Xmessage (except yourself \(em see the \f2alternatives\f1
Xoption for your \f2.elm/elmrc\f1 file above).
X
X.lp \h'24p'h 66p
XDisplay the current message with all headers intact.
XWhen you display a message with other commands,
Xcertain header lines are formatted and others discarded (according
Xto the \f2weedlist\fP parameter in your elmrc file).
X
X.lp \h'24p'i 66p
XReturn to the index screen,
Xwhen issued in the builtin pager or at the end of a message (with
Xeither the builtin pager or an external pager).
X
X.lp "\h'24p'j or <down>, k or <up>" 66p
XThese four keys work similarly to what they would do in \f2vi\f1 or
Xany of the other (precious few) screen oriented
Xprograms.  The `j' and <down> keys move
Xthe current message pointer down to the next message skipping
Xover any marked deleted (going to
Xthe next page if needed) and the `k' and <up> keys move the current
Xmessage pointer back to the previous message skipping
Xover any marked deleted (also changing pages if needed)
X
X.lp "\h'24p'J, K" 66p
XThese two keys work similarly to their lower case counterparts,
Xexcept that they don't skip over deleted messages.
X
X.lp \h'24p'l 66p
XLimit.  This feature allows you to specify a subset of the existing
Xmessages to be dealt with.  For example, let's say we had a folder with
Xfour hundred messages in it, about four or five different subjects.  We
Xcould then limit what we're dealing with by using the \f2limit\f1
Xcommand.  Pressing `l' would result in the prompt:
X.nf
X.ft CW
X.ti +.5i
XCriteria: 
X.ft 1
X.fi
Xto which we could answer 
X.ft CW
Xsubject \f2string\f1, 
X.ft CW
Xfrom \f2string\f1 or
X.ft CW
Xto \f2string\f1.  In our example, we could use 
X.ft CW
Xsubject programming\f1
Xas a criteria for selection.  Once we've limited our selections down,
Xthe screen will be rewritten with just the selected messages
Xand the top line will change to have a message
Xlike:
X.nf
X.ft CW
X.ps 9
X.tl ''     Folder is "=elm" with 92 shown out of 124 [Elm 2.2]'
X.ps 10
X.ft 1
X.fi
XWe can further limit selections by entering further criteria, each
Xtime using the \f2limit\f1 option again.
X
XTo clear all the criteria and get back to the `regular' display, simply
Xenter \f2all\f1 as the limiting criteria.  It should be noted that the
Xselection based on ``to'' isn't fully implemented for this version, so
Xit is recommended that users stay with ``subject'' and ``from'' as the
Xbasis for their criteria.
X
X.lp \h'24p'm 66p
XMail.  Send mail to a specified user.  The prompt that is associated
Xwith this command is `Send mail to :'.  Entering an alias name results
Xin the full address being rewritten in parenthesis immediately.  This
Xprompt is followed by `Subject:' which allows the user to title their
Xnote.  The final field is `Copies to: ', which allows other people
Xspecified to receive "carbon copies" of the message.  (See the \f2askcc\f1
Xoption of the \f2.elm/elmrc\f1 file above.)  Upon entering all three items the 
Xeditor is invoked and the message can be composed.
X
X.lp \h'24p'n 66p
XNext message that is not marked deleted:
Xuseful for displaying successive messages in a folder.
XWhen issued from the index screen, it displays the current message,
Xand then when issued while in the builtin pager or at the end of a message
X(with either the builtin pager or an external pager),
Xit will display the first screen of the next message not marked for deletion.
X
X.lp \h'24p'o 66p
XOptions.  This full-screen display allows you to alter the settings
Xof a number of parameters, including the current sorting method,
Xthe method of printing files, the calendar file, the save file, and
Xso on.  It's self-documenting (where have you heard \f2that\f1
Xbefore?) so isn't explained in too much detail here.
X
X.lp \h'24p'p 66p
XPrint.  This allows you to print out the current
Xmessage or the tagged messages to a previously defined printer.  (See
Xthe section on the \f2.elm/elmrc\f1 discussing the \f2print\f1 variable.)
X
X.lp \h'24p'q 66p
XQuit.  If you in the pager, you are returned to the index screen. If you are
Xon the index screen, \f2elm\f1 quits altogether,
Xbut first prompts you for the disposition of the messages in
Xthe current folder.  If any messages are marked for deletion,
Xit will ask if you want them deleted.  If the current folder is your
Xincoming mailbox, you will also be
Xasked if read messages should be stored in your \f2receivedmail\f1 folder,
Xand if unread messages should be kept in the incoming mailbox.
XThe default answers to these questions are set by the \f2.elm/elmrc\f1
Xoptions \f2alwaysdelete\fP, \f2alwaysstore\fP, and \f2alwayskeep\fP.
XHowever, if you elect to not store your read messages (i.e. keep them)
Xit is presumed you want to keep your unread messages, too.
X
X.lp \h'24p'Q 66p
XQuick quit.  This behaves similar to the `q' command except that
Xyou are not prompted for answers to the message disposition questions.
X\f2Elm\f1 will dispose of messages according to the values you
Xhave set for \f2alwaysdelete\f1, \f2alwaysstore\f1, and \f2alwayskeep\f1
Xin your \f2.elm/elmrc\f1 file.
X
X.lp \h'24p'r 66p
XReply.  Reply to the sender of the current message.  If
Xthe \f2autocopy\f1 flag is OFF in your \f2.elm/elmrc\f1 file, the program will 
Xprompt ``Copy message? (y/n)'' to which the user can specify 
Xwhether a copy of the source message is to be copied into the edit
Xbuffer, or not.  If copied in, all lines from the message are 
Xprepended with the \f2prefix\f1 character sequence specified in
Xyour \f2.elm/elmrc\f1 file.
X
X.lp \h'24p's 66p
XSave to folder.  This command is like the `copy' command, except
Xthat the saved messages are marked for deletion, and that if you are
Xsaving just the current message, the current message pointer is
Xincremented afterwards (see the \f2resolve\f1 option in the \f2.elm/elmrc\f1
Xfile above).  This command expands folder names
Xwith `~' being your home directory and `=' being your
X\f2maildir\f1 directory, if defined.  This command also allows you to
Xuse `>' for your \f2receivedmail\f1 folder and
X`<' for your \f2sentmail\f1 folder.
X
X.lp \h'24p't 66p
XTag.
X.fn
X4. Currently only \f2pipe\f1, \f2print\f1, and \f2save\f1 support this.
X.ef
XTag the current message for a later operation\s-2\u4\d\s0.
X
X.lp \h'24p'<control>-T 66p
XTag all messages containing the specified pattern.  Since \f2tagging\f1
Xmessages can occur on screens other than the one being viewed, the 
X\f2elm\f1 system will first check to see if any messages are currently
X\f2tagged\f1 and ask you if you'd like to remove those tags.  After
Xthat, it will, similar to the \f2<control>-D\f1 function, prompt for
Xa pattern to match and then mark for deletion all messages that contain
Xthe (case insensitive) pattern in either the \f2from\f1 or \f2subject\f1
Xlines. 
X
X.lp \h'24p'x 66p
XExit.  This leaves \f2elm\f1 in the quickest possible manner
Xwithout making any changes to your folder.  No
Xmessages are deleted and the statuses of messages are unchanged.  That is,
Xany messages that were new will remain new instead of being noted as old,
Xand any messages that were read for the first time
Xwill be again noted as unread.
X
X.in 0
X.sp
XWhen you are about to send of a message under the \f2forward\f1, \f2mail\f1,
Xor \f2reply\f1 commands (see above), a small menu of the following
Xoptions appears:
X
X.lp \h'24p'c 66p
XSpecify folder for saving copy to.  This allows you to override the
X\f2copy\f1 and \f2savename\f1 options of your \f2.elm/elmrc\f1 file.  It
Xprompts you for the name of the folder were a copy of the outgoing message
Xis to be saved.  The default displayed is taken from those two \f2.elm/elmrc\f1
Xoptions and can be changed.  This command also allows you to
Xuse `>' for your \f2receivedmail\f1 folder and
X`<' for your \f2sentmail\f1 folder, and `=' to mean ``save by name''. (See the
Xthe \f2savename\f1 option above).  (Since you could next enter
Xthe \f2edit headers\f1 command and change the recipients
Xof your message, the name of the folder under the
X``save by name'' option is established later when you enter the \f2send\f1
Xcommand.)  You can also enter `?' at the prompt
Xto list the names of your folders.
X
X.lp \h'24p'f 66p
XForget.  This gets you out of sending a message you started. If you are
Xin send-only mode, the message is saved to the file \f2Cancelled.mail\f1
Xin your home directory.  Otherwise 
Xit can be restored at the next \f2forward\f1, \f2mail\f1,
Xor \f2reply\f1 command during the current session of \f2elm\f1. After
Xissuing one of those commands you will be prompted with ``Recall last
Xkept message?''
X
X.lp \h'24p'e 66p
XEdit message (or form).  Entering this command will allow you to edit
Xthe text of your message or form.
X
X.lp \h'24p'h 66p
XEdit headers.  This puts you into the \f2header editing mode\f1, whereby
Xyou can edit to any of the various headers of your message.  Like
Xthe options screen, it's self-documenting, so it isn't explained in too much
Xdetail here.
X
X.lp \h'24p'm 66p
XMake form.  This converts the message you have edited into a form.  (See
X\f2The Elm Forms Mode Guide\f1 for more details.)
X
X.lp \h'24p's 66p
XSend.  This sends the message as is without any further ado.
X.in 0
X.br
X.ne 5
X.sp
X.hn 1 "Using Elm with ``editor = none''"
X.sp
XThe \f2Elm\f1 program also supports a builtin editor for simple message 
Xcomposition that is very (very) similar to the simple line
Xeditor available from the \f2Berkeley Mail\f1 system.
X
XTo access it, you need merely to specify ``\f2editor=none\f1'' in
Xyour \f2.elm/elmrc\f1 file.  
XWith that, any messages to be composed
Xthat don't already have text in the buffer (e.g. no reply with
Xthe text included, etc), will use this editor.
X.sp
XFrom the builtin editor, the following options are available for use.
XEach command here is prefixed with a `~'.
XYou can specify a different ``escape'' character in your \f2.elm/elmrc\f1 file,
Xif you desire (see above).
X.sp
X
X.lp \h'16p'~? .5i
XPrint a brief help menu.
X
X.lp \h'16p'~b .5i
XChange the Blind-Carbon-Copy list.
X
X.lp \h'16p'~c .5i
XChange the Carbon-Copy list.
X
X.lp \h'16p'~e .5i
XInvoke the Emacs editor on the message, if possible.
X
X.lp \h'16p'~f .5i
Xadd the specified list of messages, or current.
X
X.lp \h'16p'~h .5i
XChange all the available headers (To, Cc, Bcc, and Subject)
X
X.lp \h'16p'~m .5i
Xsame as `~f', but with the current `prefix'.
X
X.lp \h'16p'~o .5i
XInvoke a user specified editor on the message.
X
X.lp \h'16p'~p .5i
Xprint out the message as typed in so far.
X
X.lp \h'16p'~r .5i
XInclude (read in) the contents of the specified file.
X
X.lp \h'16p'~s .5i
XChange the Subject line.
X
X.lp \h'16p'~t .5i
XChange the To list.
X
X.lp \h'16p'~v .5i
XInvoke the Vi visual editor on the message.
X
X.lp \h'16p'~< .5i
Xexecute the specified unix command, entering the output
Xof the command into the editor buffer upon completion.
X(for example ``~< who'' will include the output of
Xthe \f2who\f1 command in your message)
X
X.lp \h'16p'~! .5i
Xexecute a unix command if one is given (as in ``~!ls'') or
Xgive the user a shell (either from their shell setting in 
Xtheir \f2.elm/elmrc\f1 file or the default).
X
X.lp \h'16p'~~ .5i
XAdd a line prefixed by a single `~' character.
X.in 0
X.sp
XA useful note is that the `~f' and `~m' commands invoke the \f2readmsg\f1
Xcommand, so you can pass parameters along too.  For example, if we
Xwanted to include a message from Joe, without any headers, prefixed,
Xwe could use:
X.nf
X.ti .5i
X~m -n Joe
X.fi
Xto accomplish the task.
X
XTo learn more about how they work, try 'em!
X.br
X.ne 5
X.sp
X.hn 1 The Alias System
X.sp
XAs mentioned previously, there exists in the \f2elm\f1
Xsystem a set of aliases that associate
Xan arbitrary word (such as a persons name) to a complex address or group.  
XThe advantages are readily apparent; rather than
Xremembering an address of the form:
X.nf
X.ps 9
X.ft CW
X.ti .5i
Xhost1!host2! ... !hostN!user
X.ft 1
X.ps 10
X.fi
Xthe user merely has to remember a single word.  
X
XTwo alias tables are available for a each
Xuser within \f2elm\f1,
Xnamely the system alias file and the user's alias file.  The
Xsystem alias file is created and maintained (by the system administrator)
Xby editing the 
Xfile \f2SYSTEM_ALIASES\f1 as defined in the `sysdefs.h' file
X(see \f2The Elm Configuration Guide\f1) and as described
Xin the documentation with the \f2newalias\f1 command,
Xthen running the \f2newalias\f1 program.
X
XAn individual user can also have an alias file which works
Xin conjunction with the system aliases.  To do this, they
Xneed merely to peruse the documentation for the \f2newalias\f1
Xcommand and create a file as indicated therein.  After 
Xexecuting the program, the aliases will be available
Xfor using from within \f2elm\f1.
X.sp
XPlease refer to \f2The Elm Alias Users Guide\f1 for more helpful
Xhints and so on.
X.sp 2
XWithin \f2elm\f1,
Xhowever, the alias system acts as an entirely different program, with
Xit's own commands and own mini-menu.  The menu replaces the
Xstandard mini-menu with:
X.sp
X.sd
X.nf
X.ps 9
X.ft CW
X.ce
X--------------------------------------------------------------------------------
X.sp
X.ce
XAlias commands
X.sp
X.ce 2
Xa)lias current message, d)elete an alias, check a p)erson or s)ystem,
Xl)ist existing aliases, m)ake new alias or r)eturn
X.sp 2
XAlias: @
X.ce
X--------------------------------------------------------------------------------
X.sp
X.ps 10
X.ft 1
X.ed
X.fi
X
XThe commands are:
X
X.lp \h'16p'a .5i
XAlias current message.  
XThis allows the user to create an alias that has the
Xreturn address of the current message as the address field of
Xthe alias.  It prompts for a unique alias name.   Important
Xnote: when you alias an address in this fashion, the mailer
Xwill try to minimize the amount it needs to store by
Xiteratively comparing machine names in the path with the
Xmachines in the pathalias database.  Once it finds an entry
Xthe address will be saved at that point.   For further 
Xinformation, please see \f2The Elm Alias System Users Guide\f1.
X
X.lp \h'16p'd .5i
XDelete an existing alias.
XThis allows the user to delete an alias the user has previously made.
XIt prompts for the alias name, and displays the alias information, if
Xfound, and then prompts for confirmation to delete.
X
X.lp \h'16p'l .5i
XList all existing aliases.
XThis simply lists all the aliases you have previously made.
X
X.lp \h'16p'm .5i
XMake user alias.  This will prompt for a unique alias name and
Xthen for an address.  The information provided will be added
Xto your individual aliases.text file (\f2$HOME/.elm/aliases.text\f1) and 
Xthen added to the database.
X
X.lp \h'16p'p .5i
XCheck personal alias.  This is a simple way of checking what is in the alias
Xdatabase \(em it prompts for an alias name, and returns the address
Xassociated with that name or the error message `alias not found'
Xas appropriate.  
X
X.lp \h'16p'r .5i
XReturn.  Return to the main level of the \f2elm\f1 program.
X
X.lp \h'16p's .5i
XCheck system alias.  If you're not sure that your machine can talk
Xto another machine, you can use this command to either find the
Xappropriate route or find that you're correct in your suspicions 
Xand it is indeed unknown!
X.in 0
X.br
X.ne 5
X.sp
X.hn 1 While We're Talking Aliases...
X
XAnother feature worthy of discussion, since it's been getting
Xlots of veiled references throughout this document, is the 
Xhost-path file.  This is implemented using the uucp pathalias 
Xdatabase, with a file containing lines with the format:
X.nf
X.ti .5i
X\f2hostname\f1        \f2address\fC!%s\f1
X  or
X.ti .5i
X\f2hostname\f1        \fC%s@\f2hostname\f1
X.fi
XThe actual details of the file are located in 
X\f2The Alias System Users Guide\f1.
X
XAnyway, to use them is quite simple...when specifying the address
Xof someone, you can either have an alias for them already, reply
Xto their message, or use the system alias feature!
X
XEnough hype, right?  Okay...to use this feature, you specify an
Xaddress by either "machine!person" ignoring if your specific
Xmachine can talk directly to the machine specified, or, if you
Xprefer the Internet addressing scheme, "person@machine".  When
Xyou enter the address as specified, the mailer will quickly
Xsearch through the pathalias database file and expand the
Xspecified address to be a legitimate routing address.
X
XWhat's really nice about this is that the address that we're
Xgoing to send to can be either on ARPA, CSNET, BITNET, uucp,
Xor any other network.  The method of specifying the basic
Xaddress is the same regardless!
X
XFor example, mail to me could be sent as either "hplabs!taylor"
Xor "taylor@hplabs".  \f2elm\f1 will expand them
Xboth in the same manner and include a ``route'' to the 
Xmachine \f2hplabs\f1, if needed.
X
XFor those sites with the domains database installed, you can
Xalso mail to users on domain based systems by simply specifying
Xtheir name, the machine they receive mail on and a full domain
Xspecification.
X
XFor example, say you have a friend Maurice who reads mail 
Xon \s9JOEVAX\s10 in the Mailnet world.  You could mail to him by using
Xthe address "Maurice@\s9JOEVAX.MAILNET\s10" and your system will
Xexpand the address correctly.
X.br
X.ne 5
X.sp
X.hn 1 Expert Mail Users and Debugging the Mailer
X
XThere are some additional facilities available in the \f2elm\f1
Xmailer for those people who are knowledgeable about 
Xmail protocols, or trying to debug/track down a problem.
X
XThe `h' \f2headers\f1 command at the outermost level of the mailer
Xwill display the current message ignoring the current
Xsetting of the `weed' option.  This is most useful
Xfor answering questions of the form "I wonder what
Xthis guy put in his header?" and such.  This command
Xdoes not show up on the mini-menu because it is somewhat
Xesoteric, but it does appear on the `?' help screen (can
Xyou find it there, though?).
X
XThe `@' command at the outermost level of the mailer
Xwill output a screen of debugging information,
Xincluding the number of lines and 
Xoffsets of each of the messages in the current mailbox.
X
XThe `#' command at the outermost level of the mailer
Xwill display the entire stored `record structure' for
Xthe current message.
X
XThe `%' command 
Xwill display the full computed return address of the
Xcurrent message.
X
XStarting up \f2elm\f1 with the "-d" debug option will create a file called
X\f2ELM:debug.info\f1 in your home directory and contain a wealth of useful
Xinformation (to me, at least!) to aid in tracking down
Xwhat errors are occurring and why.  
X.sp
X
XIf there are any problems with the mailer,  please try
Xto recreate the error with the debug option enabled
Xand set to the highest level (11) before sending defect reports my way.
X.sp 3
XOne final note: all error names reported by the program
Xare documented in the AT&T System V Interface Definition Reference 
XManual in \f2errno\f1(2).
SHAR_EOF
echo "File doc/Ref.guide is complete"
chmod 0444 doc/Ref.guide || echo "restore of doc/Ref.guide fails"
echo "x - extracting doc/Users.guide (Text)"
sed 's/^X//' << 'SHAR_EOF' > doc/Users.guide &&
X\" @(#)$Id: Users.guide,v 2.15 89/03/31 10:18:55 syd Exp $
X\"
X\"  Users guide to the ELM mail system.
X\"  format with:
X\"	'tbl Users.guide | troff tmac.n - > Users.fmtd'
X\"
X\"  Elm is now in the public trust. Bug reports, comments, suggestions, flames
X\"  etc. should go to:
X\"	Syd Weinstein		elm@dsinc.UUCP (dsinc!elm)
X\"
X\"  (C) Copyright 1986, 1987 Dave Taylor
X\"  (C) Copyright 1988, 1989 Usenet Community Trust
X\"
X\"  $Log:	Users.guide,v $
X\" Revision 2.15  89/03/31  10:18:55  syd
X\" Release 2.2 checkin
X\" 
X\" Revision 2.14  89/03/29  10:08:24  syd
X\"  
X.tm I trust we've run this through "tbl" first...
X\"  Define the big box macro for troff
X.de eb
X.sp -1	
X.nf
X\h'-.5n'\L'|\\nau-1'\l'\\n(.lu+1n\(ul'\L'-|\\nau+1'\l'|0u-.5n\(ul'
X.fi
X..
X.po 1i
X.ds h0
X.ds h1
X.ds h2
X.ds f0
X.ds f1
X.ds f2
X.nr Hy 1
X.nr Pt 1
X.nr Pi 0
X.lg 0
X.rs
X.za
X\" This will keep the nroff version of the title page on one sheet.
X.if t .sp |3.0i
X.ce 99
X.ps 20
X.ss 18
X.vs 12
X\f3The Elm Users Guide\f1
X.sp 2
X.ps 12
X\f2A painless introduction to electronic mail 
Xusing the \f3Elm\fP mail system\f1
X.sp 5
XDave Taylor
X.sp 
XHewlett-Packard Laboratories
X1501 Page Mill Road
XPalo Alto CA
X94304
X.sp
Xemail: taylor\s10@\s12hplabs.HP.COM or hplabs!taylor
X.sp 2
X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
X.sp
XSyd Weinstein
XDatacomp Systems, Inc.
X3837 Byron Road
XHuntingdon Valley, PA 19006-2320
X.sp
Xemail: elm\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1elm
X.ps 8
X.if t .vs 9
X.sp 4
X\f3ABSTRACT\f1
X.ce 0
X.sp
X.in +1i
X.ll -1i
XWhile various Unix utilities have been designed to
Xtake advantage of the CRT screen
X(rather than line-oriented systems)
Xelectronic mail systems haven't ``caught the wave''.
XThis document 
Xpresents \f2Elm\f1, a sophisticated
Xfull-screen mail system for interactive use.
X\f2Elm\f1 offers all the features of
X\f2/bin/mail\f1, \f2Berkeley Mail\f1, \f2uumail\f1, \f2NMail\f1 and
Xthe AT&T Mail family of Unix mailers (namely \f2PMX/TERM\f1) in a
Xunified and intuitive fashion.
X.ll +1i
X.in -1i
X.if t .sp 3
X.if n .sp 2
X.ce 2
X.ps 18
X.if t .vs 12
X\f3\(co\f1\s12 Copyright 1986, 1987 by Dave Taylor
X.ps 18
X\f3\(co\f1\s12 Copyright 1988, 1989 by The USENET Community Trust
X.ps 10
X.bp 1
X.ce 99
X.ps 14
X\f3Elm Users Guide\f1
X.ds h0 "Elm Users Guide
X.ds h1
X.ds h2 "Version 2.2
X.ds f0
X.ds f1 "Page %
X.ps 10
X.sp
X(Version 2.2)
X.sp 2
XDave Taylor
XHewlett-Packard Laboratories
X1501 Page Mill Road
XPalo Alto CA
X94304
X.sp
Xemail:  taylor\s-1@\s+1hplabs.HP.COM  or  hplabs\s-1!\s+1taylor
X.sp 2
X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
X.sp
XSyd Weinstein
XDatacomp Systems, Inc.
X3837 Byron Road
XHuntingdon Valley, PA 19006-2320
X.sp
Xemail: elm\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1elm
X.sp 2
XApril 1, 1989
X.ce 0
X.sp 3
X.hn 1 Introduction
X
XThe
X.ux
Xoperating system was originally written on a small PDP machine,
Xto work with teletypewriters.  Consequently, all the original software for
Xthe operating system was written with a `tty' in mind; 
Xwith line oriented interfaces, rather than screen oriented.
X
XGradually this began to change, and, with the addition of the Berkeley \f2vi\f1
Xvisual shell to the \f2ed\f1
Xline editor, the trend began to be brought to the attention of 
XUnix systems designers.  
XAnd yet, this transition has seemed
Xtoo subtle for many software engineers,
Xand so precious few Unix programs are available 
Xdesigned to exploit the entire CRT screen.
X
XConsequently, after becoming more and more disenchanted
Xwith the existing electronic mail facilities (\f2binmail\f1
Xand \f2Berkeley Mail\f1)
XI decided to undertake creating my own system.  
XOnce the ball was rolling it became quite
Xdifficult not to keep enhancing it, especially as I
Xbecame more and more familiar with various different mail
Xsystems, but the result, I hope, is a solid, unified interface
Xto electronic mail suitable for almost any environment.
X
XOne thing that sets \f3The Elm Mail System\f1 off from
Xother packages is that it
Xcomes with an extensive documentation set, including;
X\f2The Elm Users Guide\f1, which you're holding,
X\f2The Elm Reference Guide\f1, 
X\f2The Elm Alias Users Guide\f1,
X\f2The Elm Filter System Users Guide\f1,
X\f2The Elm Forms Mode Guide\f1, 
Xand \f2The Elm Configuration Guide\f1.  
XThe names of each indicate
Xwhat they discuss (not unreasonably).
X
XThis particular document contains;
Xthis introduction, a tutorial session with the mailer, a
Xdiscussion of non-interactive uses of \f3Elm\f1,
Xa brief foray into the \f3Elm\f1 utilities,
Xand finally, credits and references.
X
X\f2The Elm Reference Guide\f1 contains a
Xmuch more indepth discussion of all the possible options
Xavailable within the \f3Elm\f1 environment, including
Xthe ``.elm/elmrc'' file,
Xthe available outbound mail processing features,
Xa section for expert users, suggestions
Xon debugging strange installations, and
Xmany other useful topics.
X
X\f2The Elm Alias Users Guide\f1 is the place
Xto go to learn about the format of the 
X``.elm/aliases.text''
Xfile and the associated data files, to learn how
Xto create and use path route aliases and domain
Xbased alias routing, system aliases, and other
Xrelated topics.
X
XOne of the more innovative features of \f3Elm\f1 is
Xthe ability to transmit and receive ``forms'' (as
Xdefined by the AT&T Mail system).  To learn about
Xhow to create and reply to forms you should refer
Xto \f2The Elm Forms Mode Guide\f1.
X
XIf you find yourself getting too much mail delivered in
Xyour mailbox, you might be a good candidate for the
X\f2filter\f1 program.  To learn more about what
Xthis program is and how to use it please
Xconsult \f2The Elm Filter System Users Guide\f1.
X
XFinally, if you're working with the actual source code
Xand are interested in what all the locally configured
Xoptions are and mean, please see
X\f2The Elm Configuration Guide\f1.  It is
Xstrongly suggested that all system administrators
Xand people installing the system print out the
Xlocal ``sysdefs.h'' file and have it handy while
Xreading the configuration guide.
X
XThe recommended order of learning the \f3Elm\f1
Xsystem is to skim this guide until you feel
Xconfident enough to start up the program.  Once
SHAR_EOF
echo "End of part 5"
echo "File doc/Users.guide is continued in part 6"
echo "6" > s2_seq_.tmp
exit 0

-- 
Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.