Using Elm: A Short Tutorial

General: Main page  The First Email  A Brief History
GUI Software: Outlook Express  Netscape Mail  Web Email
Textual Software: pine   elm

To access elm log into kali and type "elm" at the system prompt (kali%).

If you are a new user and this is the first time you have accessed elm you will be prompted with two questions as follows :-

Notice:
This version of ELM requires the use of a .elm directory in your home
directory to store your elmrc and alias files. Shall I create the
directory .elm for you and set it up (y/n/q)? n
You should say "y" (not the default) to this question which will create a sub directory (.elm) in your home directory which will be used by elm for various purposes such as the location of your personal configurattion and aliase files.
Notice:
ELM requires the use of a folders directory to store your mail folders in.
Shall I create the directory /home/staff/testmail/Mail for you (y/n/q)? y
You should press <return> (which defaults to "y") to create a "Mail" subdirectory which will allow you to create folders for use within elm. Upon entry to the elm, the main screen will be displayed similiar to the following
 Mailbox is '/usr/mail/mymail' with 15 messages [Elm 2.2]

 ->   N      1     Apr 24  Larry Fenske    (49)    Hello there
      N      2     Apr 24  jad@hpcnoe      (84)    Chico?  Why go there?
      E      3     Apr 23  Carl Smith      (53)    Dinner tonight?     
      NU     4     Apr 18  Don Knuth       (354)   Your version of TeX...
      N      5     Apr 18  games   (26)    Bug in cribbage game
      A      6     Apr 15  kevin   (27)    More software requests 
             7     Apr 13  John Jacobs     (194)   How can you hate RUSH?
      U      8     Apr 8   decvax!mouse    (68)    Re: your Usenet article
             9     Apr 6   root    (7)
      O      10    Apr 5   root    (13)

 You can use any of the following commands by pressing the first character;
 d)elete or u)ndelete mail, m)ail a message, r)eply or f)orward mail, q)uit
 To read a message, press . j = move down, k = move up, ? = help
 Command : @
Note: The message area of the screen may well be blank if you have as yet received no mail.

There are a number of things to notice about this, the main screen;

Most likely, on your computer the message currently ``active'' will be displayed in an inverse bar rather than being delimited by the two character arrow as here. It's nothing to worry about; displaying inverse video is just quite difficult on printable guides!

The first line on the screen always displays the name of the current folder, the number of messages in the folder, and the current Elm version number.

The arrow (``->'') or inverse video bar will always indicate which is the current message.

The first field that appears associated with each message is the status field. This can be blank (as with most of the ones above, or can have any combination of the following:

The first character signifies temporary status:

E
for an expired message
N
for a new message
O
for an old (i.e. not new but not read) message
D
for a deleted message
The second character which signifies permanent status:
U
for urgent mail
A
for messages that have an action associated with them
F
for a form letter
The third character of the status field can be a ``+'' to indicate that the message is tagged too.

Continuing from left to right, the next field is the message number. For the most part you can ignore these unless you want to quickly move to a specific message (as we'll see later).

The date associated with each message is typically the date the person actually sent the message.

The next field displayed indicates whom the message is from. Elm will try to display the full name of the person who sent the message, rather than the their return address or computer login. Some systems don't generate the correct headers, though hence messages like numbers 2 and 8, where it's their return address.

The number in parentheses is the total number of lines in the message.

The final field is the subject of the message. Notice that messages might not have any subject, as in messages #9 and #10.

A maximum of ten messages are displayed at one time. On screens with greater than 25 lines, more messages will be displayed automatically. Further, if you choose to turn off the Menu display, you can have an even greater number displayed. Further into the document we'll learn how to change ``pages'' in the folder.

The three line Menu display will always indicate the relevant commands. There are actually two possible menus that can be displayed, based on the user level as set from either the o)ptions screen or the .elm/elmrc file. The alternate menu, for more advanced users, lists more options;

 |=pipe, !=shell, ?=help, =set current to n, /=search pattern
 a)lias, C)copy, c)hange folder, d)elete, e)dit, f)orward, g)roup reply, m)ail, 
 n)ext, o)ptions, p)rint, r)eply, s)ave, t)ag, q)uit, u)ndelete, or e(x)it
