syd@dsinc.UUCP (Syd Weinstein) (12/11/88)
---- Cut Here and unpack ---- #!/bin/sh # this is part 4 of a multipart archive # do not concatenate these parts, unpack them in order with /bin/sh # file doc/Ref.guide continued # CurArch=4 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 X # forwarding mailbox) and don't want to have listed... X alternatives = hplabs!taylor hpldat!taylor taylor@hplabs taylor%hpldat X.ft R X.fi X.sp 2 X.H 1 "The Starting Parameters" X.P XThere are a number of starting options to the X.I elm Xprogram, with only one that needs to be remembered: ``-?''or ``-h'' for help. X.P 0 XThe flags are; X.VL 13 5 X.LI "-a" XArrow. This allows you to have the ``->'' arrow pointer Xrather than the inverse bar. This can also be set in Xthe \fI.elm/elmrc\fR Xfile \(em check the boolean variable \fIarrow\fR). X.LI "-c" XCheck only. This is useful for expanding aliases Xwithout sending any mail. The invocation is just Xlike sending mail: X.ft CW Xelm -c\fI list-of-aliases\fR X.LI "-d \fIn\fR" XSet debug level to \fIn\fR. Useful for debugging the \fIelm\fR Xprogram, this option will create a file in your home Xdirectory called \fIELM:debug.info\fR, then Xoutput a running log of what is going on with Xthe program. X.sp XLevel \fIn\fR can be 1 through 11, where the higher numbers generate Xmore output. X.LI "-f \fIfile\fR" XFile. Read specified file rather than the default input mailbox. XNote that you can use the same metacharacters (e.g. `=') as when Xyou \fIchange mailboxes\fR from within the program. X.LI "-h or -?" XHelp. Gives a short list of all these options and exit. X.LI "-k" XKeypad \(em This option, when used, lets the \fIelm\fR 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 \fIkeypad\fR option in Xthe \fI.elm/elmrc\fR section) X.LI "-K" XKeypad + softkeys. The \fIelm\fR 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 \fIsoftkeys\fR option in Xthe \fI.elm/elmrc\fR section for more information) X.LI "-m" 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\fR option in Xthe \fI.elm/elmrc\fR section) X.LI "-s \fIsubject\fR " XIn batch mode, this is how to indicate the subject of the Xresulting message. Please see the section on ``Non-Interactive XUses of Elm'' in \fIThe Elm Users Guide\fR for more information. X.LI "-z" XZero. This causes the mailer not to be started if you don't Xhave any mail. This emulates the behaviour of programs Xlike \fIBerkeley Mail\fR. X.LE X.P 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 \fI.elm/elmrc\fR file. See above. X.sp 2 X.H 1 "Special Outgoing Mail Processing" X.sp X.P XThere are a few extra features that the mailer offers on Xoutgoing mail that are worthy of mention; X.sp X.P XThe first, and probably the most exciting feature\*F, is the X.FS XUnfortunately, 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 \fIcrypt()\fR library available due to licensing restrictions. X.FE Xability to send \fIencrypted\fR mail! To do this is Xextremely simple: You need merely to have two key lines X.ft CW X[encode]\fR and X.ft CW X[clear]\fR in the message body. X.P 0 XConsider the following outgoing message: X.nf X.ps 9 X.ft CW X Joe, X Remember that talk we had about Amy? Well, I talked to my manager X about it and he said... X uhh...better encrypt this...the usual `key'... X [encode] X He said that Amy was having family problems and that it had been X affecting her work. X Given this, I went and talked to her, and told her I was sorry for X getting angry. She said that she understood. X We're friends again!! X [clear] X Exciting stuff, eh? X Mike X.ps 10 X.ft R 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 \fIelm\fR mailer prompts with; X.nf X.ft CW X.ps 9 X Enter encryption key: @ X.ps 10 X.ft R 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.P XIf you have the \fIcopy\fR 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.P XIf the mailer doesn't ask for the encryption key, it's because Xyou don't have the X.ft CW X[encode]\fR entered as the first 8 characters Xof the line. It MUST be so for this to work!! X.P XOn the other end, a person receiving this mail (they must also Xbe using \fIelm\fR 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 Enter decryption key: @ X.ft R 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]\fR Xline signifies that the block to encrypt is done. X.P XFor those sites not running \fIelm\fR, a separate program Xsuitable as a filter for use with other mailers is available. X.P 0 XNote that it is not possible currently to \fIpipe\fR or \fIprint\fR Xencrypted mail. X.sp X.P XThe other option on outgoing mail is the ability to Xspecify what section of the message you want to have Xarchived (assuming \fIcopy\fR is enabled) and what section Xyou don't. This is most useful for sending out source Xfile listings and so on... X.P 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 [nosave] X.ft R 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. X.sp 2 X.H 1 "Responses..." X.sp X.P XThis section will discuss each command in the X.I elm Xprogram in more detail than above, including the Xprompts the user can expect upon executing the Xcommand, the meaning of different options etc etc. X.sp X.VL 10 3 X.LI ? XHelp. This command used once puts you in the \fIexplain key\fR Xmode, where any key you press will result in a one-line description Xof the key. Pressed again at this point will produce a summary Xtwo pages listing each command available. X<escape> or `.' will leave the help mode and return you to the Xmain menu level. X.LI ! XShell. This allows you to send a command to the shell without Xleaving the program. X.LI | XPipe. This command allows you to pipe the current message Xor the set of \fItagged\fR messages Xthrough other filters as you desire. The shell used for Xthe entire command will be either the one specified in Xyour \fI.elm/elmrc\fR file, or, if none, \fI/bin/sh\fR. X.LI \/ XPattern match. This command, on the top level, allows the Xuser to search through all the \fIfrom\fR and \fIsubject\fR lines of Xthe current mailbox 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 \fIany\fR line in the mailbox. Again, Xthis works from one after the current message through the Xend. Both searches are case insensitive. X.LI <n> XSpecify new current message. Typing in any of the digits one Xthrough nine will result in the X.I elm Xprogram producing the prompt ``Set current to : n'', where `n' is Xthe digit entered. XNote that changing the current message to a message not on the Xcurrent page of headers will result in a new page Xbeing displayed. X.LI "<" XScan message for calendar entries. A rather novel feature of Xthe \fIelm\fR 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 message that has Xeither the pattern; X.DS X -> \fIcalendar entry\fR X.DE Xor X.DS X - \fImulti-line\fR X - \fIcalendar entry\fR X.DE Xwill be automatically added to the users \fIcalendar\fR file (see Xthe \fIcalendar\fR option of the \fI.elm/elmrc\fR file) if the `<' Xcommand is used. The main difference between the two formats is that Xthe first is assumed to be a \fIcalendar(1)\fR entry (the `->' is Xstripped off), and the second is a more generic format (only the `- ' Xis stripped off). X.sp XFor example, let's say we had a message with the text; X.DS X.ft CW X.ps 9 X Regardless of that meeting, here's the seminar stuff; X -> 8/03 3:00pm: AI Seminar with Ira Goldstein of HP Labs X.ft R X.ps 10 X.DE Xthen using the `<' command would add the line; X.DS X.ft CW X.ps 9 X 8/03 3:00pm: AI Seminar with Ira Goldstein of HP Labs X.ps 10 X.ft R X.DE Xto the users \fIcalendar\fR file. X.LI a 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 joe, bleu = Joe Bleu = joe@hpfcla.SSO.HP.COM X.ft R 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 \fIThe Alias System\fR in Xthis document or \fIThe Elm Alias System Users Guide\fR. X.LI b 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 \fIforward\fR command, which makes Xthe return address \fIyou\fR rather than the original sender) X.LI c XChange mailbox. Specifying this command allows the user to change Xthe mailbox file that is currently being read. This is intended Xfor perusal and reply to previously archived messages. XThe prompt is `Name of new mailbox : ' and entering <return> Xcancels the operation, while entering a filename causes the program Xto read that file as the new mailbox file, if possible. XAs with the \fIsave\fR command, this command expands filenames Xwith `~' being your home directory and `=' being your X\fImaildir\fR directory, if defined. This command also allows the Xspecial character `!' to be used to allow you to change to Xthe default incoming mailbox. X.LI "d, u" 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 queued for deletion). X.LI "<control>-D " 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 \fIfrom\fR or \fIsubject\fR lines of Xthe message). X.LI "<control>-U " 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.LI e 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.LI f 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. X(see \fIbounce\fR above, too) X.LI "g" XGroup reply. Identical to \fIreply\fR below, except that the Xresponse is mailed to \fIall recipients\fR of the original Xmessage (except yourself \(em see the \fIalternatives\fR Xoption for your \fI.elm/elmrc\fR file above). X.LI "j, k" XThese two keys work similarly to what they would do in \fIvi\fR or Xany of the other (precious few) screen oriented programs. The `j' key moves Xthe current message pointer down to the next message (going to Xthe next page if needed) and the `k' key moves the current Xmessage pointer back to the previous message (also changing Xpages if needed) X.LI l XLimit. This new 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 \fIlimit\fR Xcommand. Pressing `l' would result in the prompt; X.nf X.ft CW X Criteria: X.ft R X.fi Xto which we could answer X.ft CW Xsubject \fIstring\fR, X.ft CW Xfrom \fIstring\fR or X.ft CW Xto \fIstring\fR. In our example, we could use X.ft CW Xsubject programming\fR Xas a criteria for selection. Once we've limited our selections down, Xthe screen will be rewritten with just the selected messages, they Xwill all be renumbered, and the top line will change to have a message Xlike; X.nf X.ft CW X.ps 9 X.tl '' Mailbox is "=/elm" with 92 shown out of 124 [Elm 2.1]' X.ps 10 X.ft R X.fi XWe can further limit selections by entering further criteria, each Xtime using the \fIlimit\fR option again. X.P XTo clear all the criteria and get back to the `regular' display, simply Xenter \fIall\fR 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.LI m 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. XUpon entering all three items the X.I vi Xeditor (or any other editor specified by $editor) Xis invoked and the message can be composed. X.LI n XNext message. See \fI<return>\fR. X.LI o 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 \fIthat\fR Xbefore?) so isn't explained in too much detail herein. X.LI p XPrint. This allows you to print out the current Xmessage or the tagged messages to a previously defined printer X(see the section on the \fI.elm/elmrc\fR discussing the \fIprint\fR variable) X.LI q XQuit. This command's action is dependent on the current state of Xthe X.I elm Xprogram. XFor example, if the current mailbox is the default mailbox the messages Xthat are not deleted are saved in the file $home/mbox, whereas Xif it is a specified mailbox the to-be-deleted messages are Xremoved from the Xfile. The possible prompts are `Save to mailbox?' if the default mailbox Xis being read and there is at least one message to save, 'Delete all Xmessages' if all messages in any mailbox are marked for deletion Xor `Delete message(s)?' Xif not reading the default mailbox and there are some messages that Xshould be saved. A response of `n' (no) to either of these questions will Xresult in the quit command aborting, and the files being untouched. X.LI r XReply. Reply to the author of the current message. If Xthe autocopy flag is not specified, 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 prefix character sequence, as specified in Xthe users \fI.elm/elmrc\fR file. X.LI s XSave to file. This command allows the current message or set of Xtagged messages to be copied Xinto an arbitrary file. If there is anything in the file currently the Xmessage or messages are appended to the end, otherwise the file is created Xcontaining only the newly saved mail. The prompt for this command Xis `Save to file : '. A response of <return> cancels the command Xand returns the user to the system prompt. XAfter saving a file, each message is marked for deletion and, Xif saving just one message, Xthe current message pointer is incremented. XThe usual filename metacharacters are available, too. X.LI t XTag. Tag the current message for a later operation\*F. X.FS XCurrently only \fIpipe\fR, \fIprint\fR, and \fIsave\fR support this. X.FE X.LI "<control>-T " XTag all messages containing the specified pattern. Since \fItagging\fR Xmessages can occur on screens other than the one being viewed, the X\fIelm\fR system will first check to see if any messages are currently X\fItagged\fR and ask you if you'd like to remove those tags. After Xthat, it will, similar to the \fI<control>-D\fR function, prompt for Xa pattern to match and then mark for deletion all messages that contain Xthe (case insensitive) pattern in either the \fIfrom\fR or \fIsubject\fR Xlines. X.LI x XExit. This is functionally the same as answering \fIN\fRo to the X.I quit Xcommand prompt, and simply leaves the program in the quickest Xpossible manner. This command can also occur from typing XDELETE, or control-Q, both of which are also X.I exit Xcommands. X.LE X.sp 2 X.H 1 "The Mail Archive File" X.sp X.P XThe format of the mail saved to the archive file is also Xworth a quick discussion. Unlike the usual exact copy Xof the entire header section, the archived mail has the Xfollowing header; X.nf X.ft CW X From To:\fIname\fP 15 Jan 1985 4:54:30 MST X To: \fIaddress\fP X Subject: \fIsubject\fP X Cc: \fIaddress\fP X \fImessage body\fR X.ft R X.fi XThe first line, the ` X.ft CW XFrom\fR ' line, is deliberately mangled Xwith the occurrence of the ` X.ft CW XTo:\fIname\fR ' to ensure that when Xyou are perusing your archive file with the mailer that Xyou see \fIwhom the message was to\fR, since they're all going Xto be from you. The \fIname\fR will either be the machine!login Xof the person, or, if originally addressed with an alias, the Xalias name. X.P XTo read this file, you can use the mailer, choosing the Xthe \fIchange mailbox\fR command, or start up specifying your Xarchive file as the mailbox to read. X.sp 2 X.H 1 "Using Elm with ``editor = none''" X.sp X.P XThe X.I Elm Xprogram also supports a builtin editor for simple message Xcomposition that is very (very) similar to the simple line Xeditor available from the \fIBerkeley Mail\fR system. X.P XTo access it, you need merely to specify ``\fIeditor=none\fR'' in Xyour \fI.elm/elmrc\fR 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 Xfor use; X.sp X.VL 7 3 X.LI "~?" XPrint a brief help menu. X.LI "~b" XChange the Blind-Carbon-Copy list. X.LI "~c" XChange the Carbon-Copy list. X.LI "~e" XInvoke the Emacs editor on the message, if possible. X.LI "~f" Xadd the specified list of messages, or current. X.LI "~h" XChange all the available headers (To, Cc, Bcc, and Subject) X.LI "~m" Xsame as `~f', but with the current `prefix'. X.LI "~o" XInvoke a user specified editor on the message. X.LI "~p" Xprint out the message as typed in so far. X.LI "~r" XInclude (read in) the contents of the specified file. X.LI "~s" XChange the Subject line. X.LI "~t" XChange the To list. X.LI "~v" XInvoke the Vi visual editor on the message. X.LI "~<" 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 \fIwho\fR command in your message) X.LI "~!" Xexecute a unix command if one is given (as in ``~!ls'') or Xgive the user a shell (either from their shell setting in Xtheir \fI.elm/elmrc\fR file or $SHELL). X.LI "~~" XAdd a line prefixed by a single `~' character. X.LE X.sp XA useful note is that the `~f' and `~m' commands invoke the \fIreadmsg\fR 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 ~m -n Joe X.fi Xto accomplish the task. X.P XTo learn more about how they work, try 'em! X.sp 2 X.H 1 "The Alias System" X.sp X.P XAs mentioned previously, there exists in the X.I elm Xsystem a set of aliases that associate Xan arbitrary word (such as a persons name) to a complex Xaddress or group. XThe advantages are readily apparent; rather than Xremembering an address of the form; X.nf X.ps 9 X.ft CW X host1!host2! ... !hostN!user X.ft R X.ps 10 X.fi Xthe user merely has to remember a single word. X.P XTwo alias tables are available for a each Xuser within X.I elm, Xnamely the system alias file and the users' alias file. The Xsystem alias file is created and maintained (by the system administrator) Xby editing the Xfile \fISYSTEM_ALIASES\fR as defined in the `sysdefs.h' file X(see \fIThe Elm Configuration Guide\fR) and as described Xin the documentation with the X.I newalias Xcommand, then running the X.I newalias Xprogram. X.P 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 X.I newalias Xcommand and create a file as indicated therein. After Xexecuting the program, the aliases will be available Xfor using from within X.I elm. X.sp XPlease refer to \fIThe Elm Alias Users Guide\fR for more helpful Xhints and so on. X.sp 2 XWithin X.I elm, 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.DS X.nf X.ps 9 X.ft CW X.ce X-------------------------------------------------------------------------------- X.sp X.ce XAlias commands X.sp X.ce XA)lias current message, Check a P)erson or S)ystem, M)ake new alias or R)eturn X.sp 2 XAlias: @ X.ce X-------------------------------------------------------------------------------- X.sp X.ps 10 X.ft R X.DE X.fi X.P 0 XThe commands are; X.VL 10 3 X.LI a 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 \fIThe Elm Alias System Users Guide\fR. X.LI p 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.LI s 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.LI m 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 alias_text file (\fI$home/.alias_text\fR) and Xthen added to the database. X.LI r XReturn. Return to the main level of the X.I elm Xprogram. X.LE X.sp 2 X.H 1 "While We're Talking Aliases..." X.P 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 \fIhostname\fR \fIaddress\fC!%s\fR X or X \fIhostname\fR \fC%s@\fIhostname\fR X.fi XThe actual details of the file are located in X\fIThe Alias System Users Guide\fR. X.P 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.P 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.P 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.P XFor example, mail to me could be sent as either "hplabs!taylor" Xor "taylor@hplabs". \fIelm\fR will expand them Xboth in the same manner and include a ``route'' to the Xmachine \fIhplabs\fR, if needed. X.P 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.P 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.sp 2 X.H 1 "Expert Mail Users and Debugging the Mailer" X.P XThere are some additional facilities available in the X.I elm Xmailer for those people who are knowledgeable about Xmail protocols, or trying to debug/track down a Xproblem. X.P XThe `h' \fIheaders\fR 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.P 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.P XThe `#' command at the outermost level of the mailer Xwill display the entire stored `record structure' for Xthe current message. X.P XThe `%' command Xwill display the full computed return address of the Xcurrent message. X.P XStarting up X.I elm Xwith the "-d" debug option will create a file called X.I ELM:debug.info Xin 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.P 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) Xbefore 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 \fIerrno\fR(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.PH "" X.tm I trust we've run this through "tbl" first... X\" @(#)$Id: Users.guide,v 2.1 88/09/15 22:10:09 syd Exp $ X\" X\" Users guide to the ELM mail system. X\" format with: X\" 'tbl Users.guide | troff -mm > Users.fmtd' X\" X\" Elm is now in the public trust. Bug reports, comments, suggestions, flames X\" etc. should go to: X\" Syd Weinstein syd@dsinc.UUCP (dsinc!syd) X\" X\" (C) Copyright 1986, 1987 Dave Taylor X\" X\" $Log: Users.guide,v $ X\" Revision 2.1 88/09/15 22:10:09 syd X\" Initial 2.1 release X\" X\" 88/09/05 gatech!sigmast!dgy@cs.buffalo.edu X\" misc fixes re nroff and OPTIMIZE RETURN X\" X\" 88/08/30 SSW X\" misc changes for release X\" X\" 88/08/27 nicmad!brown (Mike Brown) X\" Fixes for spacing and doc X\" X\" Revision 2.1 88/07/08 14:47:12 edc X\" Removed allreferences to the X.400 stuff (since it's based on a library X\" we can't distribute with the net version of Elm). Also include a X\" "Bug Reports To" section in the man pages, as well as a note in the X\" documentation title pages stating that "Elm is now in the public trust... X\" send bug reports to..." as per Dave's request. X\" X\" Revision 2.0 88/06/27 13:50:40 edc X\" This is the original 2.0 gamma release as leaked from HP. X\" X.PF "" 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.ds HF 3 3 X.ds HP 12 12 X.SA 1 X.nr Hy 1 X.nr Pt 1 X.nr Pi 0 X.lg 1 X.HM 1 1 X.rs 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\fBThe Elm Users Guide\fR X.sp 2 X.ps 12 X\fIA painless introduction to electronic mail Xusing the \fBElm\fP mail system\fR 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: syd\s-1@\s+1dsinc.UUCP or dsinc\s-1!\s+1syd X.ps 8 X.if t .vs 9 X.sp 5 X\fBABSTRACT\fR 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 \fIElm\fR, a sophisticated Xfull-screen mail system for interactive use. X\fIElm\fR offers all the features of X\fI/bin/mail\fR, \fIBerkeley Mail\fR, \fIuumail\fR, \fINMail\fR and Xthe AT&T Mail family of Unix mailers (namely \fIPMX/TERM\fR) in a Xunified and intuitive fashion. X.ll +1i X.in -1i X.if t .sp 5 X.if n .sp 2 X.ce X.ps 18 X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor X.ps 10 X.if t .vs 12 X.SK X.ce 99 X.ps 14 X\fBElm Users Guide\fR X.ps 10 X.sp X(version 2.1) 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: syd\s-1@\s+1dsinc.UUCP or dsinc\s-1!\s+1syd X.sp 2 X\*(DT X.ce 0 X.nr P 1 X.PH "'Elm Users Guide''Version 2.1'" X.PF "''Page \\\\nP''" X.sp 3 X.H 1 "Introduction" X.P 1 XThe Unix\v'-.3'\s5TM\s10\v'.3' operating system was originally Xwritten 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.P XGradually this began to change, and, with the addition of the Berkeley X.I vi Xvisual shell to the X.I ed 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.P XConsequently, after becoming more and more disenchanted Xwith the existing electronic mail facilities (\fIbinmail\fR Xand \fIBerkeley Mail\fR) 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.P XOne thing that sets \fBThe Elm Mail System\fR off from Xother packages is that it Xcomes with an extensive documentation set, including; X\fIThe Elm Users Guide\fR, which you're holding, X\fIThe Elm Reference Guide\fR, X\fIThe Elm Alias Users Guide\fR, X\fIThe Elm Filter System Users Guide\fR, X\fIThe Elm Forms Mode Guide\fR, Xand \fIThe Elm Configuration Guide\fR. XThe names of each indicate Xwhat they discuss (not unreasonably). X.P XThis particular document contains; Xthis introduction, a tutorial session with the mailer, a Xdiscussion of non-interactive uses of \fBElm\fR, Xa brief foray into the \fBElm\fR utilities, Xand finally, credits and references. X.P X\fIThe Elm Reference Guide\fR contains a Xmuch more indepth discussion of all the possible options Xavailable within the \fBElm\fR 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.P X\fIThe Elm Alias Users Guide\fR 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.P XOne of the more innovative features of \fBElm\fR 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 \fIThe Elm Forms Mode Guide\fR. X.P XIf you find yourself getting too much mail delivered in Xyour mailbox, you might be a good candidate for the X\fIfilter\fR program. To learn more about what Xthis program is and how to use it please Xconsult \fIThe Elm Filter System Users Guide\fR. X.P 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\fIThe Elm Configuration Guide\fR. 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.sp XThe recommended order of learning the \fBElm\fR Xsystem is to skim this guide until you feel Xconfident enough to start up the program. Once Xthat's reached, \fIuse it!\fR Soon you'll find Xareas that you need to expand into, and you can Xachieve that by going into the \fIO)ptions\fR Xscreen within \fIelm\fR and changing your Xuser level accordingly. XAfter a while, sit down again and read through this Xguide. You should have a couple of ``aha!'' intuitive Xflashes. After another period of time, you're Xready to delve into the real power of the system Xand read the reference guide. The other manuals Xshould be read as the need arises. X.sp XIn any case, the system should be useable without reading X\fIany\fR of the documentation! X.sp XAny comments or problems with any of the documentation or the program Xitself are welcome; if you can't get electronic mail to me, please Xfeel free instead to drop me a note via the overland mail address Xin the title page. X.sp X.H 1 "The Main System" X.P 1 XUpon entry to the program, the main screen will be Xdisplayed as below; X\" display start, constant width, remember loc for BOX X.DS CB X.ft CW X.ps 9 X.mk a X.mk a X.sp X.ce XMailbox is '/usr/mail/mymail' with 15 messages. [Elm 2.1] X.TS Xr l n l l l l. X -> N 1 Apr 24 Larry Fenske (49) Hello there X N 2 Apr 24 jad@hpcnoe (84) Chico? Why go there? X E 3 Apr 23 Carl Smith (53) Dinner tonight? X NU 4 Apr 18 Don Knuth (354) Your version of TeX... X N 5 Apr 18 games (26) Bug in cribbage game X A 6 Apr 15 kevin (27) More software requests X 7 Apr 13 John Jacobs (194) How can you hate RUSH? X P 8 Apr 8 decvax!mouse (68) Re: your Usenet article X 9 Apr 6 root (7) X 10 Apr 5 root (13) X.TE X.sp X.ce 3 XYou can use any of the following commands by pressing the first character; XD)elete or U)ndelete mail, M)ail a message, R)eply or F)orward mail, Q)uit XTo read a message, press <return>. j = move down, k = move up, ? = help X Command : @ X.sp X\" draw box, proportional Roman font back, display end X.eb X.ps 10 X.ft R X.DE X.P 0 XThere are a number of things to notice about this, the main screen; X.BL 4 X.LI XMost likely, on your computer the message currently ``active'' will be Xdisplayed in an inverse bar rather than being delimited by the two Xcharacter arrow as here. It's nothing to worry about; displaying Xinverse video is just quite difficult on printers! X.LI XThe first line on the screen always displays the current mail file, Xthe number of messages in the file, and the current X.B Elm Xversion number. X.LI XThe arrow (``->'') or inverse video bar will always Xindicate which is the current message. X.LI XThe first field that appears associated with each message is Xthe status field. This can be blank (as with most of the Xones above, or can have any combination of: X.sp X\fIfirst character (which signifies temporary status)\fR X.TS Xc l. X E for an \fIexpired\fR message X N for a \fInew\fR message X D for a \fIdeleted\fR message X.TE X\fIsecond character (which denotes permanent status)\fR X.TS Xc l. X U for \fIurgent\fR mail X A for messages that have an \fIaction\fR associated with them X F for a \fIform\fR letter X.TE XThe third character of the status field can be a ``+'' to Xindicated that the message is \fItagged\fR too. X.TE X.LI XContinuing from left to right, the next field is the message Xnumber. For the most part you can ignore these unless you want Xto quickly move to a specific message (as we'll see later). X.LI XThe date associated with each message is typically Xthe date the person actually X.I sent Xthe message. X.LI XThe next field displayed indicates whom the message is from. X\fBElm\fR will try to display the \fIfull name\fR of the person who Xsent the message, rather than the their return address or Xcomputer login. XSome systems don't generate the correct headers, though, hence Xmessages like numbers 2 and 8, where it's Xtheir return address. X.LI XThe number in parentheses is the total number of lines in the message. X.LI XThe final field is the subject of the message. Notice Xthat messages mightn't have any subject, as in messages #9 and #10. X.LI XA maximum of ten messages are displayed at one time \*F. X.FS X.ft R XOn screens with greater than 25 lines, more messages will be Xdisplayed automatically. Further, if you choose to turn off Xthe Menu display, you can have an even greater number Xdisplayed. X.FE XFurther into Xthe document we'll learn how to change 'pages' in the mailbox. X.LI XThe three line Menu display will always Xindicate the relevant commands. There are actually two possible Xmenus that can be displayed, based Xon the \fIuser level\fR as set from either the O)ptions screen or Xthe \fI.elm/elmrc\fR Xfile. The alternate menu, for more advanced users, Xlists more options; X.sp X.ce 3 X|=pipe, !=shell, ?=help, <n>=set current to n, /=search pattern XA)lias, C)hange mailbox, D)elete, E)dit, F)orward, G)roup reply, M)ail, XN)ext, O)ptions, P)rint, R)eply, S)ave, T)ag, Q)uit, U)ndelete, or eX)it X.sp X.LI XFinally, the '@' character indicates where the cursor would be, awaiting Xyour input. X.LE X.P 0 X.sp XThe typical action at this point is to use the X.I <return> Xkey to read the current message, which will clear the Xscreen and display the current message: X.DS CB X.ft CW X.ps 9 X.mk a X.tl ' Message 1/15 from Larry Fenske''Apr 24, 87 at 8:45 pm ' X.tl ''Hello there'' X Dave, X Just wanted to drop you a brief note to see what was going on with X you this afternoon. Life here has been the usual fun and games... X Ah well, off to the great wilds beyond the desk! X Larry X Please press <return> to return to Elm: @ X.eb X.ft R X.ps 10 X.DE XBefore we go further with our example, however, let's very Xquickly look at all the functions available from the main Xscreen: X\" ensure we get a reasonable chunk of this table on the page... X.ne 10 X.VL 25 0 1 X.LI "Command" XAction X.LE X.sp X.VL 22 3 1 X.LI "|" XPipe current message or tagged messages to specified system command. X.LI "!" XShell escape. X.LI "?" XHelp mode \(em any key pressed will be explained. X.LI "+ \fI<space>\fR" XNext page of headers X.LI "-" XPrevious page of headers X.LI "=" XSet current message to 1 X.LI "*" XSet current to last message. X.LI "<n>" XSet current message to number n. X.LI "/" XSearch for pattern in subject/from lines. X.LI "//" XSearch for pattern in entire mailbox. X.LI "<" XScan message for calendar entries\*F X.FS X.ft R XSome sites might opt not to have this feature Xavailable. X.FE X.LI ">" XA synonym for `s' \(em \fIsave\fR message or messages. X.sp X.LI "a" XAlias, change to 'alias' mode X.LI "b" XBounce \(em remail message [see \fIf \(em forward\fR too] X.LI "c" XChange to new mail file X.LI "d" XDelete current message X.LI "<control>-D" XDelete all messages matching specified pattern X.LI "e" XEdit mailbox file, resyncing upon reentry. X.LI "f" XForward message to specified user\*F X.FS X.ft R XThe difference between \fIForward\fR and \fIBounce\fR is rather Xsubtle \(em a forwarded message is ``from'' you, with the Xoriginal message included, whereas a bounced message Xis still from the original sender. X.FE X.LI "g" XGroup reply \(em reply to everyone who received the current message X.LI "h" XDisplay message + headers X.LI "j" XIncrement current message by one X.LI "k" XDecrement current message by one X.LI "l" XLimit displayed messages based on the specified criteria. X.LI "m" XMail to arbitrary user(s) X.LI "n or <return>" XNext message (Read current, then increment) X.LI "o" XAlter current system options. X.LI "p" XPrint current message or tagged messages. X.LI "q" XQuit \(em mail deleted, saved in mbox or left. X.LI "r" XReply to the author of current message X.LI "s" XSave current message or tagged messages to file X.LI "t" XTag current message. X.LI "<control>-T" XTag all messages matching specified pattern. X.LI "u" XUndelete current message X.LI "<control>-U" XUndelete all messages matching specified pattern. X.LI "x" XExit \(em don't record as read, don't save... X.sp X.LI "^L" XRewrite screen. X.LI "^M (<return>)" XRead current message X.LI "^Q, DEL" XExit \(em don't record as read, don't save... X.LE X.sp X.P 0 X\" again, make sure we start on a new page please X.ne 10 X.P 0 XBut let's go back to our example and see some of this at Xwork, shall we? X.sp XWe were reading the message from Larry and the screen looked Xlike: X.DS CB X.ft CW X.ps 9 X.mk a X.tl ' Message 1/15 from Larry Fenske''Apr 24, 87 at 8:45 pm ' X.tl ''Hello there'' X Dave, X Just wanted to drop you a brief note to see what was going on with X you this afternoon. Life here has been the usual fun and games... X Ah well, off to the great wilds beyond the desk! X Larry X Please press <return> to return to Elm: @ X.eb X.ft R X.ps 10 X.DE XFrom this point let's go ahead and reply to the message. To Xdo this, we can use the \fIreply\fR command... XTo do this, we type ``r'' and the last few lines change to Xsomething like: X.ft CW X.ps 9 X.sp X.tl '-------------------------------------------------------------------------------'' X.tl 'Command: reply to message''Copy message (y/n) ? @ ' X.sp 2 X.ft R X.ps 10 XTo which we decide that we don't need the text of this message in Xour new one, so we reply \fIno\fR by pressing the ``n'' key. The Xbottom part of the window then changes to: X.ft CW X.ps 9 X.sp X.tl '-------------------------------------------------------------------------------'' X.tl 'Command: reply to message''To: Larry Fenske ' X.tl 'Subject: Re: Hello there@'' X.ft R X.ps 10 X.sp 2 Xat this point we can either decide to enter a new subject (you could Xuse either \fIbackup word\fR (<control>-W) or \fIbackup line\fR (this Xis the same as your `line kill' character, <control>-X or <control>-U Xusually)) or go with this one by pressing \fI<return>\fR. We'll Xjust leave it as it is and press \fI<return>\fR, changing the Xscreen to: X.ps 9 X.ft CW X.sp X.tl '-------------------------------------------------------------------------------'' X.tl 'Command: reply to message''To: Larry Fenske ' X.tl 'Subject: Re: Hello there'' X.tl 'Copies To: @''' X.ps 10 X.ft R X.sp XThere's no-one we want to have receive copies of this message, so we'll Xjust press \fI<return>\fR again to indicate this. X.sp XOnce you've answered these questions the program will put you into Xyour favorite editor and let you compose a response. When you're Xdone it then asks: X.ps 9 X.ft CW X.sp X.tl '-------------------------------------------------------------------------------'' X.tl 'Please choose one of the options by capitalized letter' X.tl 'E)dit the message, edit the H)eaders, S)end it, or F)orget it: @' X.ft R X.ps 10 X.sp XSince we're just interested in sending the message out, we'll Xchoose the \fIsend\fR option and press ``s''. The program Xthen sends the message, indicating that by the line below Xsaying: X.sp X.ps 9 X.ft CW X sending mail... X.ft R X.ps 10 X.sp Xthen putting at the bottom of the screen ``Mail sent!'' and giving us Xthe prompt: X.ps 9 X.ft CW X.sp X.tl ' Request (return to I)ndex page) ? @'' X.sp X.ps 10 X.ft R XPretty easy, isn't it? Let's continue by going back to the main Xscreen by requesting \fIindex\fR: pressing the ``i'' key. The Xscreen is then: X.DS CB X.ft CW X.ps 9 X.mk a X.mk a X.sp X.ce XMailbox is '/usr/mail/mymail' with 15 messages. [Elm 2.1] X.TS Xr l r l l l l. X -> 1 Apr 24 Larry Fenske (49) Hello there X N 2 Apr 24 jad@hpcnoe (84) Chico? Why go there? X E 3 Apr 23 Carl Smith (53) Dinner tonight? X NU 4 Apr 18 Don Knuth (354) Your version of TeX... X N 5 Apr 18 games (26) Bug in cribbage game X A 6 Apr 15 kevin (27) More software requests X 7 Apr 13 John Jacobs (194) How can you hate RUSH? X P 8 Apr 8 decvax!mouse (68) Re: your Usenet article X 9 Apr 6 root (7) X 10 Apr 5 root (13) X.TE X.sp X.ce 3 XYou can use any of the following commands by pressing the first character; XD)elete or U)ndelete mail, M)ail a message, R)eply or F)orward mail, Q)uit XTo read a message, press <return>. j = move down, k = move up, ? = help X Command : @ X.sp X\" draw box, proportional Roman font back, display end X.eb X.ft R X.ps 10 X.DE X.ft R XNotice that the first message is no longer marked as \fInew\fR Xsince we've now read it. X.sp XLet's go ahead and read the message from kevin (message #6) since Xit has some sort of \fIaction\fR associated with it anyway. To Xdo this, we simply press the ``6'' key, which will change the Xbottom of the screen to: X.sp X.ps 9 X.ft CW X.tl 'Command: New Current Message''Set current message to : 6@' X.ft R X.ps 10 X.sp XWe'll just press \fI<return>\fR to move the active message Xpointer (the arrow). X.sp XNow we're pointing at the new message, so let's go ahead and read Xit by pressing \fI<return>\fR again, giving us: X.sp X.DS CB X.ft CW X.ps 9 X.mk a X.tl ' Message 6/15 from kevin''Apr 15, 87 at 11:36 am ' X.tl ''More software requests'' X Action: please acknowledge receipt X I don't suppose you have a nifty netnews reader around too, do you?? X -- X kevin X Please press <return> to return to Elm: @ X.eb X.sp X.ps 10 X.ft R X.DE X.ne 5 XWell, it turns out that we don't, but a friend of ours does, so Xlet's \fIforward\fR the message to them by pressing ``f'': X.ps 9 X.ft CW X.sp X.tl '-------------------------------------------------------------------------------'' X.tl 'Command: forward message''Edit outgoing message (y/n) ? @ ' X.ft R X.ps 10 X.sp 2 XNo need to edit it, so let's answer \fIno\fR with ``n'': X.sp X.ps 9 X.ft CW X.tl '-------------------------------------------------------------------------------'' X.tl 'Command: forward message''Edit outgoing message (y/n) ? No ' X.tl 'To: @''' X.ps 10 X.ft R X.sp XWe type in the address of the person we're forwarding to (in Xthis case X.ft CW Xusenet\fR) and press X\fI<return>\fR: X.ft CW X.ps 9 X.sp X.tl '-------------------------------------------------------------------------------'' X.tl 'Command: forward message''To: usenet ' X.tl 'Subject: More software requests (fwd)@' X.ft R X.ps 10 X.sp XTo which we again press \fI<return>\fR to take the default subject. X\fIelm\fR asks for any possible copy recipients, asks us if we're Xsure we want to send it, and shoots it off. X.sp XEnough mail for now, however, so we just \fIexit\fR by pressing Xthe ``x'' key and the program drops us back into our shell. SHAR_EOF echo "End of part 4" echo "File doc/Users.guide is continued in part 5" echo "5" > s2_seq_.tmp exit 0 -- ===================================================================== Sydney S. Weinstein, CDP, CCP Elm Coordinator Datacomp Systems, Inc. Voice: (215) 947-9900 {allegra,bellcore,bpa,vu-vlsi}!dsinc!syd FAX: (215) 938-0235