San Diego State University logo

  ROHAN Academic Computing

The Elm Mail System
*The Elm Reference Guide - Part 3*

------------------------------------------------------------

A comprehensive list of all commands, options and such to the Elm mail system

Introduction
The .elm/elmrc File
The Command Line Options
Multi-Media Capabilities of Elm
Special Outgoing Mail Processing
Customized header lines
Commands
Using Elm with ``editor = none''
The Alias System
Elm and Signals
Expert Mail Users and Debugging the Mailer

----------------------------------------------------------------------

Customized header lines

The mailer provides a facility for including customized header lines in the messages you send. If you have an .elm/elmheaders file, the mailer will include its contents immediately after the regular headers of all outbound mail. The mailer supports use of the backquote convention in this file. Here's a typical .elm/elmheaders file.

Organization: Hewlett-Packard Laboratories
Phone: (415)-555-1234
Operating-System: `uname -srv`

These lines will appear after all other header lines in the message.

Return to Index of Sections

----------------------------------------------------------------------

Commands

This section will discuss each command in the elm program in more detail than above, including the prompts the user can expect upon executing the command, the meaning of different options, etc.

?
Help. This command used once puts you in the help mode, where any key you press will result in a one-line description of the key. Pressed again at this point will produce a two page summary listing each command available. `.' will leave the help mode and return you to the main menu level.

<space>
Display the current message. <space> is useful for reading through a mail folder. When issued from the index screen, it will display the first screen of the current message; and then when issued while in the builtin pager, it will page through the message to the end; and then when issued at the end of a message (with either the builtin pager or an external pager), it will display the first screen of the next message not marked for deletion.

<return>
Display the current message. <return> behaves somewhat differently from <space>. When issued while in the builtin pager, it will scroll the current message forward one line, and then when issued at the end of a message (with either the builtin pager or an external pager), it will redisplay the first screen of the the current message. The latter is useful in case you have issued a non-pager command while in the builtin pager and want to restart the display of the current message.

!
Shell. This allows you to send a command to the shell without leaving the program. (Note it is possible for the person who installed Elm on your system to disable this feature.)

|
Pipe. This command allows you to pipe the current message or the set of tagged messages through other filters as you desire. The shell used for the entire command will be either the one specified in your .elm/elmrc file, or the default shell (see above).

/
Pattern match. This command, on the top level, allows the user to search through all the from and subject lines of the current folder 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 any line in the folder. Again, this works from one after the current message through the end. Both searches are case insensitive.

- or <left>
Display the previous page of the message index.

+ or <right>
Display the next page of the message index.

<number><return>
Specify new current message. When you type in any digit key elm will prompt ``Set current to : n'', where `n' is the digit entered. Enter the full number and terminate with <return>. Note that changing the current message to a message not on the current page of headers will result in a new page being displayed.

<
Scan message for calendar entries. A rather novel feature of the elm 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 line that has the pattern

-> calendar entry

will be automatically added to the users calendar file (see the calendar option of the .elm/elmrc file) if the `<' command is used.

For example, let's say we had a message with the text:

Regardless of that meeting, here's the seminar stuff:

-> 8/03 3:00pm: AI Seminar with Ira Goldstein of HP Labs

then using the `<' command would add the line:

8/03 3:00pm: AI Seminar with Ira Goldstein of HP Labs

to the users calendar file.

a
Alias. The alias system is a way by which more complex mail addresses can be shortened for the mail user. For example:

joe, bleu = Joe Bleu = joe@hpfcla.SSO.HP.COM

which allows mail to `joe' or `bleu' with the system expanding the address properly. As is obvious, this saves remembering complex addresses. A more detailed discussion can be found in either the section entitled The Alias System in this document or The Elm Alias System Users Guide.

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. (The forward command is similar, but it makes the return address you rather than the original sender.)