Finally, the '@' character indicates where the cursor would be, awaiting your input.

The typical action at this point is to use the key to read the current message which will clear the screen and display the current message:

 Message 1/15 from Larry Fenske  Apr 24 \(aa87 at 8:45 pm
 Hello there
 Dave, 
 Just wanted to drop you a brief note to see what was going on with 
 you this afternoon. Life here has been the usual fun and games...
  Ah well, off to the great wilds beyond the desk!
  Larry
 Command ('i' to return to index): @
Before we go further with our example, however, let's very quickly look at all the functions available from the main screen:

Action

< return> or < space>
Read current message.
|
Pipe current message or tagged messages to specified system command.
!
Shell escape.
$
Resynchronize folder.
?
Help mode (any key pressed will be explained).
+ or < right>
Display next page of headers.
- or < left>
Display previous page of headers.
=
Set current message to 1.
*
Set current to last message.
< number> < return>
Set current message to number.
/
Search for pattern in subject/from lines.
//
Search for pattern in entire folder.
<
Scan message for calendar entries (Some sites might opt not to have the calendar feature available).
> >
A synonym for `s' save message or messages.
a
Alias, change to ``alias'' mode.
b
Bounce (remail message [see f (forward) too]).
C
Copy current message or tagged messages to folder.
c
Change to another folder.
d
Delete current message.
< control> -D
Delete all messages matching specified pattern.
e
Edit current folder, resyncing upon reentry (Some sites might opt not to have the edit folder feature available).
f
Forward message to specified user (The difference between Forward and Bounce is rather subtle. A forwarded message is ``from'' you, with the original message included, whereas a bounced message is still from the original sender.)
g
Group reply (reply to everyone who received the current message).
h
Display message with headers.
J
Set current to next message.
j or < down>
Set current to next message not marked deleted.
K
Set current to previous message.
k or < up>
Set current to previous message not marked deleted.
l
Limit displayed messages based on the specified criteria.
< control> -L
Rewrite screen.
m
Mail to arbitrary user(s).
n
Read current message, then increment to next message not marked deleted.
o
Alter current system options.
p
Print current message or tagged messages.
q
Quit (maybe prompting for messages to delete, store, or keep).
Q
Quick quit (like quit but without prompting).
r
Reply to the author of current message.
s
Save current message or tagged messages to folder.
t
Tag current message.
< control> -T
Tag all messages matching specified pattern.
u
Undelete current message.
< control> -U
Undelete all messages matching specified pattern.
x
Exit (prompt if mailbox changed, don't record as read, don't save...)
X
Exit immediately (don't record as read, don't save...)
Note:
Not all of these commands are displayed as options in the menu's however all should be available by typing the appropriate sequence as indicated above.

But let's go back to our example and see some of this at work, shall we?

We were reading the message from Larry and the screen looked like:

 Message 1/15 from Larry Fenske  Apr 24 '87 at 8:45 pm
 Hello there
 Dave, 
 Just wanted to drop you a brief note to see what was going on with 
 you this afternoon. Life here has been the usual fun and games...
  Ah well, off to the great wilds beyond the desk!
  Larry
 Command ('i' to return to index): @
From this point let's go ahead and reply to the message. To do this, we can use the reply command...
To do this, we type ``r'' and the last few lines change to something like:
--------------------------------------------------------------------------
Command: Reply to message  Copy message (y/n) ? @ 
To which we decide that we don't need the text of this message in our new one, so we reply no by pressing the ``n'' key. The bottom part of the window then changes to:
--------------------------------------------------------------------------
Command: Reply to message  To: Larry Fenske 
Subject: Re: Hello there@
at this point we can either decide to enter a new subject (you could use either backup word (< control> -W) or backup line (this is the same as your `line kill' character, < control> -X or < control> -U usually)) or go with this one by pressing < return> . We'll just leave it as it is and press < return> , changing the screen to:
--------------------------------------------------------------------------
Command: reply to message  To: Larry Fenske 
Subject: Re: Hello there
Copies to: @
There's no one we want to have receive copies of this message, so we'll just press <return> again to indicate this. Once you've answered these questions the program will put you into the default editor or one that you have defined in your .elm/elmrc file, and let you compose a response. When you're done it then asks:
---------------------------------------------------------------------------
Please choose one of the following options by parenthesized letter: @
 e)dit message, edit h)eaders, s)end it, or f)orget it.
