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.