[index (frame version)] [index (text version)]
The Elm Reference Guide
A comprehensive list of all commands,
options and such to the Elm mail system
The Elm Mail System
(Version 2.4)
Syd Weinstein, Elm Coordinator
Datacomp Systems, Inc.
3837 Byron Road
Huntingdon Valley, PA 19006-2320
email: elm@DSI.COM or dsinc!elm
Copyright 1986,1987 by Dave Taylor
Copyright 1988-1992 by The USENET Community Trust
The Elm Reference Guide
(The Elm Mail System, Version 2.4)
October 1, 1992
Syd Weinstein
Datacomp Systems, Inc.
3837 Byron Road
Huntingdon Valley, PA 19006-2320
email: elm@DSI.COM or dsinc!elm
Derived from
The Elm Mail System, Version 2.0
by
Dave Taylor
Intuitive Systems
Mountain View, California
email: taylor@intuitive.com or limbo!taylor
There are many parts to a complex software system and
The Elm
Mail System is no different. This document describes
fully all
the options available in the mailer, including the command
line
options, the commands (in considerably more detail than
in The
Elm Users Guide) and the .elm/elmrc file.
To be more explicit, this document covers: a discussion of
the
.elm/elmrc file, command line options of
Elm, outgoing mail
processing, responses of various commands, mail archive folders,
the Alias system, system aliases etc, more on the Elm utilities,
and a section for expert mail users.
Without any further ado, then, let's get this show on the road!!
Elm, like lots of other software on the system, has the ability
to automatically read in a configuration file at each invocation.
The file must be called elmrc and reside in the .elm
directory
located in your home directory. It can have any of the
entries
below, in any order. If you are missing any entries, or if
you
don't have an .elm/elmrc file, the default values (listed below
for each option) or those values specified
by your systems
administrator in a system wide elm.rc file are used.
Note that
those options below designated with * can be altered using
Elm
via the options screen, while those designated with a
+ can be
placed on the options screen using the configoptions
variable.
Also note that when you save a new .elm/elmrc
file via the >
command of the options screen, it is (re)created including
only
those options that you have changed via your original .elm/elmrc
file or via the options screen.
The format for each line of the .elm/elmrc file is:
variable = value
You can have your alias display sorted by any of the
following
ways: Sorts according to aliasname
for each address. Sorts
according to username for each address. Presents the aliases
in
the order found in the aliases.text file.
Each of these fields can also optionally be prepended
with the sequence reverse- to reverse the order of the
sort. This doesn't imply anything about the order of
the message in the aliases.text file itself and affects
only their order on the display screen. The default is
name order.
The editor to use when mailing to a
message that
already includes text, as the builtin editor cannot
handle that situation. Messages that already include
text are forwarded messages and replies
where the
original message is included in the reply. This value
is not needed if the editor variable is not
set to
builtin.
This is a list of other machine/username combinations
that you receive mail from (forwarded). This is used
when the group reply feature is invoked to ensure that
you don't send yourself a copy of the outbound message.
The default is a list of no alternatives.
When you forward a message or reply to it, you
can
optionally attribute the quoted text to its original
author. Defining the attribution string here allows
you to indicate the form that the attribution should
take. The sequence %s in the attribution is replaced
by the name of the original author. Examples are:
attribution = According to %s:
attribution = %s writes:
This is used in conjunction with the < scan message for calendar
entries command, as the file to append any found calendar entries
to. The default is calendar in your home directory.
This is the character set used for messages with a Content-Type:
text/plain header. The default
depends on your site's
installation, but is usually US-ASCII. charset is only recognized
if MIME (Multipurpose Internet Mail
Extension) support is
configured. You could set charset to your preferred
national
character set, but be aware that there is currently
no way to
change it online. Also you must be aware that Elm probably needs
metamail to display messages with charset=US-ASCII if you change
charset. Elm tries to know which character set could display US-
ASCII too, but its list of compatible character sets is probably
not complete.
This is the list of character sets which are more
or less a
superset of US-ASCII. This enables Elm to display messages
with
charset=US-ASCII with the builtin pager, or your preferred pager,
instead of calling metamail. compatcharsets is only recognized if
MIME support is configured. The ISO-8859-X character
sets are
defaulted.
This is a list of letters that indicate which of the
run-time
configurable options you desire placed on the options screen (see
section 7, Commands, for the options command).
There are 22
run-time configurable options, but only room for 15 on a 24-line
screen. The default list is ^_cdefsopyv_am_un. Two
additional
characters can be specified for formatting. Those are
_, which
adds a blank line, and ^, which places the title message on that
line instead of the bottom of the screen. The letters i, q,
and
x are reserved for return to index, quit, and exit, respectively,
and are not listed as part of
the configoptions list. The
options controlled by each letter are:
a A)rrow cursor (arrow)
b B)order on copy (prefix)
c C)alendar file (calendar)
d D)isplay mail using (pager)
e E)ditor (primary) (editor)
f F)older directory (maildir)
h H)old sent message (copy)
j J) reply editor (alteditor)
k K) pause after pager (promptafter)
l A(l)ias Sorting (aliassortby)
m M)enu display (menu)
n N)ames only (names)
o O)utbound mail saved (sentmail)
p P)rint mail using (print)
r R)eply copies msg (autocopy)
s S)orting criteria (sortby)
t T)ext editor (~e) (easyeditor)
u U)ser level (userlevel)
v V)isual Editor (~v) (visualeditor)
w W)ant Cc: prompt (askcc)
y Y)our full name (fullname)
z Z) signature dashes (sigdashes)
This is the character set which is supported by
your terminal. The default depends on your site's
installation but is usually US-ASCII. For sites
with support, ISO-8859-1 is a reasonable default.
The editor to be used by the ~e escape within the
builtin editor. The default value is the value of
the configuration variable emacs_editor (see The
Elm Configuration Guide).
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.) There are two possible formats
for it, either a command that can have a filename
appended to it before being executed, or a string
that contains the metasequence %s
which is
replaced by the name of the file before being
executed. Examples of each are:
editor = emacs -nw
editor = emacs -nw %s -f text-mode -f turn-on-auto-fill
The default is to use the value of $EDITOR in
your
current environment, and if not set, an editor selected
by the person who configured Elm for your system.
The character used with the builtin editor (see editor
above) to escape from text entry to input a command.
When a line begins with this character, the builtin
editor interprets it as a command rather than as text
to add. The default is ~ (tilde).
This is the name the mailer uses in messages you send.
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.
The
default is to use the gcos field from the /etc/passwd
file on systems that use this field
to store full
names, and to use the contents of the .fullname file in
your home directory on other systems.
This is the domain name of your system. This variable
is only valid in the system-wide elm.rc file. It
is
only necessary if the value
returned by the
getdomainname system call is incorrect for your mail
use or if that system call is unavailable
on your
system. If this variable is specified,
then the
hostfullname variable must also be specified.
This is the fully qualified domain name of your system.
This variable is only valid in the system-wide elm.rc
file. It is only necessary if the value returned
by
the getdomainname and gethostname system
calls are
incorrect for your mail use or if those system calls
are unavailable on your system. It
is required if
either the hostdomain or the hostname variables
are
used within the system-wide elm.rc file.
This is the local node-name of your system.
This
variable is only valid in the system wide elm.rc file.
It is only necessary if the value returned
by the
gethostname system call is incorrect for your mail use
or if that system call is unavailable on your system.
If this variable is specified, then the hostfullname
variable must also be specified.
See signature.
This is your folder directory. When you specify
a
1 1.
folder name beginning with the = metacharacter,
Note that % and + are synonymous with = throughout Elm.
it stands for this directory name. That is,
if you
save a message to folder =stuff the = is expanded to
the current value of maildir. The
default is the
directory Mail in your home directory.
This is the program to be used to display messages.
You can specify builtin or the name of any standard
pager. If you use builtin+, each
screenfull of
displayed message is paged from the top of your screen
with a title line, while builtin simply scrolls
up
subsequent screenfulls once it has paged
the first
screenfull. The default is to use the value of $PAGER
in your current environment, and if not set, a pager
selected by the person who configured Elm for
your
system, quite likely builtin+.
Some mail transports look at a Precedence header
in
outbound mail messages to determine how to deliver the
message. The Elm header editing menu allows you
to
place a precedence on your mail messages. By default,
Elm allows any value to be specified as the message
precedence. This option may be used to restrict
the
allowed precedences to a particular list. For example,
you might say:
precedences = special-delivery air-mail first-class bulk junk
Exactly what precedences your mail transport supports
and what they do (if anything at all!) will vary from
site to site.
The distinction between the Precedence and Priority
headers is subtle: the precedence tells
the mail
system how to handle the message and the priority tells
the recipient how important the message is. Although
these are quite different things, they
are often
related. This option will also allow you to associate
message priorities with precedences. For example, you
might say:
precedences = special-delivery:urgent air-mail:urgent first-class bulk junk
In this example, if you select an air-mail precedence
then the message priority defaults to urgent. If you
select a first-class precedence then
no special
priority is implied. The priorities
given in this
field are used only if you have not already assigned a
priority to your message, and even if one is assigned
via precedences you can always go back and change it.
When you reply to a message or forward a message
to
another person, 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. The default is > (specified as >_ - underscore is
interpreted as space) and is standard in the community.
This is the command used for printing mail messages.
There are two possible formats for
the command,
depending on whether or not the command contains the
sequence %s. In the first form the mail message(s) to
be printed are piped to the specified command.
An
example of this form is:
print = print -formfeed
In the second form the mail message(s) to be printed
are dumped into a temporary file, and
a %s in the
command string is replaced with the
name of the
temporary file. An example of this form is:
print = pr %s | lpr
Another significant difference between the two forms is
that in the second form all output from the command is
discarded, but in the first form all
output is
displayed on the terminal. For example, if you wish to
use the pass-through feature to print on the aux port
of a terminal, you must use the first form. The second
form is provided for backward compatibility with old
versions of Elm. It is depreciated
and might be
removed in a future release. The default is set by the
person who configured Elm for your system.
This is the folder to which incoming mail is
saved
after you've read it. When you
answer no to Keep
unread messages in your incoming mailbox? or yes
to
Store read messages in your received folder?, this is
where the messages go. The default is =received, that
is, a folder called received in your maildir directory.
See signature.
This is the folder to which a copy of outgoing mail is
automatically saved. This is only done if
the copy
boolean variable is set ON. Also note that
if the
savename boolean variable is enabled then this folder
may be ignored since the program may save to a folder
that has the same name as the login
of the person
you're sending to. Whether or not a copy is saved, and
to what folder, can be changed just prior to sending a
message (see the copy command of the mail command sub-
menu in section 7, Commands). The default is =sent,
that is, a folder called sent in
your maildir
directory.
This defines the shell to use when doing ! escapes and
such. The default is to use the value of
$SHELL in
your current environment, and if not set,
a shell
selected by the person who configured Elm
for your
system. Note that the ! escape is optional and may not
be enabled in your version of Elm.
This defines the file that is automatically appended to
all outbound mail before the editor
is invoked.
Furthermore, if you'd like a different signature file
for local mail and remote mail (remote being via other
hosts), you can alternatively define two variables,
localsignature and remotesignature, to have the same
functionality. The default is to not have signatures
appended to your messages.
You can have your folder sorted in any of the following
ways: Sorts according to whom each message is from.
Sorts shortest to longest by message.
Leaves the
messages in the order found in the folder. Sorts least
recently received to most recently received.
Sorts
least recently sent to most recently sent. Sorts
by
priority, action, new, tagged, then deleted.
Sorts
according to the subject of each message.
Each of these fields can optionally be prepended with
the sequence reverse- to reverse the order of the sort.
This doesn't imply anything about the order of
the
messages in the folder itself and affects only their
order on the index screen. The default is
mailbox
order.
This is the value for the Content-Transfer-Encoding:
header, which is used to tell MIME
(Multipurpose
Internet Mail Extension) capable mail readers how they
should decode your mail. The default depends on your
site's installation, but is usually
7bit. Other
possible values are 8bit, base64 or quoted-printable
(see RFC1341 for details). 7bit and 8bit implies
no
encoding.
Note that Elm doesn't look at this value; it is just
placed in your outgoing mail headers.
If you put
base64 or quoted-printable as the value, Elm will NOT
turn your message into a base64/quoted-printable
encoded message. You will have to do that
yourself
with whatever means are available in your MIME capable
mail reader. Metamail, for instance, has a
program
called mimencode that you can use.
Use this if you want to define your own directory for
the temporary file Elm creates while running. This is
only necessary if using the system temporary directory
could cause problems, such as when not all NFS clients
mount the common temporary directory, or
when the
temporary directory is prone
to being cleared
periodically. The default entry of
the system
temporary directory is normally OK.
The editor to be used by the ~v escape within
the
builtin editor. The default value is the value of the
configuration variable vi_editor (see
The Elm
Configuration Guide).
When specifying this option, you can list headers that
you don't want to see when you
are displaying a
message. This list can continue for as many lines as
desired, as long as the continued lines
all have
leading indentation. All headers in this entry append
to the default weedout list. There are two
special
header flags. The first, *clear-weed-list*, clears the
default list. The second, *end-of-user-headers*,
terminates the entry, in case the following lines look
like they might be more headers for the list.
The
default weedout list includes the following
header
strings:
>From
Apparently-To:
Content-Length
Content-Transfer-Encoding
Content-Type:
From
In-Reply-To:
MIME-Version
Message-Id:
Newsgroups:
Received:
References:
Status:
X-Mailer:
Note that the From entry weeds out both From: and the
From headers. If you just want to weed out From , for
example, put a *clear-weed-list* at the start of the
list followed by From_ or From .
This is a hop count threshold value and allows you to set up the
mailer so that when you send mail more than
n machines away,
it'll automatically include a Cc: to you through
the remote
machine. In practice this should be very rarely used. Note
that
this refuses to bounce mail off an Internet address. The default
is to have it set to zero, which disables the function.
This is used to determine if the builtin pager should be used on
some messages even if you would usually use an
external pager
program. There are two ways of determining whether the
builtin
pager should be used. If you want any message that
is shorter
than n lines to use the internal pager, set this variable to
n.
If you want the builtin pager to be used
if the message is m
lines shorter than the number of lines on your screen, set
this
variable to -m. Setting this variable to zero will result in the
message always being sent through your external
pager. This
variable is used only if the pager is not
set to the builtin
pager. The default is -3.
This variable modifies the display of the message
Reading in
foldername, message: #, which is displayed when
reading a new
folder. The message count is normally updated as each message in
the folder is read. If you are
on a slow terminal and are
reading a folder with a large number of messages, the
time it
takes to redraw the message count can significantly exceed
the
time it takes to simply read the folder.
The readmsginc variable controls the frequency with which
the
message count is updated. If this parameter is
set to 50, the
message count will be updated after every 50 messages (i.e.,
at
50, 100, 150, and so forth).
The default value for this
parameter is 1. If a value of less than 1 is specified for
this
parameter, the value is ignored, and the default value
is used
instead.
This variable modifies the time Elm waits after
displaying a
transient message before erasing it and continuing.
It can be
set to zero to suppress the wait entirely. It is in
units of
whole seconds.
On more advanced systems, it's nice to start up the mailer in
a
window and let it sit in background until new mail arrives
(see
wnewmail 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 so often. This option specifies the
number
of seconds that this occurs.
This is also useful for non-windowing terminals. For
example,
you can leave Elm running at night (I usually do) and
when you
come in in the morning it'll be all ready to read your mail!
The default is a 300 second (5 minute) timeout period.
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 someone familiar with Elm, and 2 for
experts.
Some advanced features are hidden from
novice users, while
experts get less verbose prompt messages. The default is 0.
The value assigned to boolean variables can be ON or OFF only.
Set ON to set the default answer to the Delete messages? prompt
to yes (see the quit command in section 7, Commands, and the ask
variable below). This default answer also applies to
deletions
from the alias system. The default for alwaysdelete is OFF.
Set ON to set the default answer to the Keep unread
mail in
incoming mailbox? prompt to yes. However, if you set alwaysstore
OFF or answer no to the Store read mail in
received folder?
prompt, it is presumed that you also want to keep
your unread
mail in the incoming mailbox, so the value of
alwayskeep is
ignored in those cases. See the quit
command in section 7,
Commands, and the ask and alwaysstore variables below for
more
details. The default for alwayskeep is ON.
Set ON to set the default answer to the Store
read mail in
received folder? prompt to yes (see the quit command in section
7, Commands, and the ask variable below).
The default for
alwaysstore is OFF.
Sometimes you are forced to use a slow or dumb terminal. Set
ON
to make the current message pointer the -> sequence rather
than
the inverse bar. Note that this is overridden by the -a command
line option (see section 3, Command Line Options). The
default
is OFF.
Set OFF to tell Elm that you'd rather not
be asked Delete
messages? and such each time you quit, resynchronize,
change
folders, or return from the alias system, but that it should just
use the values of alwaysdelete, alwaysstore,
and always keep
without prompting. Note that when you quit Elm, if you
use Q
instead of q, you will never be questioned, regardless of how you
have ask set. See the quit commands in section 7, Commands,
and
the alwaysdelete, alwayskeep, and alwaysstore vriables above for
more details. The default for ask is ON.
Set OFF to allow sending mail without being presented the Copies
to: prompt for each message. This still allows you to explicitly
include addresses in the Cc: list via either the header editor or
~c in the builtin editor (see section 8, Using Elm with editor =
none). The default is ON.
Set ON for Elm to automatically copy the text of each
message
replied to into the edit buffer. Otherwise you will be prompted
as to whether you want the message included in your reply.
See
the prefix variable under String Variables in section 2 for
how
copied text is marked. The default for autocopy is OFF.
Set ON to make Elm ask for permission to append messages to
the
end of any file that already exists. Whether the file is a
mail
folder in the user's mail directory or an ordinary file makes no
difference. The default is OFF.
Set ON to make Elm ask for permission before it creates
a new
file to store messages in. It makes no difference
whether the
new file would be a mail folder in the user's mail directory
or
an ordinary file. The default is OFF.
This allows you to have some last resort control over Elm when a
message would be appended (by copy,
save, or auto-cc) to an
existing file which is not a folder in your mail directory
(see
the maildir variable under String Variables in section 2).
Set
ON to make Elm ask for permission to append a message to the end
of an ordinary file, otherwise it silently adds the message
to
the end of the specified file whether it is a folder or not. The
default is OFF.
Set ON to make Elm ask before creating new mail folders in
your
mail directory (see the maildir variable under String Variables
in section 2), otherwise it silently creates new mail
folders
whenever a copy of a message is going to be stored in
a folder
that does not already exist. See the
copy, savename, and
forcename variables below for additional
information about
copying messages. The default for confirmfolders is OFF.
Set ON to have silent copies made of all outgoing mail.
Where
the copy of the message is saved is determined by the maildir and
sentmail string variables and the savename and forcename boolean
variables. Whether a copy is saved and to which folder can
also
be set prior to sending a message - see the copy command of
the
mail command sub-menu in section 7, Commands, for details.
The
default for copy is OFF.
Set ON to force creation of folders for copies of outbound
mail
by the recipient name. For complete details
of how to enable
automatic copying of outbound messages, see the copy and savename
boolean variables. The default is OFF.
Set ON to enable the generation of forms type messages. See
the
Elm Forms Mode Guide for further information about mail forms.
The mail system has a habit of deleting folders
when you've
removed everything from them. Set ON to preserve empty
folders
as zero-length files. Note that this option does not
apply to
your incoming mailbox. The default is OFF.
Set ON to indicate that you have an HP terminal and
want the
<NEXT>, <PREV>, <HOME> and <SHIFT-HOME>
keys enabled. The
default is OFF.
Set OFF to inhibit the menu display on all screen displays within
Elm. Note that this is overridden by the -m command line option
(see section 3, Command Line Options). The default is ON.
Set ON to get a copy of mail you send to a mailing list you
are
on, otherwise you do not get a
copy of such messages. The
default is OFF.
Set ON to enable commands that move through the folder by pages
(see the +, -, <right>, and <left> keys in section 7,
Commands)
to move the current message pointer to the top of that page
of
messages. Set OFF to not alter
the current message pointer
location when moving through pages. The default is OFF.
Set OFF to display the primary recipients' addresses
on your
screen with their full names when you send a message. Set ON
to
display only the full names. The default is ON.
Set ON to not include the headers of messages when
copying a
message into the edit buffer for replying or forwarding (see the
autocopy variable above). The default is ON.
Set ON to cause the current message pointer to point to the first
new message in your incoming mailbox when started, instead of at
message #1 of the index. This has no effect for other
folders
since they are not expected to have new mail. The default is ON.
Set ON to display a command prompt rather than the index screen
when exiting from an external pager. This variable has no effect
on the builtin pager. See the pager
variable under String
Variables in section 2 to specify which pager
to use to read
messages.
If your external pager immediately exits when it reaches the end
of the message, you should set promptafter ON so that
the last
screen of the displayed message is not immediately replaced
by
the index screen. If your external pager doesn't exit until
you
command it to, you have a choice. If you usually want to see the
index screen before issuing a command, setting this variable OFF
eliminates the extra keystroke needed to return to
the index
screen. If you usually don't need to see the index screen before
issuing the next command, setting it ON allows you to enter your
next command without waiting for the index screen to be redrawn.
The default is ON.
Set ON to move the current message pointer to the next message on
the index when a mail message is dealt with through
deleting,
undeleting, saving, forwarding, etc. or set OFF to
leave the
current message pointer unchanged. The default is ON.
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. Elm can use
a more
intelligent algorithm: for incoming mail, when you save or
copy
it (see section 7, Commands), the default folder is the
login
name of the person who sent you the message (changed by pressing
anything other than <return> of course). Similarly, when sending
mail, instead of just blindly saving it to the sentmail folder,
Elm can save it to a folder that is the login
name of the
2 2. When sending to a group, it's saved to
the login name of the first person in the
list only. Set
savename ON to enable this algorithm.
If forcename is OFF (see above), the copy is saved to that folder
only if the folder already exists. In practice, this means
that
important people that you communicate with (those that you
tend
to save mail from) have folders that are actually a recorded log
of the discussion in both directions and others (random mailings)
are all stuffed in the sentmail folder
for easy perusal and
removal (see the sentmail variable under String
Variables in
section 2). If you always want
to save copies of outgoing
messages in separate folders by recipient login name, you'll want
to set forcename ON.
The default for savename is ON.
Set ON to tell Elm that you wish to follow the
convention of
prefixing your signature with newline dash dash blank
newline.
This is placed in your message before your signature file
(see
the signature, localsignature, and remotesignnature
variables
under String Variables in section 2). If OFF,
the signature
file, if any, is placed at the end of the message
without any
prefix. The default is ON.
Set ON to tell Elm that you have an HP terminal with the HP 2622
function key protocol and that you'd like to have the
function
keys available while in the program. The default is OFF.
Set ON to have the first line of a message titled with:
Message N/M from username date at time
where all the information is extracted from the message. This is
especially useful if you weed out all the headers of each message
with a large weedout list (see the weedout variable under String
Variables in section 2). The default is ON.
Set ON to enable use of the termcap/terminfo ti/te capabilities.
Many terminal emulators require it (not the least of which is the
OpenLook cmdtool). Some terminal emulators clear the screen
on
te (some xterms). Set OFF to disable use of ti/te.
Note that
this is overridden by the -t command line option (see section 3,
Command Line Options). The default is ON.
Set ON to have Elm weed out certain headers
from displayed
messages, that is, not display them. The weedout variable under
String Variables in section 2 allows you to custom define the set
of headers you would like to not have displayed
while reading
messages. The default for the weed variable is ON.
For a better idea of how this all works,
here's a sample
.elm/elmrc 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 ~ (tilde) metacharacter
for your home directory, and they are expanded accordingly
when
read in by the mailer. Note that this was automatically saved by
the Elm program on the fly from the options screen.
#
# .elm/elmrc - options file for the ELM mail system
#
# Saved automatically by ELM 2.4 for Elm Development Group
#
# For yes/no settings with ?, ON means yes, OFF means no
# where to save calendar entries
calendar = ~/.Agenda
# what editor to use ("none" means simulate Berkeley Mail)
# '%s' can be used as the temporary filename for the outgoing message
editor = none
# the character to use in the builtin editor for entering commands
escape = ~
# the full user name for outbound mail
fullname = Elm Development Group
# where to save received messages to, default file is "=received"
receivedmail = $HOME/Mail/received
# where to save my mail to, default directory is "Mail"
maildir = /users/elmdev/Mail
#directory to hold my temporary files to avoid NFS cross mount problems
tmpdir = /users/elmdev/Mail/tmp
# program to use for displaying messages ('builtin' is recommended)
pager = builtin
# prefix sequence for indenting included message text in outgoing messages...
prefix = >_
# how to print a message ('%s' is the filename)
print = lpr -Plw2 %s
# attribution string for replies ('%s' is the author of original message)
attribution = According to %s:
# where to save copies of outgoing mail to, default file is "=sent"
sentmail = /users/elmdev/Mail/mail.sent
# the shell to use for shell escapes
shell = /bin/csh
# local ".signature" file to append to appropriate messages...
localsignature = localsig
# remote ".signature" file to append to appropriate messages...
remotesignature = remotesig
# do we want dashes above signatures? (News 2.11 compatibility and convention)
sigdashes = ON
# how to sort folders, "Reverse Sent" by default
sortby = Reverse-Received
# should the default be to delete messages we've marked for deletion?
alwaysdelete = ON
# should the default be to store read messages to the "received" folder?
alwaysstore = ON
# should the default be to keep unread messages in the incoming mailbox?
alwayskeep = ON
# should we use the "->" rather than the inverse video bar?
arrow = OFF
# should the message disposition questions be displayed (ON) or
# auto-answered (OFF) with the default answers when we resync or change
folders?
ask = ON
# would you like to be asked for Carbon-Copies information each msg?
askcc = ON
# 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
# do we want to be able to mail out AT&T Mail Forms?
forms = OFF
# should we keep folders from which all messages are deleted?
keepempty = OFF
# we're running on an HP terminal and want HOME, PREV, NEXT, etc...
keypad = OFF
# should we display the three-line 'mini' menu?
menu = ON
# would you like a copy of a message you send to an alias you are on?
metoo = OFF
# when using the page commands (+ - <NEXT> <PREV>) change the current
# message pointer...?
movepage = ON
# just show the names 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
# prompt for a command after the external pager exits?
promptafter = ON
# emulate the mailx message increment mode (only increment after something
# has been 'done' to a message, either saved or deleted, as opposed to
# simply each time something is touched)?
resolve = ON
# save messages, incoming and outbound, by login name of sender/recipient?
savename = ON
# save outbound messages by login name of sender/recipient even if the
# associated folder doesn't already exist?
forcename = OFF
# are we running on an HP terminal and want HOME, PREV, NEXT, etc...?
# (this implies "keypad=ON" 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
# 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"
"Subject:" "Fruit" "Sun" "Lat" "Buzzword" "Return" "Posted"
"Telephone" "Postal-Address" "Origin" "X-Sent-By-Nmail-V" "Resent"
"X-Location" "Source" "Mood" "Neuron" "Libido" "To:" "X-Mailer:"
"Full-Name:" "X-HPMAIL" "Cc:" "cc:" "Mmdf" "Network-" "Really-"
"Sender:" "Post" "Message-" "Relay-" "Article-" "Lines:"
"Approved:" "Xref:" "Organization:" "*end-of-user-headers*"
# alternative addresses that I could receive mail from (usually a
# forwarding mailbox) and don't want to have listed...
alternatives = dsidev!elmdev dsirel!elmdev elmdev@dsidev
elmdev%dsidev
# list of delivery precedences allowed, or empty to allow anything
# precedence may be followed by optional ":priority" specification
precedences = special-delivery:urgent air-mail:urgent first-class bulk
junk
# name of Character Set used with MIME text/plain Content-type
# US-ASCII is default. Be aware that if you use a national charset
# elm probably needs metamail to display US-ASCII. Elm tries to
# know if that charset could display US-ASCII too, but the list
# of us-ascii compatible charsets is not yet complete
charset=US-ASCII
# name of Character Set which the display supports. This is independent
# of the above "charset".
displaycharset=US-ASCII
# list of Character Sets, which are more or less a superset of US-ASCII
# so we know that we can display messages with charset=US-ASCII without
# help of metamail
compatcharsets = ISO-8859-1 ISO-8859-2 ISO-8859-3 ISO-8859-4
ISO-8859-5 ISO-8859-6 ISO-8859-7 ISO-8859-8 ISO-8859-9
# would you like to use termcap/terminfo ti/te entries?
usetite = ON
# Value by which message count is incremented while reading a new mailbox.
# Setting this value to a number larger than one will speed up the time
it
# takes to read a large mailbox when using a slow terminal.
readmsginc = 5
# time in seconds which Elm will wait after displaying a transient message
# and before erasing it. Can be 0 or positive integer.
sleepmsg = 2
There are a number of command line options to the Elm
program,
with only one that needs to be remembered: -?or -h for help.
The options are:
This allows you to have the -> arrow pointer rather
than the
inverse bar. This can also be set in the .elm/elmrc
file with
the boolean variable arrow.
Check only. This is useful for expanding aliases without sending
any mail. The invocation is similar to invoking Elm in send-only
mode:
elm -c list-of-aliases
Set debug level to n. Useful for debugging the Elm program, this
option will create a file in
your home directory called
ELM:debug.info containing a running log of what is going on with
the program. Level n can be 1
through 11, where the higher
numbers generate more output. This option might be disabled
by
the the person who configured Elm for your system.
Read the specified folder rather than the
default incoming
mailbox. Note that you can use the same metacharacters (e.g.
=)
as when you change folders from within the program. You can also
use the same abbreviatory symbols (!, > and <), but remember
to
single quote them in case they have special meaning in the shell
you use.
Help message. Gives a short list of all these options and exits.
Include a prepared file in the edit buffer before sending.
This
facilitates using Elm with other programs that
interface with
mail (like news readers, for example). There is an example
of
how to set up the rn news reading program to use Elm in The
Elm
Users Guide. The file specified is copied into
the temporary
file just before the signature file.
Keypad enable. This option lets the Elm 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 also the keypad variable, described under Boolean Variables
in section 2.
Keypad + softkeys enable. The Elm mailer can 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 also the softkeys variable,
described under Boolean Variables in section 2.
Inhibit display of the 3-line menu when using the mailer. This,
of course, gives you three more message headers per page instead.
See also the menu variable, described under Boolean Variables in
section 2.
In send-only and 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 Elm
Users Guide for more
information.
Disable use of the termcap/terminfo ti/te capabilities.
Many
terminal emulators require it (not the least
of which is the
OpenLook cmdtool). Some terminal emulators clear the screen
on
te (some xterms). See also the usetite variable, described under
Boolean Variables in section 2.
This causes Elm not to start if you don't have any
mail, but
instead to display the message You have no mail. This
emulates
the behavior of programs like Berkeley Mail.
All the above options default to reasonable values, so there
is
usually no need to use them. Furthermore, the most used options
are available through the .elm/elmrc file, described in section
2.
Elm optionally provides you with some Multi-Media features, which
are compliant to the MIME (Multipurpose Internet Mail Extension)
IETF draft.
If the support is compiled into Elm, on the receiving side
Elm
accesses Metamail from Nathaniel Borenstein of Bellcore. If
you
receive a MIME compliant message,
Elm calls Metamail
automatically to display the message. Metamail asks you
if you
want to display each part of the message and uses the
display
programs available at your site. This is controlled through
the
mailcap file.
On the sending side, there is a simple mechanism integrated
in
Elm to compose MIME compliant messages. If you have one or
more
key lines of the form
[include file contenttype/subtype encoding]
in the message body, at each of these key lines,
a file is
included, and becomes a part of the
message. The text lines
before, between and after the include lines go into extra message
parts of type text.
As an example, say you want to include the file foo.gif into your
message, which is a GIF image, and
you want to use base64
encoding, use the following line:
[include foo.gif image/gif base64]
Or you want to include a text file which contains plain ASCII:
[include foo.txt text/plain]
The encoding parameter is optional and the default is 7bit.
Refer to RFC1341 for valid contenttype/subtype
and encoding
parameter values.
There are a few extra features that Elm offers on outgoing
mail
that are worthy of mention.
3 is the 3.first, and probably the most exciting
feature,
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. ability
to send encrypted mail! To do this is extremely simple: you need
merely to have two key lines
[encode]
and
[clear]
in the message body.
Consider the following outgoing message:
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
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 Elm mailer prompts with:
Enter encryption key: @
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.
If you have the copy option enabled, the program will save
your
copy of the message encrypted too.
(This is to ensure the
privacy and security of your mail archive, too.)
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!!
On the other end, a person receiving this mail (they must also be
using Elm to receive it, since this
mailer has a unique
encryption program) will be reading the message and then suddenly
be prompted:
Enter decryption key: @
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.
Note that it is not possible currently to pipe or print encrypted
mail.
The other feature on outgoing mail is the ability to specify what
section of the message you want to have archived (assuming
copy
is enabled) and what section you don't. This is most useful
for
sending out source file listings and so on.
To indicate the end of the section that should be saved in
the
archive, you need merely to have the key line
[nosave]
or
[no save]
appear by itself on a line. This key line is removed
from the
outgoing mail, and indicates the last line of the message to
be
saved. Other than this, the saved mail is
identical to the
outgoing mail.
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 to run
commands and
substitute the commands' output for the backquoted text. Here's
a typical .elm/elmheaders file:
Organization: Hewlett-Packard Laboratories
Phone: (415)-555-1234
Operating-System: `uname -srv`
These lines will be inserted after all other header lines in the
message.
This section discusses 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 results in a one-line description of the
key.
Pressing ? again at this point produces a summary listing
each
command available. Pressing . (period) leaves the help mode
and
returns you to the command level.
Display the current message. <space> is
useful for reading
through a mail folder. When issued from the
index screen, it
displays the first screen of the current message. When
issued
while in the builtin pager, it pages through the message to
the
end. When issued at the end of a message
(with either the
builtin pager or an external pager), it displays the first screen
of the next message not marked for deletion.
Display the current message.
<return> behaves somewhat
differently from <space>. When issued
while in the builtin
pager, it scrolls 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 redisplays 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 that it is possible that
the person
who installed Elm on your system disabled 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 is either the one specified in
your .elm/elmrc file, or the default
shell (see the shell
variable under String Variables in section 2).
Pattern match. This command, at the command 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 Elm tries to match the specified pattern against any line in
the folder. Again, this works from the current message
through
the end. Both searches are case insensitive.
Display the previous page of the message index.
Display the next page of the message index.
Specify new current message. When you type in any
digit, Elm
prompts Set current to : n, where
n is the digit entered.
Continue entering the full number and terminate with
<return>.
Note that changing the current message to a message not
on the
current page of headers results 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 user's
calendar file. This is done quite simply; any line that has
the
pattern
-> calendar entry
is automatically added to the user's calendar file when
the <
command is used (see the calendar variable under String Variables
in section 2).
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 user's calendar file.
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. Obviously, this saves
having to remember
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.
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.
Copy to folder. This command copies the current message or
set
of tagged messages to a folder. If
there is anything in the
folder currently the message is appended to the end,
otherwise
the folder is created containing only the newly copied messages.
The prompt for this command is Copy to folder: . A response
of
<return> cancels the command and returns the user to the command
prompt. The usual filename metacharacters are available,
too.
That is, this command expands filenames with ~ (tilde)
to your
home directory and = to your maildir directory, if defined. This
command also allows you to use > for your receivedmail folder, <
for your sentmail folder, and @alias for the default folder
for
alias. If you use a shell wildcard in the file or folder
name,
you are 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 will work. Finally, you can also enter
? at the prompt to get detailed help.
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
~ (tilde) to your home directory and = to 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, and @alias for
the default
folder for alias. If you use a shell wildcard in the
file or
folder name, you are 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 will work. Finally,
you can
also enter ? at the prompt to get detailed help.
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).
This command allows you to easily mark for deletion all messages
that have a specific pattern. After <control>-D is pressed,
Elm
prompts for the string to match in either the from or
subject
lines of the messages.
This is the direct opposite command to the <control>-D command
-
all messages that match the specified pattern have any mark
for
deletion removed by this command.
Edit mailbox. This allows you to modify the current mail file at
a single keystroke. This is mostly useful for editing
messages
before saving them. Modifying headers should
be done with
extreme caution, as they contain routing information
and other
vital stuff for full functionality. This command may be disabled
by whoever configured your Elm installation.
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 the prefix variable under String Variables in section 2.
Group reply. Identical to reply below, except that the response
is mailed to all recipients of the
original message except
yourself. See the alternatives variable under String Variables in
section 2.
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
variable, described under String Variables in section 2.
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.
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 necessary) 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 necessary).
These two keys work similarly to their lower case counterparts,
except that they don't skip over deleted messages.
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, with only 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
criterion for selection. Once we've limited our selections,
the
screen is rewritten with just the selected messages and the
top
line changes to have a message like:
Folder is "=elm" with 92 shown out of 124 [Elm 2.4]
We can further limit selections by using
the limit option
repeatedly to enter further criteria.
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.
Mail. Send mail to a specified user. The prompt 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 prompt is Copies to: , which allows
other people specified to receive carbon copies of the message,
but see the askcc variable under Boolean Variables in section 2.
Upon entering all three items the editor
is invoked and the
message can be composed.
Next message that is not marked for
deletion. Useful for
displaying successive messages in a folder. When issued from the
index screen, it displays the current message, and when
issued
while in the builtin pager or at the
end of a message (with
either the builtin pager or an external pager), it displays
the
first screen of the next message not marked for deletion.
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.
See
the configoptions variable under String Variables in section 2.
Print. This allows you to print out the current message or
the
tagged messages to a previously defined printer. See
the print
variable under String Variables in section 2.
Quit. If you in the pager, you are returned to the index screen.
If you are at the index screen, Elm quits altogether.
However,
if you have the ask variable set ON, Elm first prompts you
for
the disposition of the messages in the current folder.
If any
messages are marked for deletion, it asks if
you want them
deleted. If the current folder is your incoming mailbox, you are
also 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 variables alwaysdelete, alwaysstore, and always
keep
(see Boolean Variables in section 2). 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.
Quick quit. This behaves similar to the quit command except that
you are never prompted for answers to the message
disposition
questions. Elm disposes of messages according to the values
you
have set for alwaysdelete, alwaysstore, and always keep
in your
.elm/elmrc file (see Boolean Variables in section 2).
Reply. Reply to the sender of the current
message. If the
autocopy variable is set to OFF in your .elm/elmrc
file, Elm
prompts Copy message? (y/n), to which you can specify whether or
not a copy of the source message is to be copied into
the edit
buffer. If copied in, all lines from the message are
prepended
with the prefix character sequence specified in your .elm/elmrc
file (see String Variables in section 2).
Save to folder. This command is like the copy command,
except
that the saved messages are marked for deletion and, if you
are
saving just the current message, the current message pointer
is
incremented afterwards (see the resolve variable under
Boolean
Variables in section 2). This command expands folder names
with
~ (tilde) to your home directory and = to your maildir directory,
if defined. This command also allows you to use
> for your
receivedmail folder, < for your sentmail
folder (see String
Variables in section 2), and @alias for the default folder
for
alias.
Tag. 4. Currently only copy, pipe, print, and save support this.
Tag the current message for a later operation.
Tag and move to next undeleted message. This command is like the
`Tag' command but also increments the current message pointer to
the next undeleted message.
Tag all messages containing the specified pattern. Since tagging
messages can occur on screens other than the one being
viewed,
Elm first checks 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 command, prompt for a pattern to match
and then mark all messages that contain the (case insensitive)
pattern in either the from or subject lines.
Exit. This leaves Elm and discards any changes to the
mailbox.
If changes are pending (such as messages marked for deletion) you
are asked to confirm discarding the changes. If confirmed,
no
messages are deleted and the status of all messages is 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.
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 status of all messages
is 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 a message with the forward, mail,
or
reply commands (see above), a small menu of the following options
appears:
Specify the folder for saving a copy of the message. This allows
you to override the copy, forcename and savename variables
from
your .elm/elmrc file (see Boolean Variables in section 2).
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 (see String Variables in section
2),
and =? to mean conditionally save by
name and = to mean
unconditionally save 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 are 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 will
work. You can also enter ? at the prompt to
get help about
saving.
Edit message (or form). Entering this command allows you to edit
the text of your message or form.
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?
Edit headers. This puts you into the
header editing mode,
whereby you can edit 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.
Run ispell (or some other configured
spelling correction
program). The outgoing 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.
Make form. This converts the message you have edited
into a
form. See the forms variable under Boolean Variables in section
2 and The Elm Forms Mode Guide for more details.
Send. This sends the message as is without any further ado.
The Elm program also supports a builtin editor for simple message
composition that is very (very) similar to the simple line editor
available from the Berkeley Mail system.
To access it, you need merely to specify editor=none
in your
.elm/elmrc 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.
From the builtin editor, the following options are available for
use. Each command here is prefixed with a ~ (tilde).
You can
specify a different escape character in your .elm/elmrc file, if
you desire (see the escape variable under String
Variables in
section 2).
Print a brief help menu.
Change the Blind-Carbon-Copy list.
Change the Carbon-Copy list.
Invoke the easyeditor editor on the message, if possible (see the
easyeditor variable under String Variables in section 2).
Add the specified message or current message.
Change all the available headers (To, Cc, Bcc, and Subject).
Same as ~f, but with the current prefix (see the prefix variable
under String Variables in section 2).
Invoke a user specified editor on the message.
Print out, on the screen, the message as typed in so far.
Include (read in) the contents of the specified file.
Change the Subject line.
Change the To list.
Invoke the vi visual editor on the message.
Execute the specified command, entering the output of the command
into the editor buffer upon completion.
For example, ~< who
includes the output of the who command in your message.
Execute a command if one is given (as in ~!ls) or give the user a
shell, either from the shell variable setting in the .elm/elmrc
file or the default (see the shell
variable under String
Variables in section 2).
Add a line prefixed by a single ~ character.
A useful note is that the ~f and ~m commands invoke the readmsg
command, so you can pass parameters along too. For example,
if
we wanted to include a message from Joe, without any headers, but
with each line prefixed, we could use:
~m -n Joe
to accomplish the task.
To learn more about how they work, try 'em!
As mentioned previously, there exists in the 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:
host1!host2! ... !hostN!user
the user merely has to remember a single word.
Two alias tables are available for a each user within Elm, namely
the system alias file and the user's alias
file. The system
alias file is created and
maintained (by the system
administrator) by editing the
file name defined for
SYSTEM_ALIASES in the sysdefs.h file (see The Elm Configuration
Guide) and as described in the documentation with the
newalias
command, then running the newalias program.
An individual user can also have an alias file which
works in
conjunction with the system aliases.
To do this, one merely
needs to enter the alias menu system and create aliases with the
a (alias current message) or n (make
new alias) commands.
Alternatively, the user can peruse the documentation
for the
newalias command and create a file as indicated therein.
After
executing the program, the aliases are available for
use from
within Elm.
Please refer to The Elm Alias Users Guide for complete details.
Within Elm, however, the alias system acts
as an entirely
different program, with its own display, own commands,
and own
mini-menu. The aliases are presented in a list similar
to the
index screen with the following menu:
Alias commands: ?=help, <n>=set current to n, /=search pattern
a)lias current message, c)hange, d)elete, e)dit aliases.text, f)ully expand,
l)imit display, m)ail, n)ew alias, r)eturn, t)ag, u)ndelete, or e(x)it
Alias: @
The commands are:
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. Pressing ? again at this point produces a summary
listing
each command available. Pressing . (period) leaves the help mode
and returns you to the alias command prompt.
Display the current alias address.
The alias address is
displayed below the alias menu. This
command allows you to
verify the address for a person or the contents of a group alias.
Resynchronize the alias text file ($HOME/.elm/aliases.text)
and
alias database by rebuilding the database from the text file
by
running newalias. Aliases marked for deletion
are removed,
tagged aliases are untagged, and new and
changed aliases are
recognized. The alias screen is updated
to reflect these
changes.
Pattern match. This command allows the user to search
through
all the alias and username entries in the alias list starting at
the current alias and continuing through the end. If the
first
character of the pattern is a /, then
Elm also includes the
comment and the fully expanded address fields in the search. The
search is case insensitive. This allows
the user to find a
specific alias in the situation where there are a large number of
aliases.
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. If
the
alias name is not unique, you will
be asked if you wish to
replace the existing alias. For further information, please
see
The Elm Alias System Users Guide.
Change current alias. This will prompt for
changes to the
current names and address. If other aliases are tagged you
will
be asked if you want to create a group alias from
the tagged
aliases. The original alias is replaced with the new information
in your individual alias file ($HOME/.elm/aliases.text) and then
added to the database (at the next alias resync). Aliases
that
have been changed are marked with an N (for
new) until the
database is updated.
Delete or undelete an alias. This allows the user to
mark an
alias for deletion in the same fashion as on the index
screen.
The deletions are not actually made until the user returns to the
main menu with the r, q, or i commands or resyncs
the display
with the $ command. Deletions on system aliases are not allowed.
These commands (plus the <control>-D and <control>-U
versions)
behave identically to their index screen
counterparts (see
section 7, Commands).
Edit the .elm/aliases.text file. The user alias file is
edited
using the editor defined in the
editor variable in your
.elm/elmrc file (see String Variables in section 2). newalias is
run after the edit.
Display fully expanded alias. The currently selected
alias is
fully expanded and displayed to the user. This
is most useful
when working with group aliases.
Limit the display. You can limit the display
by alias type
(person/group or user/system) or by search pattern
on name or
alias. Otherwise, this works exactly like the limit command
on
the index screen.
Send mail to the current alias. The user is prompted to compose
a new mail message to be sent to the person or group specified by
the selected alias. If aliases are tagged the message is mailed
to the person(s) and/or group(s) specified by the tagged aliases.
Tags are cleared after mailing the message.
Make a new user alias. This prompts for a unique alias name
and
then for an address. If the alias name is not unique,
you are
asked if you wish to replace the existing alias. If aliases
are
tagged you are asked if you want to create a group alias from the
tagged aliases. The information provided
is added to your
individual alias file ($HOME/.elm/aliases.text) and then added to
the database at the next alias resync.
Return. Return to the index screen of the Elm
program. Any
pending deletions are processed and newalias is run to update the
database. New additions are handled at this time as well.
Quick return. This behaves like the r command except
that you
are never prompted for answers to alias disposition questions.
Elm disposes of aliases according to the value
set for the
alwaysdelete variable in your .elm/elmrc
file (see Boolean
Variables in section 2).
Currently Tag the current alias for a later operation.
only mail, change, and n3w alias support
this. This command
(plus the <control>-T version) behaves identically to its
index
screen counterpart (see section 7, Commands).
Exit alias menu. Exits the alias menu without processing
any
deletions. Aliases marked for deletion are unmarked and newalias
is not run, even if alias additions have been made.
Additionally, the movement keys (j, k, +, -, etc.) work in
the
same fashion as on the index screen (see section 7, Commands).
Elm can handle several standard signals to
do some special
processing. Signals are interrupt messages sent from one program
to another. No detailed messages are sent,
but a properly
configured program (such as Elm) can watch for and handle these
signals.
In particular, Elm watches for the following signals and
takes
these actions: This is the alarm clock signal or time
warning.
Elm uses this to wake itself up periodically and check for
new
mail. This is the
hangup notice. It means that the
terminal/modem/whatever which you have been using with Elm
has
become detached from the system where Elm was running. When
Elm
gets this signal, it aborts all the pending operations and exits,
leaving your mailbox unchanged. This is the first user-defined
signal. When Elm gets this signal, it receives any pending mail,
performs all the pending operations (deletes), and exits leaving
all unread mail marked as new. This is the same as giving
both
the $ and X commands. This is the second user-defined
signal.
When Elm gets this signal, it receives any pending mail, performs
all the pending operations (deletes), and
exits, leaving all
unread mail marked as old. This is the same as giving both the $
and Q commands.
You would only use these signals yourself under the most unusual
circumstances. For example, suppose you were using Elm
to read
mail on host_1. You have many messages, most of which have
been
read and filed (and therefore deleted), or simply deleted.
You
have not yet resynchronized your mailbox ($ command). Now you go
to lunch. On your return, you're stopped at the door and told to
take care of an emergency. You go to
another part of the
building, and want to read your mail to see what the emergency is
- but you can't, because Elm is still running at your desk.
What you really want is one of the scenarios
given in the
description of HUP, USR1 or USR2. Use your local ps command
to
find out what the process number of your Elm session is.
Then
give the command
kill -XXX process_number
where XXX is either HUP, USR1 or USR2 and process_number is
the
process number for your remote Elm session. Your remote session
will terminate with the actions noted above.
There are some additional facilities available in the Elm mailer
for those people who are knowledgeable about mail protocols,
or
trying to debug/track down a problem.
The h (display with headers) command at the
command prompt
displays the current message ignoring the current setting of the
weed variable (see Boolean Variables in section 2). 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.
The @ command at the command prompt outputs a screen of debugging
information, including the number of lines and offsets of each of
the messages in the current mailbox.
The # command at the command prompt displays the entire
stored
record structure for the current message.
The % command displays the full computed return address of
the
current message.
Starting up Elm with the -d (debug) option
(see section 3,
Command Line Options) creates a file called ELM:debug.info
in
your home directory which contains a wealth of useful information
(to me, at least!) to aid in
tracking down what errors are
occurring and why.
If there are any problems with Elm, please try to recreate
the
error with the debug option enabled and set to the highest level
(11) before sending defect reports my way.
One final note: all error names reported by the
program are
documented in the AT&T System V Interface Definition
Reference
Manual in errno(2).
[index (frame version)] [index (text version)]