Since we're just interested in sending the message out, we'll choose the send option and press ``s''. The program then sends the message, indicating that by the line below saying:
  • Sending mail...
  • then putting at the bottom of the screen ``Mail sent!'' and giving us the prompt:
    ---------------------------------------------------------------------------
    Command:  (Use 'i' to return to index.)
    
    Pretty easy, isn't it? Let's continue by going back to the main screen by requesting 
    index: pressing the ``i'' key.
    The screen is then:
    
    
    Mailbox is '/usr/mail/mymail' with 15 messages [Elm 2.2]
    
     ->   N      1     Apr 24  Larry Fenske    (49)    Hello there
          N      2     Apr 24  jad@hpcnoe      (84)    Chico?  Why go there?
          E      3     Apr 23  Carl Smith      (53)    Dinner tonight?     
          NU     4     Apr 18  Don Knuth       (354)   Your version of TeX...
          N      5     Apr 18  games   (26)    Bug in cribbage game
          A      6     Apr 15  kevin   (27)    More software requests 
                 7     Apr 13  John Jacobs     (194)   How can you hate RUSH?
          U      8     Apr 8   decvax!mouse    (68)    Re: your Usenet article
                 9     Apr 6   root    (7)
          O      10    Apr 5   root    (13)
    
     You can use any of the following commands by pressing the first character;
     d)elete or u)ndelete mail, m)ail a message, r)eply or f)orward mail, q)uit
     To read a message, press . j = move down, k = move up, ? = help
     Command : @
    
    
    Notice that the first message is no longer marked as new since we've now read it.

    Let's go ahead and read the message from kevin (message #6) since it has some sort of action associated with it anyway. To do this, we simply press the ``6'' key, which will change the bottom of the screen to:

        Command: New Current Message  Set current message to : 6@
    We'll just press < return> to move the active message pointer (the arrow).

    Now we're pointing at the new message, so let's go ahead and read it by pressing < return> again, giving us:

     Message 6/15 from kevin  Apr 15 `87 at 11:36 am
     More software requests
     Action: please acknowledge receipt
     I don't suppose you have a nifty netnews reader around too, do you??
     --
     kevin
     Command ('i' to return to index): @
    
    Well, it turns out that we don't, but a friend of ours does, so let's forward the message to them by pressing ``f'':
    ------------------------------------------------------------------------
    Command: Forward message  Edit outgoing message (y/n) ? @ 
    
    No need to edit it, so let's answer no with ``n'':
    ------------------------------------------------------------------------
    Command: Forward message  Edit outgoing message (y/n) ? No 
    To: @
    

    We type in the address of the person we're forwarding to (in this case usenet) and press <return>:

    ------------------------------------------------------------------------
    Command: Forward message  To: usenet 
    Subject: More software requests (fwd)@
    
    To which we again press < return> to take the default subject. Elm asks for any possible copy recipients, asks us if we're sure we want to send it, and shoots it off.

    Enough mail for now, however, so we just exit by pressing the ``x'' key and the program drops us back into our shell.

    As you can see, it's quite easy to use the Elm system.


    Note: This page is modified from Using Elm: A Short Tutorial.