C
Copy to folder. This command copies the current message or set of tagged messages to a folder. If there is any thing in the folder currently the message or messages are appended to the end, otherwise the folder is created containing only the newly copied message. The prompt for this command is `Copy to folder: '. A response of <return> cancels the command and returns the user to the system prompt. The usual filename metacharacters are available, too. That is, this command expands filenames with `~' being your home directory and `=' being your maildir directory, if defined. This command also allows you to use `>' for your receivedmail folder, `<' for your sentmail folder, `.' for the last folder you saved or copied a message to and `@alias' for the default folder for `alias'. If you use a shell wildcard in the file or folder name, you will be given a list of all files or folders which match the wildcard. Elm uses your shell to find the names, so whatever wildcards you are used to can work. Finally, you can also enter `?' at the prompt to get some detailed help.

c
Change folder. Specifying this command allows the user to change the folder that is currently being read. This is intended for perusal and reply to previously archived messages. The prompt is `Name of new folder: ' and entering <return> cancels the operation, while entering a filename causes the program to read that file as the new folder, if possible. This command expands filenames with `~' being your home directory and `=' being your maildir directory, if defined. This command also allows you to use `!' as an abbreviation for you incoming mailbox, `>' for your receivedmail folder, `<' for your sentmail folder, `.' for the last folder you saved or copied a message to and `@alias' for the default folder for `alias'. If you use a shell wildcard in the file or folder name, you will be given a list of all files or folders which match the wildcard. Elm uses your shell to find the names, so whatever wildcards you are used to can work. Finally, you can also enter `?' at the prompt

d, u
Delete and Undelete. Neither of these two commands have any prompts and indicate their action by either adding a `D' to the current message index entry (indicating deletion pending) or removing the `D' (indicating that the message isn't set for deletion).

<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 from or subject lines of the message).

<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.

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.

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 also bounce, above.)

Elm will ask you if you want to edit the message before sending it. If you answer `yes', Elm will prepend your prefix string to each line of the message, and let you edit the result. If you do not want the prefix string on each line, answer `no'; you will have another chance to edit the message when you get to the `send' menu. (See also the `elmrc' section, under prefix.)

g
Group reply. Identical to reply below, except that the response is mailed to all recipients of the original message (except yourself - see the alternatives option for your .elm/elmrc file above).

h
Display the current message with all headers intact. When you display a message with other commands, certain header lines are formatted and others discarded (according to the weedlist parameter in your .elm/elmrc file).

i
Return to the index screen, when issued in the builtin pager or at the end of a message (with either the builtin pager or an external pager).

j or <down>, k or <up>
These four keys work similarly to what they would do in vi or any of the other (precious few) screen oriented programs. The `j' and <down> keys move the current message pointer down to the next message skipping over any marked deleted (going to the next page if needed) and the `k' and <up> keys move the current message pointer back to the previous message skipping over any marked deleted (also changing pages if needed)

J, K
These two keys work similarly to their lower case counterparts, except that they don't skip over deleted messages.

l
Limit. This 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 limit command. Pressing `l' would result in the prompt:

Criteria:

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 and the top line will change to have a message like:

Folder is "=elm" with 92 shown out of 124 [Elm 2.4]

We can further limit selections by entering further criteria, each time using the limit option again.

To clear all the criteria and get back to the `regular' display, simply enter all 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.

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. (See the askcc option of the .elm/elmrc file above.) Upon entering all three items the editor is invoked and the message can be composed.

n
Next message that is not marked deleted: useful for displaying successive messages in a folder. When issued from the index screen, it displays the current message, and then when issued while in the builtin pager or atthe end of a message (with either the builtin pager or an external pager), it will display the first screen of the next message not marked for deletion.

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 that before?) so isn't explained in too much detail here.

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 .elm/elmrc discussing the print variable.)

q
Quit. If you in the pager, you are returned to the index screen. If you are on the index screen, elm quits altogether. However, if you have the option ask set, elm first prompts you for the disposition of the messages in the current folder. If any messages are marked for deletion, it will ask if you want them deleted. If the current folder is your incoming mailbox, you will also be asked if read messages should be stored in your receivedmail folder, and if unread messages should be kept in the incoming mailbox. The default answers to these questions are set by the .elm/elmrc options alwaysdelete, alwaysstore, and alwayskeep. However, if you elect to not store your read messages (i.e. keep them) it is presumed you want to keep your unread messages, too.

