email: elm@DSI.COM or dsinc!elm
email: elm@DSI.COM or dsinc!elm
Derived from
email: taylor@intuitive.com or limbo!taylor
Gradually this began to change, and, with the addition of the Berkeley vi visual shell to the ed line editor, the trend began to be brought to the attention of UNIX systems designers. And yet, this transition has seemed too subtle for many software engineers, and so precious few UNIX programs are available designed to exploit the entire CRT screen.
Consequently, after becoming more and more disenchanted with the existing electronic mail facilities (binmail and Berkeley Mail) Dave Taylor decided to undertake creating his own system. Once the ball was rolling it became quite difficult not to keep enhancing it, especially as he and the Elm Development Group became more and more familiar with various different mail systems, but the result, we hope, is a solid, unified interface to electronic mail suitable for almost any environment.
One thing that sets the Elm mail system off from other packages is that it comes with an extensive documentation set, including; The Elm Users Guide, which you're holding, The Elm Reference Guide, The Elm Alias Users Guide, The Elm Filter System Users Guide, The Elm Forms Mode Guide, and The Elm Configuration Guide. The names of each indicate what they discuss (not unreasonably).
This particular document contains; this introduction, a tutorial session with the mailer, a discussion of non-interactive uses of Elm, a brief foray into the Elm utilities, and finally, credits and references.
The Elm Reference Guide contains a much more in-depth discussion of all the possible options available within the Elm environment, including the .elm/elmrc file, the available outbound mail processing features, a section for expert users, suggestions on debugging strange installations, and many other useful topics.
The Elm Alias Users Guide is the place to go to learn about the format of the .elm/aliases.text file and the associated data files, system aliases, and other related topics.
One of the more innovative features of Elm is the ability to transmit and receive forms (as defined by the AT&T Mail system). To learn about how to create and reply to forms you should refer to The Elm Forms Mode Guide.
If you find yourself getting too much mail delivered in your mailbox, you might be a good candidate for the filter program. To learn more about what this program is and how to use it please consult The Elm Filter System Users Guide.
Finally, if you're working with the actual source code and are interested in what all the locally configured options are and mean, please see The Elm Configuration Guide. It is strongly suggested that all system administrators and people installing the system print out the local sysdefs.h file and have it handy while reading the configuration guide.
The recommended order of learning the Elm system is to skim this guide until you feel confident enough to start up the program. Once that's reached, use it! Soon you'll find areas that you need to expand into, and you can achieve that by going into the o)ptions screen within elm and changing your user level accordingly. After a while, sit down again and read through this guide. You should have a couple of aha! intuitive flashes. After another period of time, you're ready to delve into the real power of the system and read the reference guide. The other manuals should be read as the need arises.
In any case, the system should be usable without reading any of the documentation!
Any comments or problems with any of the documentation or the program itself are welcome; if you can't get electronic mail to the Elm Development Group, please feel free instead to drop me a note via the overland mail address in the title page.
Mailbox is '/usr/mail/mymail' with 15 messages [Elm 2.4PL22]
-> 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 <return>. j = move down, k = move up, ? = help
Command : @
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:
C for confidential mail
U for urgent mail
P for a private message
A for messages that have an action associated with them
F for a form letter
M for a MIME compliant message
The third character of the status field can be a + to indicate
that the message is tagged too.
|=pipe, !=shell, ?=help, <n>=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
The typical action at this point is to use the <return> key to read the current message, which will clear the screen and display the current message:
Message 1/15 from Larry Fenske Apr 24 '87 at 8:45 pm edt
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): @
Command Action
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 edt
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
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 FenskeThere's no one we want to have receive copies of this message, so we'll just press <return> again to indicate this.Subject: Re: Hello there Copies to: @
Once you've answered these questions the program will put you into your favorite editor 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 pressing the i key to request the index. The screen is then:
Mailbox is '/usr/mail/mymail' with 15 messages [Elm 2.4PL22]
-> 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 <return>. j = move down, k = move up, ? = help
Command : @
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 pst
More software requests
Action: please acknowledge receipt
I don't suppose you have a nifty netnews reader around too, do
you??
--
kevin
-------------------------------------------------------------- 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 at the Command: prompt and the program drops us back into our shell.
As you can see, it's quite easy to use the Elm system, so rather than continue with our example, let's look at some other aspects of the program.
To send a message to someone without any of the associated overhead of reading in a mail folder, you can invoke the mailer with the name(s) of the people to send to. For example:
$ elm dave_taylor
Elm then prompts for Subject, Copies, and then drops you in your editor (defined in the .elm/elmrc file) to compose the message. When composition is complete, the program verifies transmission then terminates.
Elm also supports batch type mailing, of files and so on, by using the following command:
$ elm dave_taylor < help.c
which reads in the file and transmits it to the specified user.
A subject may be specified with -s subject as an option to Elm in either send only or batch modes, as in:
$ elm -s "File help.c, as promised" dave_taylor < help.c
Elm also has an option to specify that a certain file be used as the initial text of the message. This makes it easier to use Elm with other programs that interface with a mailer. Use -i file as an option to Elm in send only mode. For example, to specify to rn to use Elm as the mailer, define the following in RNINIT:
-EMAILPOSTER="elm -i %h -s \"Re: %S\" %t"
See the man page for rn(1) or the newsreader you use for more specific information.
>> New mail from Jimmy Carter -- Urgent matters of state >> New mail from joe@ucbvax.arpa -- Did I hear someone say PARTY??if running as newmail or:
Jimmy Carter -- Urgent matters of state joe@ucbvax.arpa -- Did I hear someone say PARTY??if running as wnewmail. BSD Users will find this is a far superior biff program.
For example;
$ readmsg 4 5 9 | lpr
would generate a printout, sans superfluous headers, of the fourth, fifth and ninth messages in your mailbox.
$ readmsg Carter | page
would be a fast way to read what ole Jimmy has to say, and
$ readmsg -h hear someone say
would list, including all the message headers, the message containing the string hear someone say.
For the Berkeley implementation, lots of help came from both John Lebovitz and Ken Stone.
For the Amdahl/UTS implementation, thanks to Scott McGregor and Stan Isaacs.
For the Sun problems, Dave England in Lancaster (UK) turned out to be "bloody useful", as he would no doubt say.
The Pyramid version is due to the work of Steve Malone of the University of Washington.
A number of other people have been amazingly disciplined at reporting problems and (usually, much to my relief) indicating the fixes needed, especially Guy Hillyer, Bruce Townsend and Eric Negaard.
There have been many, many others, too numerous to mention, that have inspired me with questions like "Why can't Elm..." or "Why does it ..." or "Can we make it..." too. A loud round of applause and an enthusiastic THANK YOU to you all!!
Also helpful was the ability to have my own machine to close up the many many iterative loops that this software has gone through - since being on a big multi-user machine tends to slow it down to a standstill. For that, I thank Hewlett-Packard Colorado Networks Division for their initial support, and now HP Laboratories for the wonderful working environment that I have here (more than any one person is safe having, I suspect).
Mailers that have influenced the design and implementation of Elm, for better or worse, include the following;
For getting the Usenet Elm group going, for without which I wouldn't be writing this, thanks to Greg Hackney at Southwestern Bell Telephone Co.
For the Configuration system and its newer Dist 2.0 version, thanks are due to Larry Wall of JPL-NASA.
For his over two hundred sets of changes to version 2.2, Elm owes a lot to Rob Bernardo who was at Pacbell at that time.
The ability to run Elm at all on Intel 286 machines owes a lot to the insistent nudging of the coordinator by Chip Salzenberg, Chip Rosenthal, and Tim Evans.
For getting us the rights to use the news macros and converting all the documentation over to those macros, thanks to Mike Brown.
For pushing us into the 90s and forcing the issues of NLS and foreign language support, I thank Jan Saell of Administration & Systemkonsult AB along with Larry Philps of SCO Canada. I'd also like to thank the many current and prior members of the Elm development and testing groups. The list varies from time to time as people come and go. Also, to all the Elm users out there who send in patches. The group can use all the extra help it gets. As a postScript, if you wish to join the group, all it takes is some time to work on things, and to ask.
Syd Weinstein, Elm Coordinator.
2. Some sites might opt not to have the calendar feature available.
3. Some sites might opt not to have the edit folder feature available.
4. 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.
5. If you don't know what RFC-822 is, don't worry about it!
6. Not to be confused with the multi-media mailer, metamail, from Nathaniel Borenstein of Bellcore.