|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: R T
Length: 43914 (0xab8a) Types: TextFile Names: »Ref.guide«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─⟦this⟧ »EUUGD11/euug-87hel/sec1/elm/doc/Ref.guide«
.PH "" \" \" Reference guide to the ELM mail system. \" format with 'troff -mm Ref.guide > Ref.format \" or something similar. \" \" (C) Copyright 1986 Dave Taylor \" \" Last update: January 19th, 1987 \" .SA 1 .nr Hy 1 .nr Pt 1 .nr Pi 8 .lg .rs .ds HF 3 3 .ds HP 12 12 10 10 10 .PF "" .HM 1 1 .ce 99 .sp 5 .ps 20 \fBElm Reference Guide\fR .sp 5 .ps 12 \fIA comprehensive list of all commands, options and such to the \fBElm\fP mail system\fR .sp 5 Dave Taylor .sp Hewlett-Packard Laboratories 1501 Page Mill Road Palo Alto CA 94304 .sp email: taylor@hplabs.HP.COM or hplabs!taylor .sp 10 .ps 18 \fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor .ce 0 .SK .ce 99 .ps 14 \fBElm Reference Guide\fR .ps 10 .sp (version 1.5) .sp 2 Dave Taylor Hewlett-Packard Laboratories 1501 Page Mill Road Palo Alto CA 94304 .sp email: taylor@hplabs.HP.COM or hplabs!taylor .sp 2 \*(DT .ce 0 .nr P 1 .PH "'Elm Reference Guide''Version 1.5'" .PF "''Page \\\\nP''" .sp 3 .H 1 "Introduction" .P 1 There are many parts to a complex software system and the \fBElm\fR mail system is no different. This document describes fully all the options available in the mailer, including the starting options, the commands (in considerably more detail than in the \fIElm Users Guide\fR) and the \fI.elmrc\fR file. .P 1 To be more explicit, this document covers; a discussion of the \fI.elmrc\fR file, starting options of \fBElm\fR, outgoing mail processing, responses of various commands, the mail archive file, the \fInotes\fR system, the Alias system, system aliases etc, more on the \fBElm\fR utilities, and a section for expert mail users. .P 1 Without any further ado, then, let's get this show on the road!! .sp 2 .H 1 "The .elmrc File" .P The mailer, like lots of other software on the Unix\v'-.3'\s5TM\s10\v'.3' system, has the ability to automatically read in a configuration file at each invocation. The file must be called \fI.elmrc\fR and reside in your home directory for it to be found, and can have any of the following entries in any order; .sp 2 .ps 12 .ne 8 \fBString Variables\fR .ps 10 .VL 13 0 .LI "alternatives" This is a list of other machine/username combinations that you receive mail from (forwarded). This is used when the \fIgroup reply\fR feature is invoked to ensure that you don't send yourself a copy of the outbound message. (no default) .LI "calendar" This is used in conjunction with the "<" \fIscan message for calendar entries\fR command. The default place to put calendar entries if found is \fI$HOME/calendar\fR. This variable can be set to specify something else.. .LI "editor" The editor to use when typing in new mail. If you select ``none'' or ``builtin'' you'll get a Berkeley Mail style interface for all mail that doesn't already have text in the buffer (e.g. a reply, mail with a ``signature'', etc). (default is to use the value of the $EDITOR in your current environment) .LI "fullname" This is the name the mailer will use when sending mail from you. It is highly recommended that you use your full name and nothing strange or unusual, as that can appear extremely rude to people receiving your mail. (Default is to use the "gecos" field from the \fI/etc/passwd\fR file) .LI "mailbox" This is where to put incoming mail after you've read it. When you answer `n' to the "keep messages in incoming mailbox?" prompt, this is where the messages go! (default is the file \fImbox\fR in your home directory) .LI "maildir" This is the default mail directory, and is used to expand filenames in the mailer when specified using the `=' metacharacter\*F. That .FS Note that `%' and `+' are synonymous with `=' throughout \fBElm\fR .FE is, if you save to file \fI=/stuff\fR then the `=' will be expanded to the current value of maildir. (no default) .LI "pager" This defines the program to be used to display each message. The default is ``builtin'', and can be changed while within the \fIElm\fR program by selecting the appropriate entry in the O)ptions Menu. .LI "prefix" When you \fIreply\fR to a message or \fIforward\fR a message to another person,X you can optionally include the original message. Defining the prefix value here allows you to indicate what the prefix of each included line should be. (default is "> " and is fairly standard in the Unix community) .LI "print" This indicates how to print out a message. There are two possible formats for this string, either a command that can have a filename affixed to (as a suffix) and then sent to the system for execution, or a string that contains the meta-sequence `%s' which will be replaced by the name of the file and then also sent to the shell. Examples of each are; .nf print = print -formfeed print = pr %s | lpr .fi (no default) .LI "savemail" This is where outgoing mail will have a copy silently (and quickly) saved. This will only be used if the flag \fIcopy\fR is turned on. Also note that if the \fIsavename\fR flag is turned on then this line is ignored since each outgoing message is saved according to whom it's being sent to. (default is to have this option disabled) .LI "shell" This defines the shell to use when doing ``!'' escapes and such. Note that the program also reads the $SHELL variable out of the current environment, but that defining this in the .elmrc file will override the environment definition. .LI "signature" This file, if defined, will be automatically appended to all outbound mail before the editor is invoked. Furthermore, if you'd like a different ``.signature'' file for \fIlocal\fR mail and \fIremote\fR mail (remote being via other hosts), you can alternatively define two files called \fIlocalsignature\fR and \fIremotesignature\fR to have the same functionality. .LI "sortby" When reading mailboxes, either incoming or saved, you can have them sorted by any number of different ways. This can be changed without leaving the \fBElm\fR system by changing the \fIoptions mail-sorted-by\fR field, but it can also be predefined to any of the following; .sp .VL 15 3 .LI "from" This will sort according to whom each message is \fIfrom\fR. .LI "sent" This will sort \fIleast recently sent\fR to \fImost recently sent\fR. .LI "received" This will sort \fIleast recently received\fR to \fImost recently received\fR. .LI "subject" This will sort according to the \fIsubject\fR of each message. .LI "lines" This will sort \fIshortest\fR to \fIlongest\fR by message. .LI "status" This will sort by priority, action, new, tagged, then deleted order. .LE .sp Each of these fields can also optionally be prepended with the sequence "reverse-" to reverse the order of the sort. The sorting method in the sample \fI.elmrc\fR, for example, is \fIreverse-sent\fR, to have the new mail always be listed first in the headers (note that this doesn't imply anything about the location of the message in the \fImailbox\fR itself!) .LI "weedout" When specifying this option, you can then list headers that you \fBdon't\fR want to see when you are read mail. This list can continue for as many lines as desired, as long as the continued lines all have leading indentation. (default is ``Received:'' and others...) .LE .sp 2 .ps 12 .ne 8 \fBNumeric Variables\fR .ps 10 .VL 13 0 .LI "bounceback" This is a hop count threshold value and allows you to set up the mailer so that when you send mail more than \fIn\fR machines away, it'll automatically include a "Cc:" to you through the remote machine. In practice this should be very rarely used. (Note: this refuses to bounce mail off an Internet address. The default is to have it set to zero, which disables the function) .LI "timeout" On more advances systems, it's nice to start up the mailer in a window and let it sit in background unless new mail arrives (see \fIwnewmail\fR for another window based program) at which point it can be brought up to the forefront of the system and read. In this case, it would be quite convenient to have the mailer internally resynchronize every ``delta'' seconds. That's exactly what this particular option allows. .sp This is also useful for normal terminals, for example you can leave \fBElm\fR running at night (I usually do) and when you come in in the morning it'll be all ready to read your mail! .sp (The default is a 300 second (5 minute) timeout period). .LI "userlevel" This is what the program uses to determine the relative level of sophistication of the user - the values are 0 for a new user (the default), 1 for a good computer user, and 2 and above for experts. .LE .sp 2 .ps 12 .ne 8 \fBBoolean Variables\fR .ps 10 .VL 12 0 .LI "alwaysdelete" When set, this changes the default answer of the prompt "Delete messages?" to the indicated value. (default is to have the answer be \fINo\fR (alwaysdelete=OFF)) .LI "alwaysleave" This changes the default answer on the "keep mail in incoming mailbox?" prompt to the value indicated (default is to have the default answer be \fINo\fR (that is, alwaysleave=OFF) .LI "arrow" Sometimes your are forced to use a slow, or ``dumb'' terminal. In this case, you can force the current message pointer to be the ``->'' sequence rather than the inverse bar. (Note that this is identical in function to the `-a' starting option) (default is OFF unless you're on an IBM 3270) (I'll bet you think I'm joking...) .LI "ask" (or ``question''). This allows you to tell the \fBElm\fR system that you'd rather not be asked ``Delete Mail?'' and such each time you leave the program, and instead it should just use the values of ``alwaysdelete'' and ``alwaysleave'' without prompting. Useful if you're too lazy to type two returns! (default is OFF) .LI "autocopy" This is a boolean flag, and if set will automatically copy the text of each message being replied to into the edit buffer. (default is OFF) .LI "copy" This, in combination with the \fIsavemail\fR filename, will allow you to have silent copies of all outgoing mail made on the outbound step. (default is OFF) .LI "keep" The mail system has a habit of deleting mailboxes when you've removed everything from them. With this option turned on, it will instead preserve them as zero-byte files. (default is OFF) .LI "keypad" If on, this tells \fBElm\fR that you have an HP terminal and enables the <NEXT>, <PREV>, <HOME> and <SHIFT-HOME> keys. (default is OFF) .LI "menus" If turned off, this will inhibit the Menu display on all of the screen displays within the \fIElm\fR program. (default is ON) .LI "movepage" If this is turned on then commands that move through the mailbox by pages (notably the `+' and `-', <PREV> and <NEXT> keys) will also move the current message pointer to the top of that page of messages. If this is turned off then moving through the pages doesn't alter the current message pointer location. (default is OFF) .LI "noheader" This boolean flag tells the mailer not to include the headers of messages when copying a message into a file buffer for replying to or forwarding. (default is ON) .LI "pointnew" If this is turned on, the mailer will automatically pointing to the first new message in your mailbox when started, instead of at message #1. Note that this is only used for the incoming mailbox! (default is ON) .LI "resolve" This is a boolean flag that defines the behaviour of the program for such actions as deletion, saving a message and so on. (default is ON) .LI "savename" One of the problems with electronic mail systems is that one tends to get very large, one-dimensional (flat) files that contain lots of completely unrelated mail. If this option is turned on, \fBElm\fR will use a more intelligent algorithm - on incoming mail, when you \fIsave\fR it, the default mailbox to save to (changeable by pressing anything other than <return> of course) is a file that is the \fIlogin name\fR of the person who sent you the message. Similarly, when sending mail out, instead of just blindly saving it to the \fIsavemail\fR file, \fBElm\fR will first try to save it to a file that is the login name of the person who is to receive the mail\*F. .FS When sending to a group, it's saved to the first person in the list only. One day we'll have \fIpointers\fR to messages, then... .FE If the file doesn't already exist on outbound mail, then it will save the mail in the \fIsavemail\fR file. .P 0 In practice, this means that important people that you communicate with (those that you tend to save mail from) have files that are actually \fIa recorded log of the discussion in both directions\fR and those others (random mailings) are all stuffed in the \fImailsave\fR file for easy perusal and removal. (The default is ON) .LI "softkeys" If on, this tells \fBElm\fR that you have an HP terminal with the HP 2622 function key protocol and that you'd like to have them available while in the program. (default is OFF) .LI "titles" This flag allows you to have the first line of a message titled with: .sp .nf Message #\fIN\fR from \fIusername\fR Mailed \fIdate\fR at \fItimXe\fR .fi .sp where all the information has been previously extracted from the message. This is especially useful if you weed out all the headers of each message with a large `weedout' list... (default is ON) .LI "warnings" The mailer likes to warn you when you send mail to a machine that cannot be directly accessed. In some situations, however, the system is set up so that mail is automatically forwarded to another machine that might then have better connections. Setting this flag will allow you to effectively shut off all the warning messages. (default is ON) .LI "weed" This is a boolean flag that, in combination with the "weedout" list, allows you to custom define the set of headers you would like to not have displayed while reading messages. (default is ON) .LE .sp One more thing: the format for each of the lines is; .nf variable = value .fi and for boolean variables, \fIvalue\fR can be `ON' or `OFF' only. .sp For a better idea of how this all works, here's my \fI.elmrc\fR file. While looking through it, notice that you can have lots of comments and blank lines for readability and that you can also use `shell variables' and the `~' metacharacter for your home directory, and they are expanded accordingly when read in by the mailer. (Note that this was automatically saved by the \fIElm\fR program - versions 1.3b and above have the ability to create \fI.elmrc\fR files on the fly from the O)ptions screen - it's quite useful) .ps 9 .nf # # .elmrc - options file for the Elm mail system # # Saved automatically by Elm 1.5 for Dave Taylor # # where to save calendar entries calendar = ~/.Agenda # what editor to use (none = simulate Berkeley Mail) editor = none # The full user name for outbound mail fullname = Dave Taylor # where to save messages to, default file mailbox = $HOME/Mail/mailbox # where to save my mail to, default directory maildir = /users/taylor/Mail # scroll through messages rather than paging... pager = builtin # prefix sequence for including message text in other messages... prefix = >_ # how to print a message ('%s' is the filename) print = lpr -Plw2 %s # where to save mail if not specified somewhere else savemail = /users/taylor/Mail/mail.sent # The shell to use for shell escapes shell = /bin/csh # and how to sort mailboxes, by default sortby = Reverse-Received # should we always delete messages we've marked for deletion (change the # default answer to yes) alwaysdelete = ON # should we always leave messages as pending (change the default answer to yeXs) alwaysleave = ON # should we use the "->" rather than the inverse video bar? arrow = OFF # automatically copy message being replied to into buffer? autocopy = OFF # threshold for bouncing copies of remote uucp messages... # zero = disable function. bounceback = 0 # save a copy of all outbound messages? copy = ON # we might mail out AT&T Mail Forms, too forms = OFF # we're running on an HP terminal... keypad = OFF # should we display the three-line menus? menu = ON # when using the page commands (+ - <NEXT> <PREV>) change the current messageX pointer... movepage = ON # let's just show the names, though, when expanding aliases... names = ON # when messages are copied into the outbound buffer, don't include headers noheader = ON # start up by pointing to the first new message received, if possible pointnew = ON # emulate the Berkeley Mail message increment mode (only increment after someXthing # has been 'done' to a message, either saved or deleted) resolve = ON # save messages, incoming and outbound, by login name of sender/recipient savename = ON # we're running on an HP terminal and want function keys available too! softkeys = OFF # Set the main prompt timeout for resynching... timeout = 60 # display message title when displaying pages of message titles = ON # are we good at it? 0=beginner, 1=intermediate, 2+ = expert! userlevel = 2 # don't bother telling us what machines we can't get to... warnings = OFF # enable the weedout list to be read... weed = ON # what headers I DON'T want to see, ever. weedout = "Path:" "Via:" "Sent:" "Date" "Status:" "Original" "Phase" "SubjectX:" "Fruit" "Sun" "Lat" "Buzzword" "Return" "Posted" "Telephone" "Postal-Address" "Origin" "X-Sent-By-XNmail-V" "Resent" "X-Location" "Source" "Mood" "Neuron" "Libido" "To:" "X-Mailer:" "Full-Name:" X"X-HPMAIL" "Cc:" "cc:" "Mmdf" "Network-" "Really-" "Sender:" "Post" "Message-" "Relay-" "ArticlXe-" "Lines:" "Approved:" "Xref:" "Organization:" # alternative addresses that I could receive mail from (usually a # forwarding mailbox) and don't want to have listed... alternatives = hplabs!taylor hpldat!taylor taylor@hplabs taylor%hpldat .ps 10 .fi .sp 2 .H 1 "The Starting Parameters" .P There are a number of starting options to the .B Elm program, with only one that needs to be remembered: ``-?''or ``-h'' for help. .P 0 The flags are; .VL 13 0 .LI "-a" Arrow. This allows you to have the "->" arrow pointer rather than the inverse bar. This can also be set in the \fI.elmrc\fR file - check the boolean variable \fIarrow\fR). .LI "-c" Check only. This is useful for expanding aliases without sending any mail. The invocation is just like sending mail: \fBelm -c\fI alias or aliases\fR. .LI "-d \fIn\fR" Set debug level to \fIn\fR. Useful for debugging the .B Elm program. The results of using the debug option is much less drastic than in the previous versions of the program - it creates a file in your home directory called \fIElm.debug.info\fR and creates a (verbose) log of activity as the program is used. .sp Level \fIn\fR can be 1 through 11, where the higher numbers generate more output. .LI "-f \fIfile\fR" File. Read specified file rather than the default input mailbox. Note that you can use the same metacharacters (e.g. `=') as when you \fIchange mailboxes\fR from within the program. .LI "-h or -?" Help. Gives a short list of all these options and exit. .LI "-k" Keypad - This option, when used, lets the \fBElm\fR program know that you're on an HP terminal, and it can then interpret the <PREV>, <NEXT> and <HOME>/<SHIFT>-<HOME> keys accordingly. If you are not on an HP terminal, it is recommended that you do NOT use this option. (see the \fIkeypad\fR option in the \fI.elmrc\fR section) .LI "-K" Keypad + softkeys. The \fBElm\fR mailer can, to a rather limited extent, use the HP softkeys as an alternative form of input. If you specify this option be sure that you're on an HP terminal that can accept the standard 2622 terminal escape sequences! (see the \fIsoftkeys\fR option in the \fI.elmrc\fR section for more information) .LI "-m" Inhibit display of the 3-line menu when using the mailer. This, of course, gives you three more message headers per page instead. .LI "-s \fIsubject\fR" In batch mode, this is how to indicate the subject of the resulting message. Please see the section on "Non-Interactive Uses of Elm" in the \fIElm Users Guide\fR for more information. .LI "-z" Zero. This causes the mailer not to be started if you don't have any mail. This emulates the behaviour of programs like \fIBerkeley Mail\fR. .LE .P All the above flags default to reasonable options, so there is usually no need to use them. Furthermore, the most used flags are available through the \fI.elmrc\fR file. See above. .sp 2 .H 1 "Special Outgoing Mail Processing" .sp .P There are a few extra features that the mailer offers on outgoing mail that are worthy of mention; .sp .P The first, and probably the most exciting feature\*F, is the .FS Unfortunately, at many non-US sites, it's quite probable that you won't be able to use this feature since you won't have the "crypt()" library available due to licensing restrictions. .FE ability to send \fIencrypted\fR mail! To do this is extremely simple: You need merely to have two key lines ``[encode]'' and ``[clear]'' in the message body. .P 0 Consider the following outgoing message: .nf Joe, Remember that talk we had about Amy? Well, I talked to my manager about it and he said... uhh...better encrypt this...the usual `key'... [encode] He said that Amy was having family problems and that it had been affecting her work. Given this, I went and talked to her, and told her I was sorry for getting angry. She said that she understood. We're friends again!! [clear] Exciting stuff, eh? Mike .fi While this is obviously quite readable while being typed into the editor, as soon as the message is confirmed as wanting to be sent, the \fBElm\fR mailer prompts with; .nf Enter encryption key: @ .fi and accepts a key (a series of 8 or less characters) without echoing them to the screen. After entry, it will ask for the same key again to confirm it, then *poof* it will encrypt and send the mail! .P If you have the \fIcopy\fR option enabled, the program will save your copy of the message encrypted too. (This is to ensure the privacy and security of your archived mail too!) .P If the mailer doesn't ask for the encryption key, it's because you don't have the ``[encode]'' entered as the first 8 characters of the line. It MUST be so for this to work!! .P On the other end, a person receiving this mail (they must also be using \fBElm\fR to receive it, since this mailer has a unique encryption program) will be reading the message and then suddenly be prompted; .nf Enter decryption key: @ .fi and will again be asked to re-enter it to confirm. The program will then on-the-fly decrypt the mail and display each line as it is decoded. The `[clear]' line signifies that the block to encrypt is done. .P For those sites not running \fBElm\fR, a separate program suitable for a filter for use with other mailers is available. .P 0 Note that it is not possible currently to \fIpipe\fR or \fIprint\fR encrypted mail. .sp .P The other option on outgoing mail is the ability to specify what section of the message you want to have archived (assuming \fIcopy\fR is enabled) and what section you don't. This is most useful for sending out source file listings and so on... .P To indicate the end of the section that should be saved in the archive, you need merely to have the line .nf [nosave] .fi appear by itself on a line. This will be removed from the outgoing mail, and will indicate the last line of the message in the saved mail. .sp 2 .H 1 "Responses..." .sp .P This section will discuss each command in the .B Elm program in more detail than above, including the prompts the user can expect upon executing the command, the meaning of different options etc etc. .sp .VL 10 3 .LI ? Help. This command used once puts you in the \fIexplain key\fR mode, where any key you press will result in a one-line description of the key. Pressed again at this point will produce a summary two pages listing each command available. <escape> or `.' will leave the help mode and return you to the main menu level. .LI ! Shell. This allows you to send a command to the shell without leaving the program. .LI | Pipe. This command allows you to pipe the current message or the set of \fItagged\fR messages through other filters as you desire. The shell used for the entire command will be either the one specified in your \fI.elmrc\fR file, or, if none, \fI/bin/sh\fR. .LI \/ Pattern match. This command, on the top level, allows the user to search through all the \fIfrom\fR and \fIsubject\fR lines of the current mailbox starting at the current message and continuing through the end. If the first character of the pattern is a `/', then the program will try to match the specified pattern against \fBany\fR line in the mailbox. Again, this works from one after the current message through the end. Both searches are case insensitive. .LI <n> Specify new current message. Typing in any of the digits one through nine will result in the .B Elm program producing the prompt `Set current to : n', where `n' is the digit entered. Note that changing the current message to a message not on the current page of the headers will result in a new page of headers being displayed. .LI "<" Scan message for calendar entries. A rather novel feature of the \fBElm\fR mailer is the ability to automatically incorporate calendar/agenda information from a mail message into the users calendar file. This is done quite simply; any message that has either the pattern; .DS -> \fIcalendar entry\fR .DE or .DS - \fImulti-line\fR - \fIcalendar entry\fR .DE will be automatically added to the users \fIcalendar\fR file (see the \fIcalendar\fR option of the \fI.elmrc\fR file) if the `<' command is used. The main difference between the two formats is that the first is assumed to be a \fIcalendar(1)\fR entry (the `->' is stripped off), and the second is a more generic format (only the `- ' is stripped off). .sp For example, let's say we had a message with the text; .DS Regardless of that meeting, here's the seminar stuff; -> 8/03 3:00pm: AI Seminar with Ira Goldstein of HP Labs .DE then using the `<' command would add the line; .DS 8/03 3:00pm: AI Seminar with Ira Goldstein of HP Labs .DE to the users \fIcalendar\fR file. .LI a Alias. The alias system is a way by which more complex mail addresses can be shortened for the mail user. For example; .nf joe, bleu : Joe Bleu : joe@hpcfla .fi which allows mail to `joe' or `bleu' with the system expanding the address properly. As is obvious, this not only saves remembering complex addresses, it also allows the address to be optimized to go through the minimum number of machines without anyone having to be informed of the change. A more detailed discussion can be found in either the section entitled \fIThe Alias System\fR in this document or the \fIElm Alias Guide\fR. .LI b Bounce mail. This ``remails'' mail to someone else in such a way as to make the return address the original sender rather than you (as opposed to the \fIforward\fR command, which makes the return address \fIyou\fR rather than the original sender) .LI c Change mailbox. Specifying this command allows the user to change the mailbox file that is currently being read. This is intended for perusal and reply to previously archived messages. The prompt is `Name of new mailbox : ' and entering <return> cancels the operation, while entering a filename causes the program to read that file as the new mailbox file, if possible. As with the \fIsave\fR command, this command expands filenames with `~' being your home directory and `=' being your \fImaildir\fR directory, if defined. This command also allows the special character `!' to be used to allow you to change to the default incoming mailbox. .LI "d, u" Delete and Undelete. Neither of these two commands have any prompts and indicate their action by either adding an asterisk to the current message index entry (indicating deletion pending) or removing the asterisk (indicating that the deletion is cancelled). .LI "<control>-D" This command allows you to easily mark for deletion all messages that have a specific pattern. After <control>-D is pressed, the program will prompt for the string to match (currently it only matches either the \fIfrom\fR or \fIsubject\fR lines of the message). .LI "<control>-U" This is the direct opposite command to the previous - all messages that match the specified pattern can have any mark for deletion removed by using this command. .LI e Edit mailbox. This allows you to modify the current mail file at a single keystroke. This is mostly useful for editing down messages before saving them. Modifying headers should be done with extreme caution, as they contain routing information and other vital stuff for full functionality. .LI f Forward. Allows the user to forward the current message to another user. This copies the message into the edit buffer and allows the user to add their own message too. The prompt is `Forward to:' and will expand an alias if entered. (see \fIbounce\fR above, too) .LI "j, k" These two keys work similarly to what they would do in \fIvi\fR or any of the other (precious few) screen oriented programs. The `j' key moves the current message pointer down to the next message (going to the next page if needed) and the `k' key moves the current message pointer back to the previous message (also changing pages if needed) .LI l Limit. This new feature allows you to specify a subset of the existing messages to be dealt with. For example, let's say we had a folder with four hundred messages in it, about four or five different subjects. We could then limit what we're dealing with by using the \fIlimit\fR command. Pressing `l' would result in the prompt; .nf Criteria: .fi to which we could answer ``subject <string>'', ``from <string>'' or ``to <string>''. In our example, we could use ``subject programming'' as a criteria for selection. Once we've limited our selections down, the screen will be rewritten with just the selected messages, they will all be renumbered, and the top line will change to have a message like; .nf Mailbox is `=/elm' with 92 shown out of 124 [Elm 1.5] .fi We can further limit selections by entering further criteria, each time using the \fIlimit\fR option again. .P To clear all the criteria and get back to the `regular' display, simply enter \fIall\fR as the limiting criteria. It should be noted that the selection based on ``to'' isn't fully implemented for this version, so it is recommended that users stay with ``subject'' and ``from'' as the basis for their criteria. .LI m Mail. Send mail to a specified user. The prompt that is associated with this command is `Send mail to :'. Entering an alias name results in the full address being rewritten in parenthesis immediately. This prompt is followed by `Subject:' which allows the user to title their note. The final field is `Copies to: ', which allows other people specified to receive "carbon copies" of the message. Upon entering all three items the .I vi editor (or any other editor specified by $editor) is invoked and the message can be composed. .LI n Next message. See \fI<return>\fR. .LI o Options. This full-screen display allows you to alter the settings of a number of parameters, including the current sorting method, the method of printing files, the calendar file, the save file, and so on. It's self-documenting (where have you heard \fIthat\fR before?) so isn't explained in too much detail herein. .LI p Print. This allows you to print out the current message or the tagged messages to a previously defined printer (see the section on the \fI.elmrc\fR discussing the \fIprint\fR variable) .LI q Quit. This command's action is dependent on the current state of the .B Elm program. For example, if the current mailbox is the default mailbox the messages that are not deleted are saved in the file $home/mbox, whereas if it is a specified mailbox the to-be-deleted messages are removed from the file. The possible prompts are `Save to mailbox?' if the default mailbox is being read and there is at least one message to save, 'Delete all messages' if all messages in any mailbox are marked for deletion or `Delete message(s)?' if not reading the default mailbox and there are some messages that should be saved. A response of `n' (no) to either of these questions will result in the quit command aborting, and the files being untouched. .LI r Reply. Reply to the author of the current message. If the autocopy flag is not specified, the program will prompt `Copy Message? (y/n)' to which the user can specify whether a copy of the source message is to be copied into the edit buffer, or not. If copied in, all lines from the message are prepended with the prefix character sequence, as specified in the users \fI.elmrc\fR file. .LI s Save to file. This command allows the current message or set of tagged messages to be copied into an arbitrary file. If there is anything in the file currently the message or messages are appended to the end, otherwise the file is created containing only the newly saved mail. The prompt for this command is `Save to file : '. A response of <return> cancels the command and returns the user to the system prompt. After saving a file, each message is marked for deletion and, if saving just one message, the current message pointer is incremented. The usual filename metacharacters are available, too. .LI t Tag. Tag the current message for a later operation\*F. .FS Currently only \fIpipe\fR, \fIprint\fR, and \fIsave\fR support this. .FE .LI "<control>-T" Tag all messages containing the specified pattern. Since \fItagging\fR messages can occur on screens other than the one being viewed, the \fIElm\fR system will first check to see if any messages are currently \fItagged\fR and ask you if you'd like to remove those tags. After that, it will, similar to the \fI<control>-D\fR function, prompt for a pattern to match and then mark for deletion all messages that contain the (case insensitive) pattern in either the \fIfrom\fR or \fIsubject\fR lines. .LI x Exit. This is functionally the same as answering \fIN\fRo to the .I quit command prompt, and simply leaves the program in the quickest possible manner. This command can also occur from typing DELETE, or control-Q, both of which are also .I exit commands. .LE .sp 2 .H 1 "The Mail Archive File" .sp .P The format of the mail saved to the archive file is also worth a quick discussion. Unlike the usual exact copy of the entire header section, the archived mail has the following header; .nf From To:<name> 15 Jan 1985 4:54:30 MST To: <address> Subject: <subject> Cc: <address> <message body> .fi The first line, the `From' line, is deliberately mangled with the occurrence of the `To:<name' to ensure that when you are perusing your archive file with the mailer that you see \fIwho the message was to\fR, since they're all going to be from you!! The <name> will either be the machine!login of the person, or, if originally addressed with an alias, the alias name. .P To read this file, you can use the mailer, choosing the the \fIchange mailbox\fR command, or start up specifying your archive file as the mailbox to read. .sp 2 .H 1 "Using ELM with ``editor = none''" .sp .P The .I Elm program also supports a builtin editor for simple message composition that is very (very) similar to the simple line editor available from the \fIBerkeley Mail\fR system. .P To access it, you need merely to specify ``editor=none'' in your \fI.elmrc\fR file. With that, any messages to be composed that don't already have text in the buffer (e.g. no reply with the text included, etc), will use this editor. .sp From the builtin editor, the following options are available for use; .sp .VL 7 3 .LI "~?" Print a brief help menu. .LI "~b" Change the Blind-Carbon-Copy list. .LI "~c" Change the Carbon-Copy list. .LI "~e" Invoke the Emacs editor on the message, if possible. .LI "~f" add the specified list of messages, or current. .LI "~h" Change all the available headers (To, Cc, Bcc, and Subject) .LI "~m" same as `~f', but with the current `prefix'. .LI "~o" Invoke a user specified editor on the message. .LI "~p" print out the message as typed in so far. .LI "~r" Include (read in) the contents of the specified file. .LI "~s" Change the Subject line. .LI "~t" Change the To list. .LI "~v" Invoke the Vi visual editor on the message. .LI "~!" execute a unix command if one is given (as in ``~!ls'') or give the user a shell (either from their shell setting in their \fI.elmrc\fR file or $SHELL). .LI "~~" Add a line prefixed by a single `~' character. .LE .sp A useful note is that the `~f' and `~m' commands invoke the \fIreadmsg\fR command, so you can pass parameters along too. For example, if we wanted to include a message from Joe, without any headers, prefixed, we could use; .nf ~m -n Joe .fi to accomplish the task. .P To learn more about how they work, try 'em! .sp 2 .H 1 "The Alias System" .sp .P As mentioned previously, there exists in the .B Elm system a set of aliases that associate an arbitrary word (such as a persons name) to a complex address or group. The advantages are readily apparent; rather than remembering an address of the form; .nf machine1!machine2!machine3! ... !machineN!account .fi the user merely has to remember a single word. .P Two alias tables are available for a each user within .B Elm, namely the system alias file and the users' alias file. The system alias file is created and maintained (by the system administrator) by editing the file \fI/usr/mail/.alias_text\fR as described in the documentation with the .I newalias command, then running the .I newalias program. .P An individual user can also have an alias file which works in conjunction with the system aliases. To do this, they need merely to peruse the documentation for the .I newalias command and create a file as indicated therein. After executing the program, the aliases will be available for using from within .B Elm. .sp Please refer to the \fIElm Alias Users Guide\fR for more helpful hints and so on. .sp 2 Within .B Elm, however, the alias system acts as an entirely different program, with it's own commands and own mini-menu. The menu replaces the standard mini-menu with; .sp .DS .nf .ce \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\X-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .sp .ce Alias commands .sp .ce A)lias current message, Check a P)erson or S)ystem, M)ake new alias or R)eturn .sp 2 Alias: @ .ce \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\X-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .sp .DE .fi .P 0 The commands are; .VL 10 3 .LI a Alias current message. This allows the user to create an alias that has the return address of the current message as the address field of the alias. It prompts for a unique alias name. Important note: when you alias an address in this fashion, the mailer will try to minimize the amount it needs to store by iteratively comparing machine names in the path with the machines in the pathalias database. Once it finds an entry the address will be saved at that point. For further information, please see the \fIElm Alias Users Guide\fR. .LI p Check personal alias. This is a simple way of checking what is in the alias database - it prompts for an alias name, and returns the address associated with that name or the error message `alias not found' as appropriate. .LI s Check system alias. If you're not sure that your machine can talk to another machine, you can use this command to either find the appropriate route or find that you're correct in your suspicions and it is indeed unknown! .LI m Make user alias. This will prompt for a unique alias name and then for an address. The information provided will be added to your individual alias_text file (\fI$home/.alias_text\fR) and then added to the database. .LI r Return. Return to the main level of the .B Elm program. .LE .sp 2 .H 1 "While We're Talking Aliases..." .P Another feature worthy of discussion, since it's been getting lots of veiled references throughout this document, is the host-path file. This is implemented using the uucp pathalias database, with a file containing lines with the format: .nf \fIhostname\fR <tab> \fIaddress\fR!%s or \fIhostname\fR <tab> \fI%s@hostname\fR .fi The actual details of the file are, suprise, suprise, located in the \fIAlias System Users Guide\fR. .P Anyway, to use them is quite simple...when specifying the address of someone, you can either have an alias for them already, resend to their mail to you, or use the system alias feature! .P Enough hype, right? Okay...to use this feature, you specify an address by either "machine!person" ignoring if your specific machine can talk directly to the machine specified, or, if you prefer the Internet addressing scheme, "person@machine". When you enter the address as specified, the mailer will quickly search through the pathalias database file and expand the specified address to be a legitimate routing address. .P What's really nice about this is that the address that we're going to send to can be either on ARPA, CSNET, BITNET, uucp, or any other network. The method of specifying the basic address is the same regardless! .P For example, mail to me could be sent as either "hplabs!taylor" or "taylor@hplabs". \fBElm\fR will expand them both in the same manner and include a ``route'' to the machine \fIhplabs\fR, if needed. .P 0 As the song goes, check the alias guide... .P For those sites with the domains database installed, you can also mail to users on domain based systems by simply specifying their name, the machine they receive mail on and a full domain specification. .P For example, say you have a friend Maurice who reads mail on \s9JOEVAX\s10 in the Mailnet world. You could mail to him by using the address "Maurice@\s9JOEVAX.MAILNET\s10" and your system will expand the address correctly. .P Guess where to go for more information...!! .sp 2 .H 1 "Expert Mail Users and Debugging the Mailer" .P There are some additional facilities available in the .B Elm mailer for those people who are knowledgeable about mail protocols, or trying to debug/track down a problem. .P The `h' \fIheaders\fR command at the outermost level of the mailer will display the current message ignoring the current setting of the `weed' option. This is most useful for answering questions of the form "I wonder what this guy put in his header?" and such. This command does not show up on the mini-menu because it is somewhat esoteric, but it does appear on the `?' help screen (can you find it there, though?). .P The `@' command at the outermost level of the mailer will output a screen of debugging information, including the number of lines and offsets of each of the message in the current mailbox. .P The `#' command at the outermost level of the mailer will display the entire stored `record structure' for the current message. .P The `%' command at the outermost level of the mailer will display the full computed return address of the current message. .P Starting up .B Elm with the "-d" debug option will create a file called .I Elm:debug.info in your home directory and contain a wealth of useful information (to me, at least!) to aid in tracking down what errors are occurring and why. .sp .P If there are any problems with the mailer, please try to recreate the error with the debug option enabled and set to the highest level (11) before sending defect reports my way. .sp 3 One final note: all error names reported by the program are documented in the Bell System V Reference Manual in \fIerrno\fR(2).