Q
Quick quit. This behaves similar to the `q' command except that you are never prompted for answers to the message disposition questions. Elm will dispose of messages according to the values you have set for alwaysdelete, alwaysstore, and alwayskeep in your .elm/elmrc file.

r
Reply. Reply to the sender of the current message. If the autocopy flag is OFF in your .elm/elmrc file, 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 specified in your .elm/elmrc file.

s
Save to folder. This command is like the `copy' command, except that the saved messages are marked for deletion, and that if you are saving just the current message, the current message pointer is incremented afterwards (see the resolve option in the .elm/elmrc file above). This command expands folder names with `~'being your home directory and `=' being your maildir directory, if defined. This command also allows you to use `>' for your receivedmail folder, `<' for your sentmail folder, `.' for the last folder you saved or copied a message to and `@alias' for the default folder for `alias'.

t
Tag. Tag the current message for a later operation. (Note: Currently only pipe, print, and save support this.)

<control>-T
Tag all messages containing the specified pattern. Since tagging messages can occur on screens other than the one being viewed, the elm system will first check to see if any messages are currently tagged and ask you if you'd like to remove those tags. After that, it will, similar to the <control>-D function, prompt for a pattern to match and then mark all messages that contain the (case insensitive) pattern in either the from or subject lines.

x
Exit. This leaves elm discarding any changes to the mailbox. If changes are pending (such as messages marked for deletion) a prompt is made to confirm discarding the changes. If confirmed, no messages are deleted and the statuses of messages are unchanged. That is, any messages that were new will remain new instead of being noted as old, and any messages that were read for the first time will be again noted as unread.

X
Exit immediately. This leaves elm in the quickest possible manner without even prompting about discarding the changes to the mailbox. No messages are deleted and the statuses of messages are unchanged. That is, any messages that were new will remain new instead of being noted as old, and any messages that were read for the first time will be again noted as unread.

When you are about to send of a message under the forward, mail, or reply commands (see above), a small menu of the following options appears:

c
Specify folder for saving a copy to. This allows you to override the copy, forcename and savename options of your .elm/elmrc file. It prompts you for the name of the folder where a copy of the outgoing message is to be saved. The default displayed is taken from those three .elm/elmrc options and can be changed. This command also allows you to use `>' for your receivedmail folder and `<' for your sentmail folder, and `=?' to mean ``conditionally save by name'' and `=' to mean ``unconditionally save by name''. (See the savename option above for details on saving by name.) (Since you could next enter the edit headers command and change the recipients of your message, the name of the folder under the two ``save by name'' options is not established until you enter the send command.) If you use a shell wildcard in the file or folder name, you will be given a list of all files or folders which match the wildcard. Elm uses your shell to find the names, so whatever wildcards you are used to can work. You can also enter `?' at the prompt to some help about saving.

e
Edit message (or form). Entering this command will allow you to edit the text of your message or form.

f
Forget. This gets you out of sending a message you started. If you are in send-only mode, the message is saved to the file Canceled.mail in your home directory. Otherwise it can be restored at the next forward, mail, or reply command during the current session of elm. After issuing one of those commands you will be prompted with ``Recall last kept message?''

h
Edit headers. This puts you into the header editing mode, whereby you can edit to any of the various headers of your message. Like the options screen, it's self-documenting, so it isn't explained in too much detail here.

i
Run ispell (or some other configured spelling correction program). The current message is run through an interactive spelling correction program if one is available. The default spelling program is the GNU ispell program unless changed by the person who installed Elm on your system.

m
Make form. This converts the message you have edited into a form. (See The Elm Forms Mode Guide for more details.)

s
Send. This sends the message as is without any further ado.

Return to Index of Sections

----------------------------------------------------------------------


BACK The Elm Reference Guide | Academic Computing Handouts, Manuals, and Help Files

This page last modified: December 20, 2002
Send comments/suggestions about this web page to webmaster@rohan.sdsu.edu

SDSU Faculty and Students may send questions about software on ROHAN or ROHAN UNIX problems to problems@rohan.sdsu.edu