Subject: v09i019: ELM Mail System, Part19/19 Newsgroups: mod.sources Approved: rs@mirror.TMC.COM Submitted by: Dave Taylor Mod.sources: Volume 9, Issue 19 Archive-name: elm2/Part19 #! /bin/sh # This is a shell archive. Remove anything before this line, # then unpack it by saving it in a file and typing "sh file". # If this archive is complete, you will see the message: # "End of archive 19 (of 19)." # Contents: doc/Ref.guide PATH=/bin:/usr/bin:/usr/ucb ; export PATH echo shar: Extracting \"doc/Ref.guide\" \(43914 characters\) if test -f doc/Ref.guide ; then echo shar: Will not over-write existing file \"doc/Ref.guide\" else sed "s/^X//" >doc/Ref.guide <<'END_OF_doc/Ref.guide' X.PH "" X\" X\" Reference guide to the ELM mail system. X\" format with 'troff -mm Ref.guide > Ref.format X\" or something similar. X\" X\" (C) Copyright 1986 Dave Taylor X\" X\" Last update: January 19th, 1987 X\" X.SA 1 X.nr Hy 1 X.nr Pt 1 X.nr Pi 8 X.lg X.rs X.ds HF 3 3 X.ds HP 12 12 10 10 10 X.PF "" X.HM 1 1 X.ce 99 X.sp 5 X.ps 20 X\fBElm Reference Guide\fR X.sp 5 X.ps 12 X\fIA comprehensive list of all commands, Xoptions and such to 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@hplabs.HP.COM or hplabs!taylor X.sp 10 X.ps 18 X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor X.ce 0 X.SK X.ce 99 X.ps 14 X\fBElm Reference Guide\fR X.ps 10 X.sp X(version 1.5) X.sp 2 XDave Taylor XHewlett-Packard Laboratories X1501 Page Mill Road XPalo Alto CA X94304 X.sp Xemail: taylor@hplabs.HP.COM or hplabs!taylor X.sp 2 X\*(DT X.ce 0 X.nr P 1 X.PH "'Elm Reference Guide''Version 1.5'" X.PF "''Page \\\\nP''" X.sp 3 X.H 1 "Introduction" X.P 1 XThere are many parts to a complex software system and the \fBElm\fR Xmail system Xis no different. This document describes fully all the options Xavailable in the mailer, including the starting options, Xthe commands (in considerably more detail than Xin the \fIElm Users Guide\fR) and the \fI.elmrc\fR file. X.P 1 XTo be more explicit, this document covers; Xa discussion of the \fI.elmrc\fR file, Xstarting options of \fBElm\fR, Xoutgoing mail processing, Xresponses of various commands, Xthe mail archive file, Xthe \fInotes\fR system, Xthe Alias system, Xsystem aliases etc, Xmore on the \fBElm\fR utilities, Xand a section for expert mail users. X.P 1 XWithout any further ado, then, let's get this show on the road!! X.sp 2 X.H 1 "The .elmrc File" X.P XThe mailer, like lots of other software on the XUnix\v'-.3'\s5TM\s10\v'.3' system, has the ability to automatically read Xin a configuration file at each invocation. The file must be Xcalled \fI.elmrc\fR and reside in your home directory for it Xto be found, and can have any of the following entries Xin any order; X.sp 2 X.ps 12 X.ne 8 X\fBString Variables\fR X.ps 10 X.VL 13 0 X.LI "alternatives" XThis is a list of other machine/username combinations Xthat you receive mail from (forwarded). This is used Xwhen the \fIgroup reply\fR feature is invoked to ensure that Xyou don't send yourself a copy of the outbound message. X(no default) X.LI "calendar" XThis is used in conjunction with the "<" \fIscan message for Xcalendar entries\fR command. The default place to put Xcalendar entries if found is \fI$HOME/calendar\fR. This Xvariable can be set to specify something else.. X.LI "editor" XThe editor to use when typing in new mail. If you select X``none'' or ``builtin'' you'll get a Berkeley Mail style Xinterface for all mail that doesn't already have text Xin the buffer (e.g. a reply, mail with a ``signature'', etc). X(default is to use the value of the $EDITOR in your Xcurrent environment) X.LI "fullname" XThis is the name the mailer will use when sending mail Xfrom you. It is highly recommended that you use your Xfull name and nothing strange or unusual, as that can Xappear extremely rude to people receiving your mail. X(Default is to use the "gecos" field from the \fI/etc/passwd\fR file) X.LI "mailbox" XThis is where to put incoming mail after you've read it. XWhen you answer `n' to the "keep messages in incoming mailbox?" prompt, this Xis where the messages go! X(default is the file \fImbox\fR in your home directory) X.LI "maildir" XThis is the default mail directory, and is used to expand filenames Xin the mailer when specified using the `=' metacharacter\*F. That X.FS XNote that `%' and `+' are synonymous with `=' throughout \fBElm\fR X.FE Xis, if you save to file \fI=/stuff\fR then the `=' will be expanded Xto the current value of maildir. X(no default) X.LI "pager" XThis defines the program to be used to display each message. The Xdefault is ``builtin'', and can be changed while within the \fIElm\fR Xprogram by selecting the appropriate entry in the O)ptions Menu. X.LI "prefix" XWhen you \fIreply\fR to a message or \fIforward\fR a message to another person,X Xyou can optionally include the original message. Defining the Xprefix value here allows you to indicate what the prefix of Xeach included line should be. (default is "> " and is Xfairly standard in the Unix community) X.LI "print" XThis indicates how to print out a message. There are two Xpossible formats for this string, either a command that Xcan have a filename affixed to (as a suffix) and then Xsent to the system for execution, or a string that Xcontains the meta-sequence `%s' which will be replaced Xby the name of the file and then also sent to the Xshell. Examples of each are; X.nf X X print = print -formfeed X print = pr %s | lpr X X.fi X(no default) X.LI "savemail" XThis is where outgoing mail will have a copy silently (and Xquickly) saved. This will only be used if the flag \fIcopy\fR Xis turned on. Also note that if the \fIsavename\fR flag Xis turned on then this line is ignored since each outgoing Xmessage is saved according to whom it's being sent to. X(default is to have this option disabled) X.LI "shell" XThis defines the shell to use when doing ``!'' escapes and Xsuch. Note that the program also reads the $SHELL variable Xout of the current environment, but that defining this Xin the .elmrc file will override the environment definition. X.LI "signature" XThis file, if defined, will be automatically appended to all Xoutbound mail before the editor is invoked. Furthermore, Xif you'd like a different ``.signature'' file for \fIlocal\fR Xmail and \fIremote\fR mail (remote being via other hosts), Xyou can alternatively define two files called \fIlocalsignature\fR Xand \fIremotesignature\fR to have the same functionality. X.LI "sortby" XWhen reading mailboxes, Xeither incoming or saved, you can have them sorted by any Xnumber of different ways. This can be changed without leaving Xthe \fBElm\fR system by changing the \fIoptions mail-sorted-by\fR Xfield, but it can also be predefined to any of the following; X.sp X.VL 15 3 X.LI "from" XThis will sort according to whom each message is \fIfrom\fR. X.LI "sent" XThis will sort \fIleast recently sent\fR to X\fImost recently sent\fR. X.LI "received" XThis will sort \fIleast recently received\fR to X\fImost recently received\fR. X.LI "subject" XThis will sort according to the \fIsubject\fR of each message. X.LI "lines" XThis will sort \fIshortest\fR to \fIlongest\fR by message. X.LI "status" XThis will sort by priority, action, new, tagged, then deleted Xorder. X.LE X.sp XEach of these fields can also optionally be prepended with the Xsequence "reverse-" to reverse the order of the sort. The Xsorting method in the sample \fI.elmrc\fR, for example, Xis \fIreverse-sent\fR, to have the new Xmail always be listed first in the headers (note that this doesn't Ximply anything about the location of the message in the \fImailbox\fR Xitself!) X.LI "weedout" XWhen specifying this option, you can then list headers that Xyou \fBdon't\fR want to see when you are read mail. XThis list can continue for as many lines as desired, as Xlong as the continued lines all have leading indentation. X(default is ``Received:'' and others...) X.LE X.sp 2 X.ps 12 X.ne 8 X\fBNumeric Variables\fR X.ps 10 X.VL 13 0 X.LI "bounceback" XThis is a hop count threshold value and allows you to Xset up the mailer so that when you send mail more than X\fIn\fR machines away, it'll automatically include a X"Cc:" to you through the remote machine. In practice Xthis should be very rarely used. (Note: this refuses to Xbounce mail off an Internet address. The default is to Xhave it set to zero, which disables the function) X.LI "timeout" XOn more advances systems, it's nice to start up the Xmailer in a window and let it sit in background Xunless new mail arrives (see \fIwnewmail\fR for Xanother window based program) at which point Xit can be brought up to the forefront of the system Xand read. In this case, it would be quite convenient Xto have the mailer internally resynchronize every X``delta'' seconds. That's exactly what this particular Xoption allows. X.sp XThis is also useful for normal terminals, for example you can Xleave \fBElm\fR running at night (I usually do) and when you Xcome in in the morning it'll be all ready to read your mail! X.sp X(The default is a 300 second (5 minute) timeout period). X.LI "userlevel" XThis is what the program uses to determine the relative level of Xsophistication of the user - the values are 0 for a new user (the Xdefault), 1 for a good computer user, and 2 and above for experts. X.LE X.sp 2 X.ps 12 X.ne 8 X\fBBoolean Variables\fR X.ps 10 X.VL 12 0 X.LI "alwaysdelete" XWhen set, this changes the default answer Xof the prompt "Delete messages?" to the indicated value. (default is Xto have the answer be \fINo\fR (alwaysdelete=OFF)) X.LI "alwaysleave" XThis changes the default answer on the "keep mail in incoming mailbox?" Xprompt to the value indicated (default Xis to have the default answer be \fINo\fR (that is, alwaysleave=OFF) X.LI "arrow" XSometimes your are forced to use a slow, or ``dumb'' terminal. In this Xcase, you can force the current message pointer to be the ``->'' Xsequence rather than the inverse bar. (Note that this is Xidentical in function to the `-a' starting option) (default is OFF Xunless you're on an IBM 3270) (I'll bet you think I'm joking...) X.LI "ask" X(or ``question''). This allows you to tell the \fBElm\fR system that Xyou'd rather not be asked ``Delete Mail?'' and such each time you Xleave the program, and instead it should just use the values of X``alwaysdelete'' and ``alwaysleave'' without prompting. Useful if Xyou're too lazy to type two returns! (default is OFF) X.LI "autocopy" XThis is a boolean flag, and if set will automatically copy Xthe text of each message being replied to into the edit Xbuffer. (default is OFF) X.LI "copy" XThis, in combination with the \fIsavemail\fR filename, will Xallow you to have silent copies of all outgoing mail Xmade on the outbound step. X(default is OFF) X.LI "keep" XThe mail system has a habit of deleting mailboxes when you've Xremoved everything from them. With this option turned on, it will Xinstead preserve them as zero-byte files. (default is OFF) X.LI "keypad" XIf on, this tells \fBElm\fR that you have an HP terminal and enables Xthe , , and keys. (default is OFF) X.LI "menus" XIf turned off, this will inhibit the Menu display on all of the Xscreen displays within the \fIElm\fR program. (default is ON) X.LI "movepage" XIf this is turned on then commands that move through the Xmailbox by pages (notably the `+' and `-', and Xkeys) will also move the current message pointer to the Xtop of that page of messages. If this is turned off Xthen moving through the pages doesn't alter the Xcurrent message pointer location. X(default is OFF) X.LI "noheader" XThis boolean flag tells the mailer not to include the Xheaders of messages when copying a message into a file Xbuffer for replying to or forwarding. X(default is ON) X.LI "pointnew" XIf this is turned on, the mailer will automatically Xpointing to the first new message in your mailbox when started, instead Xof at message #1. Note that this is only used for the incoming mailbox! X(default is ON) X.LI "resolve" XThis is a boolean flag that defines the behaviour of the Xprogram for such actions as deletion, saving a message Xand so on. X(default is ON) X.LI "savename" 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, \fBElm\fR will use a more intelligent Xalgorithm - on incoming mail, when you \fIsave\fR it, the default Xmailbox to save to (changeable by pressing anything other than X of course) is a file that is the \fIlogin name\fR of the Xperson who sent you the message. Similarly, when sending mail out, Xinstead of just blindly saving it to the \fIsavemail\fR file, \fBElm\fR Xwill first try to save it to a file that is the login name of the Xperson who is to receive the mail\*F. X.FS XWhen sending to a group, it's saved to the first person in the Xlist only. One day we'll have \fIpointers\fR to messages, then... X.FE XIf the file doesn't already exist on outbound mail, then it will Xsave the mail in the \fIsavemail\fR file. X.P 0 XIn practice, this means that important people that you communicate Xwith (those that you tend to save mail from) have files that are Xactually \fIa recorded log of the discussion in both directions\fR Xand those others (random mailings) are all stuffed in the \fImailsave\fR Xfile for easy perusal and removal. (The default is ON) X.LI "softkeys" XIf on, this tells \fBElm\fR 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. (default is OFF) X.LI "titles" XThis flag allows you to have the first line of a message Xtitled with: X.sp X.nf XMessage #\fIN\fR from \fIusername\fR Mailed \fIdate\fR at \fItimXe\fR X.fi 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(default is ON) X.LI "warnings" 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. (default is ON) X.LI "weed" 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(default is ON) X.LE X.sp XOne more thing: the format for each of the lines is; X.nf X X variable = value X X.fi Xand for boolean variables, \fIvalue\fR can be `ON' or `OFF' only. X.sp XFor a better idea of how this all works, here's my \fI.elmrc\fR 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 \fIElm\fR program - versions X1.3b and above have the ability to create \fI.elmrc\fR files on the Xfly from the O)ptions screen - it's quite useful) X.ps 9 X.nf X X # X # .elmrc - options file for the Elm mail system X # X # Saved automatically by Elm 1.5 for Dave Taylor X # X X # where to save calendar entries X calendar = ~/.Agenda X X # what editor to use (none = simulate Berkeley Mail) X editor = none X X # The full user name for outbound mail X fullname = Dave Taylor X X # where to save messages to, default file X mailbox = $HOME/Mail/mailbox X X # where to save my mail to, default directory X maildir = /users/taylor/Mail X X # scroll through messages rather than paging... X pager = builtin X X # prefix sequence for including message text in other messages... X prefix = >_ X X # how to print a message ('%s' is the filename) X print = lpr -Plw2 %s X X # where to save mail if not specified somewhere else X savemail = /users/taylor/Mail/mail.sent X X # The shell to use for shell escapes X shell = /bin/csh X X # and how to sort mailboxes, by default X sortby = Reverse-Received X X # should we always delete messages we've marked for deletion (change the X # default answer to yes) X alwaysdelete = ON X X # should we always leave messages as pending (change the default answer to yeXs) X alwaysleave = ON X X # should we use the "->" rather than the inverse video bar? X arrow = OFF 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 # we might mail out AT&T Mail Forms, too X forms = OFF X X # we're running on an HP terminal... X keypad = OFF X X # should we display the three-line menus? X menu = ON X X # when using the page commands (+ - ) change the current messageX pointer... X movepage = ON X X # let's just show the names, though, 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 # emulate the Berkeley Mail message increment mode (only increment after someXthing X # has been 'done' to a message, either saved or deleted) X resolve = ON X X # save messages, incoming and outbound, by login name of sender/recipient X savename = ON X X # we're running on an HP terminal and want function keys available 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 # don't bother telling us what machines we can't 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" "SubjectX:" "Fruit" "Sun" "Lat" X "Buzzword" "Return" "Posted" "Telephone" "Postal-Address" "Origin" "X-Sent-By-XNmail-V" "Resent" X "X-Location" "Source" "Mood" "Neuron" "Libido" "To:" "X-Mailer:" "Full-Name:" X"X-HPMAIL" "Cc:" X "cc:" "Mmdf" "Network-" "Really-" "Sender:" "Post" "Message-" "Relay-" "ArticlXe-" "Lines:" X "Approved:" "Xref:" "Organization:" 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 X.ps 10 X.fi X.sp 2 X.H 1 "The Starting Parameters" X.P XThere are a number of starting options to the X.B Elm Xprogram, with only one that needs to be remembered: ``-?''or ``-h'' for help. X.P 0 XThe flags are; X.VL 13 0 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.elmrc\fR file - 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: \fBelm -c\fI alias or aliases\fR. X.LI "-d \fIn\fR" XSet debug level to \fIn\fR. Useful for debugging the X.B Elm Xprogram. The results of using the debug option is Xmuch less drastic than in the previous versions of Xthe program - it creates a file in your home directory Xcalled \fIElm.debug.info\fR and creates a (verbose) log Xof activity as the program is used. 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 - This option, when used, lets the \fBElm\fR program Xknow that you're on an HP terminal, and it can then interpret Xthe , and /- 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.elmrc\fR section) X.LI "-K" XKeypad + softkeys. The \fBElm\fR mailer can, to a rather limited Xextent, use 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.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.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 the \fIElm 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.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 "crypt()" 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``[encode]'' and ``[clear]'' in the message body. X.P 0 XConsider the following outgoing message: X.nf X X Joe, X Remember that talk we had about Amy? Well, X I talked to my manager about it and he said... X X uhh...better encrypt this...the usual `key'... X X [encode] X X He said that Amy was having family problems and that it had been X affecting her work. X 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 X We're friends again!! X [clear] X X Exciting stuff, eh? X X Mike X 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 \fBElm\fR mailer prompts with; X.nf X X Enter encryption key: @ X 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 archived mail too!) X.P XIf the mailer doesn't ask for the encryption key, it's because Xyou don't have the ``[encode]'' 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 \fBElm\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 X Enter decryption key: @ X X.fi Xand will again be asked to re-enter it to confirm. The Xprogram will then on-the-fly decrypt the mail and display Xeach line as it is decoded. The `[clear]' line signifies Xthat the block to encrypt is done. X.P XFor those sites not running \fBElm\fR, a separate program Xsuitable for 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 X [nosave] X 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.B 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 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.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 \fBany\fR line in the mailbox. Again, Xthis works from one after the current message through the Xend. Both searches are case insensitive. X.LI XSpecify new current message. Typing in any of the digits one Xthrough nine will result in the X.B 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 the headers will result in a new page of headers Xbeing displayed. X.LI "<" XScan message for calendar entries. A rather novel feature of Xthe \fBElm\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.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 Regardless of that meeting, here's the seminar stuff; X X -> 8/03 3:00pm: AI Seminar with Ira Goldstein of HP Labs X.DE Xthen using the `<' command would add the line; X.DS X 8/03 3:00pm: AI Seminar with Ira Goldstein of HP Labs 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 X joe, bleu : Joe Bleu : joe@hpcfla X 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 the \fIElm Alias 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 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 an asterisk to the current Xmessage index entry (indicating deletion pending) or removing the Xasterisk (indicating that the deletion is cancelled). X.LI "-D" XThis command allows you to easily mark for deletion all messages Xthat have a specific pattern. After -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 "-U" XThis is the direct opposite command to the previous - 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 "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 X Criteria: X X.fi Xto which we could answer ``subject '', ``from '' or X``to ''. In our example, we could use ``subject programming'' 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 X Mailbox is `=/elm' with 92 shown out of 124 [Elm 1.5] X 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\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.elmrc\fR discussing the \fIprint\fR variable) X.LI q XQuit. This command's action is dependent on the current state of Xthe X.B 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.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 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 "-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-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 X From To: 15 Jan 1985 4:54:30 MST X To:
X Subject: X Cc:
X X X X.fi XThe first line, the `From' line, is deliberately mangled Xwith the occurrence of the `To: 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 ``editor=none'' in Xyour \fI.elmrc\fR file. With 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 a unix command if one is given (as in ``~!ls'') or Xgive the user a shell (either from their shell setting in Xtheir \fI.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 X ~m -n Joe X 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.B 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 X machine1!machine2!machine3! ... !machineN!account X X.fi Xthe user merely has to remember a single word. X.P XTwo alias tables are available for a each Xuser within X.B 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 file \fI/usr/mail/.alias_text\fR 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.B Elm. X.sp XPlease refer to the \fIElm Alias Users Guide\fR for more helpful Xhints and so on. X.sp 2 XWithin X.B 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.ce X\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\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-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- X.sp 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 the \fIElm Alias Users Guide\fR. X.LI p XCheck personal alias. This is a simple way of checking what is in the alias Xdatabase - 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.B 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 X \fIhostname\fR \fIaddress\fR!%s X or X \fIhostname\fR \fI%s@hostname\fR X X.fi XThe actual details of the file are, suprise, suprise, located in Xthe \fIAlias 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, resend Xto their mail to you, 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". \fBElm\fR will expand them Xboth in the same manner and include a ``route'' to the Xmachine \fIhplabs\fR, if needed. X.P 0 XAs the song goes, check the alias guide... 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.P XGuess where to go for more information...!! X.sp 2 X.H 1 "Expert Mail Users and Debugging the Mailer" X.P XThere are some additional facilities available in the X.B 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 message 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 at the outermost level of the mailer Xwill display the full computed return address of the Xcurrent message. X.P XStarting up X.B 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 Bell System V Reference Manual in \fIerrno\fR(2). END_OF_doc/Ref.guide if test 43914 -ne `wc -c