


          ()                                                             ()














                               TThhee EEllmm RReeffeerreennccee GGuuiiddee




                        _A _c_o_m_p_r_e_h_e_n_s_i_v_e _l_i_s_t _o_f _a_l_l _c_o_m_m_a_n_d_s_,
                       _o_p_t_i_o_n_s _a_n_d _s_u_c_h _t_o _t_h_e EEllmm _m_a_i_l _s_y_s_t_e_m



                                 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
















                       ((CC)) Copyright 1986,1987 by Dave Taylor
                ((CC)) Copyright 1988-1992 by The USENET Community Trust







                                                                          1





          ()                                                             ()







                               TThhee EEllmm RReeffeerreennccee GGuuiiddee

                         (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 TThhee EEllmm
          MMaaiill SSyysstteemm 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  _T_h_e
          _E_l_m _U_s_e_r_s _G_u_i_d_e) and the _._e_l_m_/_e_l_m_r_c file.

          To  be  more  explicit, this document covers: a discussion of the
          _._e_l_m_/_e_l_m_r_c file, command line options of _e_l_m, outgoing mail  pro-
          cessing, responses of various commands, mail archive folders, the
          Alias system, system aliases etc, more on the EEllmm 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 _e_l_m_r_c and reside in  the  _._e_l_m  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 _._e_l_m_/_e_l_m_r_c file, the default values (listed below
          for each option) or those values specified by your systems admin-
          istrator  in  a  system wide _e_l_m_._r_c file will be used.  Note that



                                                                          1





          ()                                                             ()


          those options below designated with * can be  altered  using  elm
          via  the  o)ptions  screen while those designated with a + can be
          placed on the options screen using  the  _c_o_n_f_i_g_o_p_t_i_o_n_s  variable.
          Also  note  that  when you save a new _._e_l_m_/_e_l_m_r_c file via the `>'
          command of the  options  screen,  it  will  be  (re)created  only
          including  those  options that you have changed via your original
          _._e_l_m_/_e_l_m_r_c file or via the o)ptions screen.


          You can have your alias display sorted by any  of  the  following
          ways:

          alias     This will sort according to _a_l_i_a_s_n_a_m_e for each address.

          name      This will sort according to _u_s_e_r_n_a_m_e for each  address.

          text      This will present the aliases in the order found in the
          _a_l_i_a_s_e_s_._t_e_x_t 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
          _a_l_i_a_s_e_s_._t_e_x_t file itself and affects only their order on the dis-
          play screen.  (The default is _n_a_m_e order.)

          The editor to use when mailing to a message that already includes
          text, as the "builtin" editor cannot handle that situation.  Mes-
          sages 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 _e_d_i_t_o_r is not "builtin".

          This is a list of other machine/username  combinations  that  you
          receive mail from (forwarded).  This is used when the _g_r_o_u_p _r_e_p_l_y
          feature is invoked to ensure that you don't send yourself a  copy
          of  the  outbound message.  (The default is a list of no alterna-
          tives.)

          When you _f_o_r_w_a_r_d a message or _r_e_p_l_y 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
          will be replaced by the name of the  original  author.   Examples
          are:
                    aattttrriibbuuttiioonn == AAccccoorrddiinngg ttoo %%ss::
                    aattttrriibbuuttiioonn == %%ss wwrriitteess::

          This  is used in conjunction with the `<' _s_c_a_n _m_e_s_s_a_g_e _f_o_r _c_a_l_e_n_-
          _d_a_r _e_n_t_r_i_e_s command, as the file to  append  any  found  calendar
          entries to.  (The default is _c_a_l_e_n_d_a_r in your home directory.)

          This  is  the  Character Set used for Messages with Content-Type:
          text/plain.  The default depends on your site's installation, but
          is  usually  _U_S_-_A_S_C_I_I. _c_h_a_r_s_e_t is only recognized if _M_I_M_E support
          is configured. You could set charset to your  preferred  national



                                                                          2





          ()                                                             ()


          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 charset could  display  _U_S_-_A_S_C_I_I
          too,  but  its  list  of compatible charsets is probably not com-
          plete.

          This is the Character Set which is supported  by  your  terminal.
          The default depends on your sites installation but is usually _U_S_-
          _A_S_C_I_I. For Sites with X-Windows support, _I_S_O_-_8_8_5_9_-_1  would  be  a
          reasonable default.

          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. _c_o_m_p_a_t_c_h_a_r_s_e_t_s is only recognized if
          MIME  support  is  configured. Currently the ISO-8859-X character
          sets are default.

          This is a list of letters that indicate  which  of  the  run-time
          configurable  options  you  desire placed on the o)ptions screen.
          There are 22 run-time configurable options, but only room for  15
          on  the  normal  sized  screen.   The  default  list  is  _^___c_d_e_f_-
          _s_o_p_y_v___a_m___u_n.  Two additional characters can be specified for for-
          matting.   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 _(_a_r_r_o_w_)
          b    B)order on copy _(_p_r_e_f_i_x_)
          c    C)alendar file _(_c_a_l_e_n_d_a_r_)
          d    D)isplay mail using _(_p_a_g_e_r_)
          e    E)ditor (primary) _(_e_d_i_t_o_r_)
          f    F)older directory _(_m_a_i_l_d_i_r_)
          h    H)old sent message _(_c_o_p_y_)
          j    J) reply editor _(_a_l_t_e_d_i_t_o_r_)
          k    K) pause after pager _(_p_r_o_m_p_t_a_f_t_e_r_)
          l    A(l)ias Sorting _(_a_l_i_a_s_s_o_r_t_b_y_)
          m    M)enu display _(_m_e_n_u_)
          n    N)ames only _(_n_a_m_e_s_)
          o    O)utbound mail saved _(_s_e_n_t_m_a_i_l_)
          p    P)rint mail using _(_p_r_i_n_t_)
          r    R)eply copies msg _(_a_u_t_o_c_o_p_y_)
          s    S)orting criteria _(_s_o_r_t_b_y_)
          t    T)ext editor (~e) _(_e_a_s_y_e_d_i_t_o_r_)
          u    U)ser level _(_u_s_e_r_l_e_v_e_l_)
          v    V)isual Editor (~v) _(_v_i_s_u_a_l_e_d_i_t_o_r_)
          w    W)ant Cc: prompt _(_a_s_k_c_c_)
          y    Y)our full name _(_f_u_l_l_n_a_m_e_)
          z    Z) signature dashes _(_s_i_g_d_a_s_h_e_s_)




                                                                          3





          ()                                                             ()


          The editor to be used by the ~e escape within the "builtin"  edi-
          tor.   The default value is the value of the configuration option
          emacs_editor.

          The editor to use  when  typing  in  new  mail.   If  you  select
          ``none''  or  ``builtin'' you'll get a Berkeley Mail style inter-
          face 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  file-
          name  affixed to (as a suffix) before being executed, or a string
          that contains the meta-sequence `%s' which will  be  replaced  by
          the  name  of  the  file before being executed.  Examples of each
          are:
                eeddiittoorr == eemmaaccss --nnww
                eeddiittoorr == eemmaaccss --nnww %%ss --ff tteexxtt--mmooddee --ff ttuurrnn--oonn--aauuttoo--ffiillll
          (The default is to use the value of $EDITOR in your current envi-
          ronment,  and  if  not  set, an editor selected by the person who
          configured _e_l_m for your system.)

          The character used with the ``builtin''  editor  (see  above)  to
          escape  from  text  entry to input a command.  When a line begins
          with this character, the editor interprets it as a command rather
          than as text to add.  (The default is ``~''.)

          This is the name the mailer will use 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 _/_e_t_c_/_p_a_s_s_w_d file on systems that use this field to store
          full names, and to use the contents of  _._f_u_l_l_n_a_m_e  in  your  home
          directory on other systems.)

          This  is  the  domain name of your system.  This variable is only
          valid in the system wide _e_l_m_._r_c 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 full "Fully Qualified Domain Name"  of  your  system.
          This  variable  is only valid in the system wide _e_l_m_._r_c 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  also
          required  if  either  hostdomain  or hostname are used within the
          system wide _e_l_m_._r_c file.

          This is the local node name of your  system.   This  variable  is
          only  valid in the system wide _e_l_m_._r_c 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.




                                                                          4





          ()                                                             ()


          See signature.

          This  is  your  folder directory.  When you specify a folder name
          beginning with the `=' metacharacter1, 1. Note that `%'  and  `+'
          are  synonymous with `=' throughout _e_l_m it stands for this direc-
          tory name.  That is, if you save a message to folder  _=_s_t_u_f_f  the
          `='  will  be  expanded  to  the  current value of _m_a_i_l_d_i_r.  (The
          default is the directory _M_a_i_l 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 _e_l_m for your system,
          quite likely ``builtin+''.)

          Some mail transports will look at a ``Precedence'' header in out-
          bound 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 will allow any value to be speci-
          fied as the message precedence.   This  option  may  be  used  to
          restrict the allowed precedences to a particular list.  For exam-
          ple, you might say:

          pprreecceeddeenncceess == ssppeecciiaall--ddeelliivveerryy aaiirr--mmaaiill ffiirrsstt--ccllaassss bbuullkk jjuunnkk

          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'' head-
          ers is subtle:  the precedence tells the mail system how to  han-
          dle  the  message and the priority tells the recipient how impor-
          tant the message is.  Although these are quite different  things,
          they are often related.  This option will also allow you to asso-
          ciate message priorities  with  precedences.   For  example,  you
          might say:

          pprreecceeddeenncceess == ssppeecciiaall--ddeelliivveerryy::uurrggeenntt aaiirr--mmaaiill::uurrggeenntt ffiirrsstt--ccllaassss bbuullkk jjuunnkk

          In  this  example,  if you select an ``air-mail'' precedence then
          the message priority will default to ``urgent''.  If you select a
          ``first-class''  precedence  then no special priority is implied.
          The priorities given in this field will be used only if you  have
          not  already assigned a priority to your message, and even if one
          is assigned you can always go back and change it.

          When you _r_e_p_l_y to a message or _f_o_r_w_a_r_d a message to another  per-
          son,  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 ``> '' and is
          standard in the Unix community.)



                                                                          5





          ()                                                             ()


          This is the command used for printing mail messages.   There  are
          two  possible  formats  for the command, depending whether or not
          the command contains the sequence `%s'.  In the  first  form  the
          mail message(s) to be printed are fed into the specified command.
          An example of this form is:

               pprriinntt == pprriinntt --ffoorrmmffeeeedd

          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:

               pprriinntt == pprr %%ss || llpprr

          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  the command all output will be 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 compatibil-
          ity  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 _e_l_m for your system.)

          This  is  the folder to which incoming mail is saved after you've
          read it.  When you answer _n_o (`n') to the ``keep unread  messages
          in  your  incoming  mailbox?'' prompt or _y_e_s (`y') to the ``store
          read messages in your "received" folder?'',  this  is  where  the
          messages  go.   (The  default  is  "=received", that is, a folder
          called _r_e_c_e_i_v_e_d in your _m_a_i_l_d_i_r directory).

          See signature.

          This is the folder to which a copy of outgoing mail is  automati-
          cally  saved.   This will only be done if the _c_o_p_y flag is turned
          on (see below).  Also note that  if  the  _s_a_v_e_n_a_m_e  feature  (see
          below)  is enabled then this folder may be ignored since the pro-
          gram 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  mes-
          sage,  see  below.   (The  default  is "=sent", that is, a folder
          called _s_e_n_t in your _m_a_i_l_d_i_r directory).

          This defines the shell to use when doing ``!'' escapes and  such.
          (The  default is to use the value of $SHELL in your current envi-
          ronment, and if not set, a shell selected by the person who  con-
          figured _e_l_m for your system.)  Note: the ``!'' escape is optional
          and may not be enabled in your version of Elm.

          This file, if defined, will be automatically appended to all out-
          bound  mail  before the editor is invoked.  Furthermore, if you'd
          like a different ``.signature'' file for _l_o_c_a_l  mail  and  _r_e_m_o_t_e
          mail (remote being via other hosts), you can alternatively define



                                                                          6





          ()                                                             ()


          two variables, _l_o_c_a_l_s_i_g_n_a_t_u_r_e and _r_e_m_o_t_e_s_i_g_n_a_t_u_r_e,  to  have  the
          same  functionality.   (The  default  is  to  not have signatures
          appended to your message.)

          You can have your folder sorted by any of the following ways:

          from      This will sort according to whom each message is  _f_r_o_m.

          lines     This will sort _s_h_o_r_t_e_s_t to _l_o_n_g_e_s_t by message.

          mailbox   This  will leave the messages in the order found in the
          folder.

          received  This will sort _l_e_a_s_t _r_e_c_e_n_t_l_y _r_e_c_e_i_v_e_d to _m_o_s_t _r_e_c_e_n_t_l_y
          _r_e_c_e_i_v_e_d.

          sent      This  will  sort  _l_e_a_s_t  _r_e_c_e_n_t_l_y _s_e_n_t to _m_o_s_t _r_e_c_e_n_t_l_y
          _s_e_n_t.

          status    This will sort by priority, action, new,  tagged,  then
          deleted.

          subject   This  will  sort  according to the _s_u_b_j_e_c_t of each mes-
          sage.

          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
          folder  itself  and affects only their order on the index screen.
          (The default is _m_a_i_l_b_o_x order.)

          Use this if you want to define your own directory for the  tempo-
          rary  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 period-
          ically.   The  default entry of the system temporary directory is
          normally ok.

          The editor to be used by the ~v escape within the "builtin"  edi-
          tor.   The default value is the value of the configuration option
          vi_editor.

          When specifying this option, you can list headers that you  _d_o_n_'_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*, will clear the default list.
          The second, *end-of-user-headers*, will terminate the  entry,  in
          case the following lines look like they might be more headers for
          the list.  (The default is ``Received:'' and others.)





                                                                          7





          ()                                                             ()


          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:
          this refuses to bounce mail off an Internet address.  The default
          is to have it set to zero, which disables the function)

          On  more  advanced systems, it's nice to start up the mailer in a
          window and let it sit in background unless new mail arrives  (see
          _w_n_e_w_m_a_i_l  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 normal terminals, for example you can
          leave _e_l_m 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 _e_l_m user, and 2 for
          experts.  Some advanced features are hidden  from  novice  users,
          while experts get less verbose prompt messages.

          When  set, this changes the default answer of the prompt ``Delete
          messages?'' to the indicated value.  The value  for  _a_l_w_a_y_s_d_e_l_e_t_e
          also applies to deletions from the alias system.  (The default is
          to have the answer be _N_o (i.e. alwaysdelete = OFF).)

          This sets the default answer on the ``keep unread mail in  incom-
          ing  mailbox''  However,  if  you answered _N_o to the ``store read
          mail in "received" folder'' it is presumed that you'd  also  want
          to  keep  your  unread mail in the incoming mailbox, too, and the
          value of alwayskeep is ignored.  (The  default  is  to  have  the
          default answer be _Y_e_s (i.e., alwayskeep = ON).)

          This  sets  the  default  answer  on  the  ``store  read  mail in
          "received" folder'' prompt to the value indicated.  (The  default
          is to have the default answer be _N_o (i.e., alwaysstore = OFF).)

          Sometimes you are forced to use a slow, or ``dumb'' terminal.  In
          this case, you can force the current message pointer  to  be  the
          ``->''  sequence rather than the inverse bar.  (Note that this is
          overridden by the similar `-a' command line option,  see  below.)
          (The default is OFF.)

          This  allows  you to tell the _e_l_m system that you'd rather not be
          asked ``Delete Mail?'' and such each time you quit, resynchronize
          a  folder  or  change folders, and instead it should just use the
          values of ``alwaysdelete'', ``alwaysstore'',  and  ``alwayskeep''
          without  prompting.  (Note that when you quit _e_l_m, if you use `Q'



                                                                          8





          ()                                                             ()


          instead of `q', you will never be questioned, regardless  of  how
          you  have  _a_s_k  set.)   (The default is ON, i.e. to ask the ques-
          tions.)

          If turned off, this will allow you to  send  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 ``~c'' in the builtin editor, or via using the header edi-
          tor.  (The default is ON, i.e. to ask about copies.)

          If turned on, this will automatically copy the text of each  mes-
          sage  being  replied to into the edit buffer.  Otherwise you will
          be prompted as to whether you want the message included in yours.
          (See the _p_r_e_f_i_x option above.)  (The default is OFF.)

          When  set  to  ON  this  will  force elm to ask for permission to
          append messages to the end of any file that already  exists.   If
          the  file  is  a  mail  folder in the user's mail directory or an
          ordinary file makes no difference.  (The default is OFF.)

          When set to ON elm will ask for permission before  it  creates  a
          new  file  to  store  any messages in it.  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  will  allow  you  to have some last resort control over elm
          when a message would be appended (by copying, saving or  auto-cc)
          to an existing file which is not a folder in your mail directory.
          (See maildir above.)  When set to ON elm will ask you for permis-
          sion  to  append  a message to the end of an ordinary file.  When
          set to OFF elm will operate just as before and silently add  your
          message  to  the end of the specified file whether it is a folder
          or not.  (The default is OFF.)

          When set to ON this will allow you to be asked about creation  of
          new  mail  folders  in  your mail directory. (See maildir above.)
          When set to OFF elm will silently create new mail  folders  when-
          ever  a  copy of a message is going to be stored in a folder that
          does not already exist.  (The default is OFF.)

          This, in combination with the _s_e_n_t_m_a_i_l folder, will allow you  to
          have  silent  copies  of  all  outgoing mail made on the outbound
          step.  Whether a copy is saved and to which  folder  can  be  set
          prior to sending a message, see below.  (The default is OFF.)

          This, in combination with the _s_a_v_e_n_a_m_e option, governs how a copy
          of an outgoing message will be saved.  (See  _s_a_v_e_n_a_m_e  below  for
          details.)  (The default is OFF.)

          Enables  the  generation  of  and replies to forms type messages.
          See the _E_l_m _F_o_r_m_s _M_o_d_e _G_u_i_d_e for further information  about  mail
          forms.

          The  mail  system  has  a  habit  of deleting folders when you've



                                                                          9





          ()                                                             ()


          removed everything from them.  With this  option  turned  on,  it
          will  instead preserve them as zero-byte files.  This option does
          not apply to your incoming mailbox.  (The default is OFF.)

          If on, this tells _e_l_m that you have an HP  terminal  and  enables
          the  <NEXT>,  <PREV>, <HOME> and <SHIFT-HOME> keys.  (The default
          is OFF.)

          If turned off, this will inhibit the Menu display on all  of  the
          screen displays within the _e_l_m program.  (Note that this is over-
          ridden by the similar `-m' command line option, see below.)  (The
          default is ON.)

          If  turned  on, a user will get a copy of a message he sends to a
          mailing list he is on.  Otherwise the user will not get a copy of
          message sent to a mailing list he is on. (The default is OFF.)

          If  turned  off,  the primary recipients' address is displayed on
          your screen with their full names when you send a message.   Oth-
          erwise, only the full names are given.  (The default is ON.)

          If  this is enabled then commands that move through the folder by
          pages (the `+', `-', <right-arrow>, and <left-arrow>  keys)  will
          also  move the current message pointer to the top of that page of
          messages.  If this is turned off then moving  through  the  pages
          doesn't alter the current message pointer location.  (The default
          is OFF.)

          This boolean flag tells the mailer not to include the headers  of
          messages  when  copying a message into a file buffer for replying
          to or forwarding.  (The default is ON.)

          If this is turned on, the mailer will be  automatically  pointing
          to  the first new message in your folder when started, instead of
          at message #1.  This will only  be  effective  for  the  incoming
          mailbox  since other folders are not expected to have `new' mail.
          (The default is ON.)

          If this flag is ON and you use an external pager, when the  pager
          exits,  you  will  be prompted for a command rather than returned
          directly to the index screen.  If  the  external  pager  you  are
          using  exits  when  it  reaches end of file (i.e. end of the mes-
          sage), you should have this flag ON, otherwise the last screen of
          the displayed message will not be held but instead be immediately
          replaced by the index screen.  If  the  external  pager  you  are
          using  does  not  exit  until  you command it to exit, you have a
          choice.  If you usually want to see the index screen before issu-
          ing  a  command,  having the flag OFF will cut down out the extra
          keystroke needed to return to the index screen.  If  you  usually
          don't  need  to  see  the index screen to before issuing the next
          command, having the flag ON will allow you to proceed  with  your
          next  command  without  having  to  wait for the redrawing of the
          index screen.  (The default is ON.)




                                                                         10





          ()                                                             ()


          This is a boolean flag that defines the behavior of  the  program
          for  such  actions  as  deletion,  saving  a  message  and so on.
          Specifically, with this option enabled, as soon as mail is `dealt
          with'  the  program  moves you to the next message in the folder,
          with deletion, undeletion, saving a message and forwarding a mes-
          sage  all  being  treated  as  dealing with email in this manner.
          (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 con-
          tain lots of completely unrelated mail.  If this option is turned
          on,  _e_l_m  will  use  a  more intelligent algorithm -- on incoming
          mail, when you _s_a_v_e or _c_o_p_y it, the default mailbox  to  save  to
          (changeable  by  pressing anything other than <return> of course)
          is a folder that is the _l_o_g_i_n _n_a_m_e of the person who sent you the
          message.   Similarly,  when  sending  mail  out,  instead of just
          blindly saving it to the _s_e_n_t_m_a_i_l folder, _e_l_m will save it  to  a
          folder that is the login name of the person who is to receive the
          mail2.  2. When sending to a group, it's saved to the first  per-
          son in the list only.

          If  _f_o_r_c_e_n_a_m_e  is off (see above), the copy will be 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
          _r_e_c_o_r_d_e_d  _l_o_g _o_f _t_h_e _d_i_s_c_u_s_s_i_o_n _i_n _b_o_t_h _d_i_r_e_c_t_i_o_n_s and those oth-
          ers (random mailings) are all stuffed in the _s_e_n_t_m_a_i_l folder  for
          easy perusal and removal.

          Otherwise, if you always want to save copies of outgoing messages
          in separate folders by recipient login name, you'll want  to  set
          _f_o_r_c_e_n_a_m_e to on.  (The default for _s_a_v_e_n_a_m_e is ON.)

          If  on,  this tells _e_l_m that you wish to follow the convention of
          prefixing your signature with newline dash  dash  blank  newline.
          This  will  be placed in your message before your signature file.
          If off, the signature file is placed at the end  of  the  message
          without any prefix.

          If  on,  this  tells _e_l_m that you have an HP terminal with the HP
          2622 function key protocol and  that  you'd  like  to  have  them
          available while in the program.  (The default is OFF.)

          This  flag  allows you to have the first line of a message titled
          with:

                     MMeessssaaggee _N_/_M ffrroomm _u_s_e_r_n_a_m_e           _d_a_t_e aatt _t_i_m_e

          where all the information has been previously extracted from  the
          message.  This is especially useful if you weed out all the head-
          ers of each message with a large `weedout' list.  (The default is
          ON.)

          This   flag   allows   you   to   enable/disable   use   of   the



                                                                         11





          ()                                                             ()


          _t_e_r_m_c_a_p_/_t_e_r_m_i_n_f_o ttii//ttee  capabilities.   Many  terminal  emulators
          require  it  (not  the  least  of which is the OpenLook _c_m_d_t_o_o_l).
          Some terminal emulators clear the screen  on  ttee  (some  _x_t_e_r_ms).
          (Note  that  this  is overridden by the similar `-t' command line
          option, see below.)  (The default is ON.)

          This is a boolean flag that, in combination with the  ``weedout''
          list,  allows  you  to custom define the set of headers you would
          like to not have displayed while reading messages.  (The  default
          is ON.)

          One more thing: the format for each of the lines is:
               vvaarriiaabbllee == vvaalluuee
          and for boolean variables, _v_a_l_u_e can be `ON' or `OFF' only.

          For  a  better  idea  of how this all works, here's my _._e_l_m_/_e_l_m_r_c
          file.  While looking through it, notice that you can have lots of
          comments  and  blank  lines for readability and that you can also
          use `shell variables' and the `~'  metacharacter  for  your  home
          directory,  and they are expanded accordingly when read in by the
          mailer.  (Note that this was automatically saved by the _e_l_m  pro-
          gram on the fly from the o)ptions screen)
            ##
            ## ..eellmm//eellmmrrcc -- ooppttiioonnss ffiillee ffoorr tthhee EELLMM mmaaiill ssyysstteemm
            ##
            ## SSaavveedd aauuttoommaattiiccaallllyy bbyy EELLMM 22..44 ffoorr DDaavvee TTaayylloorr
            ##

            ## FFoorr yyeess//nnoo sseettttiinnggss wwiitthh ??,, OONN mmeeaannss yyeess,, OOFFFF mmeeaannss nnoo

            ## wwhheerree ttoo ssaavvee ccaalleennddaarr eennttrriieess
            ccaalleennddaarr == ~~//..AAggeennddaa

            ## wwhhaatt eeddiittoorr ttoo uussee ((""nnoonnee"" mmeeaannss ssiimmuullaattee BBeerrkkeelleeyy MMaaiill))
            eeddiittoorr == nnoonnee

            ## tthhee cchhaarraacctteerr ttoo uussee iinn tthhee bbuuiillttiinn eeddiittoorr ffoorr eenntteerriinngg ccoommmmaannddss
            eessccaappee == ~~

            ## tthhee ffuullll uusseerr nnaammee ffoorr oouuttbboouunndd mmaaiill
            ffuullllnnaammee == DDaavvee TTaayylloorr

            ## wwhheerree ttoo ssaavvee rreecceeiivveedd mmeessssaaggeess ttoo,, ddeeffaauulltt ffiillee iiss ""==rreecceeiivveedd""
            rreecceeiivveeddmmaaiill == $$HHOOMMEE//MMaaiill//rreecceeiivveedd

            ## wwhheerree ttoo ssaavvee mmyy mmaaiill ttoo,, ddeeffaauulltt ddiirreeccttoorryy iiss ""MMaaiill""
            mmaaiillddiirr == //uusseerrss//ttaayylloorr//MMaaiill

            ## pprrooggrraamm ttoo uussee ffoorr ddiissppllaayyiinngg mmeessssaaggeess ((''bbuuiillttiinn'' iiss rreeccoommmmeennddeedd))
            ppaaggeerr == bbuuiillttiinn

            ## pprreeffiixx sseeqquueennccee ffoorr iinnddeennttiinngg iinncclluuddeedd mmeessssaaggee tteexxtt iinn oouuttggooiinngg mmeessssaaggeess......
            pprreeffiixx == >>__




                                                                         12





          ()                                                             ()


            ## hhooww ttoo pprriinntt aa mmeessssaaggee ((''%%ss'' iiss tthhee ffiilleennaammee))
            pprriinntt == llpprr --PPllww22 %%ss

            ## wwhheerree ttoo ssaavvee ccooppiieess ooff oouuttggooiinngg mmaaiill ttoo,, ddeeffaauulltt ffiillee iiss ""==sseenntt""
            sseennttmmaaiill == //uusseerrss//ttaayylloorr//MMaaiill//mmaaiill..sseenntt

            ## tthhee sshheellll ttoo uussee ffoorr sshheellll eessccaappeess
            sshheellll == //bbiinn//ccsshh

            ## llooccaall ""..ssiiggnnaattuurree"" ffiillee ttoo aappppeenndd ttoo aapppprroopprriiaattee mmeessssaaggeess......
            llooccaallssiiggnnaattuurree == llooccaallssiigg

            ## rreemmoottee ""..ssiiggnnaattuurree"" ffiillee ttoo aappppeenndd ttoo aapppprroopprriiaattee mmeessssaaggeess......
            rreemmootteessiiggnnaattuurree ==  rreemmootteessiigg

            ## ddoo wwee wwaanntt ddaasshheess aabboovvee ssiiggnnaattuurreess?? ((NNeewwss 22..1111 ccoommppaattiibbiilliittyy aanndd ccoonnvveennttiioonn))
            ssiiggddaasshheess == OONN

            ## hhooww ttoo ssoorrtt ffoollddeerrss,, ""MMaaiillbbooxx"" bbyy ddeeffaauulltt
            ssoorrttbbyy == RReevveerrssee--RReecceeiivveedd

            ## hhooww ttoo ssoorrtt tthhee aalliiaass lliisstt,, ""NNaammee"" bbyy ddeeffaauulltt
            aalliiaassssoorrttbbyy == NNaammee

            ## sshhoouulldd tthhee ddeeffaauulltt bbee ttoo ddeelleettee mmeessssaaggeess wwee''vvee mmaarrkkeedd ffoorr ddeelleettiioonn??
            aallwwaayyssddeelleettee == OONN

            ## sshhoouulldd tthhee ddeeffaauulltt bbee ttoo ssttoorree rreeaadd mmeessssaaggeess ttoo tthhee ""rreecceeiivveedd"" ffoollddeerr??
            aallwwaayyssssttoorree == OONN

            ## sshhoouulldd tthhee ddeeffaauulltt bbee ttoo kkeeeepp uunnrreeaadd mmeessssaaggeess iinn tthhee iinnccoommiinngg mmaaiillbbooxx??
            aallwwaayysskkeeeepp == OONN

            ## sshhoouulldd wwee uussee tthhee ""-->>"" rraatthheerr tthhaann tthhee iinnvveerrssee vviiddeeoo bbaarr??
            aarrrrooww == OOFFFF

            ## sshhoouulldd tthhee mmeessssaaggee ddiissppoossiittiioonn qquueessttiioonnss bbee ddiissppllaayyeedd((OONN)) oorr
            ## aauuttoo--aannsswweerreedd((OOFFFF)) wwiitthh tthhee ddeeffaauulltt aannsswweerrss wwhheenn wwee rreessyynncc oorr cchhaannggee ffoollddeerrss??
            aasskk == OONN

            ## wwoouulldd yyoouu lliikkee ttoo bbee aasskkeedd ffoorr CCaarrbboonn--CCooppiieess iinnffoorrmmaattiioonn eeaacchh mmssgg??
            aasskkcccc == OONN

            ## aauuttoommaattiiccaallllyy ccooppyy mmeessssaaggee bbeeiinngg rreepplliieedd ttoo iinnttoo bbuuffffeerr??
            aauuttooccooppyy == OOFFFF

            ## tthhrreesshhoolldd ffoorr bboouunncciinngg ccooppiieess ooff rreemmoottee uuuuccpp mmeessssaaggeess......
            ## zzeerroo == ddiissaabbllee ffuunnccttiioonn..
            bboouunncceebbaacckk == 00

            ## ssaavvee aa ccooppyy ooff aallll oouuttbboouunndd mmeessssaaggeess??
            ccooppyy == OONN

            ## ddoo wwee wwaanntt ttoo bbee aabbllee ttoo mmaaiill oouutt AATT&&TT MMaaiill FFoorrmmss??



                                                                         13





          ()                                                             ()


            ffoorrmmss == OOFFFF

            ## sshhoouulldd wwee kkeeeepp ffoollddeerrss ffrroomm wwhhiicchh aallll mmeessssaaggeess aarree ddeelleetteedd??
            kkeeeeppeemmppttyy == OOFFFF

            ## wwee''rree rruunnnniinngg oonn aann HHPP tteerrmmiinnaall aanndd wwaanntt HHOOMMEE,, PPRREEVV,, NNEEXXTT,, eettcc......
            kkeeyyppaadd == OOFFFF

            ## sshhoouulldd wwee ddiissppllaayy tthhee tthhrreeee--lliinnee ''mmiinnii'' mmeennuu??
            mmeennuu == OONN
            ## wwoouulldd yyoouu lliikkee aa ccooppyy ooff aa mmeessssaaggee yyoouu sseenndd ttoo aann aalliiaass yyoouu aarree oonn??????
            mmeettoooo == OOFFFF

            ## wwhheenn uussiinngg tthhee ppaaggee ccoommmmaannddss ((++ -- <<NNEEXXTT>> <<PPRREEVV>>)) cchhaannggee tthhee ccuurrrreenntt
            ## mmeessssaaggee ppooiinntteerr......??
            mmoovveeppaaggee == OONN

            ## jjuusstt sshhooww tthhee nnaammeess wwhheenn eexxppaannddiinngg aalliiaasseess??
            nnaammeess == OONN

            ## wwhheenn mmeessssaaggeess aarree ccooppiieedd iinnttoo tthhee oouuttbboouunndd bbuuffffeerr,, ddoonn''tt iinncclluuddee hheeaaddeerrss??
            nnoohheeaaddeerr == OONN

            ## ssttaarrtt uupp bbyy ppooiinnttiinngg ttoo tthhee ffiirrsstt nneeww mmeessssaaggee rreecceeiivveedd,, iiff ppoossssiibbllee??
            ppooiinnttnneeww == OONN

            ## pprroommpptt ffoorr aa ccoommmmaanndd aafftteerr tthhee eexxtteerrnnaall ppaaggeerr eexxiittss??
            pprroommppttaafftteerr == OONN

            ## eemmuullaattee tthhee mmaaiillxx mmeessssaaggee iinnccrreemmeenntt mmooddee ((oonnllyy iinnccrreemmeenntt aafftteerr ssoommeetthhiinngg
            ## hhaass bbeeeenn ''ddoonnee'' ttoo aa mmeessssaaggee,, eeiitthheerr ssaavveedd oorr ddeelleetteedd,, aass ooppppoosseedd ttoo
            ## ssiimmppllyy eeaacchh ttiimmee ssoommeetthhiinngg iiss ttoouucchheedd))??
            rreessoollvvee == OONN

            ## ssaavvee mmeessssaaggeess,, iinnccoommiinngg aanndd oouuttbboouunndd,, bbyy llooggiinn nnaammee ooff sseennddeerr//rreecciippiieenntt??
            ssaavveennaammee == OONN

            ## ssaavvee oouuttbboouunndd mmeessssaaggeess bbyy llooggiinn nnaammee ooff sseennddeerr//rreecciippiieenntt eevveenn iiff tthhee
            ## aassssoocciiaatteedd ffoollddeerr ddooeessnn''tt aallrreeaaddyy eexxiisstt??
            ffoorrcceennaammee == OOFFFF

            ## aarree wwee rruunnnniinngg oonn aann HHPP tteerrmmiinnaall aanndd wwaanntt HHOOMMEE,, PPRREEVV,, NNEEXXTT,, eettcc......??
            ## ((tthhiiss iimmpplliieess ""kkeeyyppaadd==OONN"" ttoooo))
            ssooffttkkeeyyss == OOFFFF

            ## sseett tthhee mmaaiinn pprroommpptt ttiimmeeoouutt ffoorr rreessyynncchhiinngg......
            ttiimmeeoouutt == 6600

            ## ddiissppllaayy mmeessssaaggee ttiittllee wwhheenn ddiissppllaayyiinngg ppaaggeess ooff mmeessssaaggee??
            ttiittlleess == OONN

            ## aarree wwee ggoooodd aatt iitt??  00==bbeeggiinnnneerr,, 11==iinntteerrmmeeddiiaattee,, 22++ == eexxppeerrtt!!
            uusseerrlleevveell == 22




                                                                         14





          ()                                                             ()


            ## eennaabbllee tthhee wweeeeddoouutt lliisstt ttoo bbee rreeaadd??
            wweeeedd == OONN

            ## wwhhaatt hheeaaddeerrss II DDOONN''TT wwaanntt ttoo sseeee,, eevveerr..
            wweeeeddoouutt == ""PPaatthh::"" ""VViiaa::"" ""SSeenntt::"" ""DDaattee"" ""SSttaattuuss::"" ""OOrriiggiinnaall"" ""PPhhaassee""
                      ""SSuubbjjeecctt::"" ""FFrruuiitt"" ""SSuunn"" ""LLaatt"" ""BBuuzzzzwwoorrdd"" ""RReettuurrnn"" ""PPoosstteedd""
                      ""TTeelleepphhoonnee"" ""PPoossttaall--AAddddrreessss"" ""OOrriiggiinn"" ""XX--SSeenntt--BByy--NNmmaaiill--VV"" ""RReesseenntt""
                      ""XX--LLooccaattiioonn"" ""SSoouurrccee"" ""MMoooodd"" ""NNeeuurroonn"" ""LLiibbiiddoo"" ""TToo::"" ""XX--MMaaiilleerr::""
                      ""FFuullll--NNaammee::"" ""XX--HHPPMMAAIILL"" ""CCcc::"" ""cccc::"" ""MMmmddff"" ""NNeettwwoorrkk--"" ""RReeaallllyy--""
                      ""SSeennddeerr::"" ""PPoosstt"" ""MMeessssaaggee--"" ""RReellaayy--"" ""AArrttiiccllee--"" ""LLiinneess::""
                      ""AApppprroovveedd::"" ""XXrreeff::"" ""OOrrggaanniizzaattiioonn::"" ""**eenndd--ooff--uusseerr--hheeaaddeerrss**""

            ## aalltteerrnnaattiivvee aaddddrreesssseess tthhaatt II ccoouulldd rreecceeiivvee mmaaiill ffrroomm ((uussuuaallllyy aa
            ## ffoorrwwaarrddiinngg mmaaiillbbooxx)) aanndd ddoonn''tt wwaanntt ttoo hhaavvee lliisstteedd......
            aalltteerrnnaattiivveess == hhppllaabbss!!ttaayylloorr  hhppllddaatt!!ttaayylloorr  ttaayylloorr@@hhppllaabbss  ttaayylloorr%%hhppllddaatt


          TThheerree  aarree  aa  nnuummbbeerr ooff ccoommmmaanndd lliinnee ooppttiioonnss ttoo tthhee _e_l_m program,
          with only one that needs to be remembered:  ``-?''or  ``-h''  for
          help.

          The flags are:

          Arrow.   This  allows you to have the ``->'' arrow pointer rather
          than the inverse bar.  This can also be  set  in  the  _._e_l_m_/_e_l_m_r_c
          file -- check the boolean variable _a_r_r_o_w).

          Check only.  This is useful for expanding aliases without sending
          any mail.  The invocation is similar to invoking _e_l_m in send-only
          mode: eellmm --cc  _l_i_s_t_-_o_f_-_a_l_i_a_s_e_s

          Set debug level to _n.  Useful for debugging the _e_l_m program, this
          option  will  create  a  file  in  your  home  directory   called
          _E_L_M_:_d_e_b_u_g_._i_n_f_o,  then  output  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 _e_l_m for your system.

          Folder.  Read specified folder rather than the  default  incoming
          mailbox.   Note  that  you  can use the same metacharacters (e.g.
          `=') as when you _c_h_a_n_g_e _f_o_l_d_e_r_s from within the program.  You can
          also  use  the  same abbreviatory symbols (`!', `>' and `<'), but
          remember to ``single quote'' them in case they have special mean-
          ing in the shell you use.

          Help.  Gives a short list of all these options and exits.

          Include.   Include  prepared  file in edit buffer before sending.
          This facilitates using _e_l_m with  other  programs  that  interface
          with  mail (like news readers, for example).  There is an example
          of how to set up the rrnn news reading program to use  _e_l_m  in  _T_h_e
          _E_l_m _U_s_e_r_s _G_u_i_d_e.  The file specified is copied into the temporary
          file just before the signature file.




                                                                         15





          ()                                                             ()


          Keypad -- This option, when used, lets the _e_l_m program know  that
          you're  on  an HP terminal, and it can then interpret the <PREV>,
          <NEXT> and <HOME>/<SHIFT>-<HOME> keys accordingly.   If  you  are
          not on an HP terminal, it is recommended that you do NOT use this
          option. (See the _k_e_y_p_a_d option in the _._e_l_m_/_e_l_m_r_c section.)

          Keypad + softkeys.  The _e_l_m 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  the  _s_o_f_t_k_e_y_s  option  in the
          _._e_l_m_/_e_l_m_r_c section for more information.)

          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 mmeennuu option in the _._e_l_m_/_e_l_m_r_c section.)

          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 _T_h_e _E_l_m _U_s_e_r_s _G_u_i_d_e for more  infor-
          mation.

          Disable  use  of  the  _t_e_r_m_c_a_p_/_t_e_r_m_i_n_f_o ttii//ttee capabilities.  Many
          terminal emulators require it (not the  least  of  which  is  the
          OpenLook  _c_m_d_t_o_o_l).   Some terminal emulators clear the screen on
          ttee (some _x_t_e_r_ms).  (See also the uusseettiittee option in the _._e_l_m_/_e_l_m_r_c
          section.)

          Zero.  This causes the mailer not to be started if you don't have
          any mail.   This emulates the behavior of programs like  _B_e_r_k_e_l_e_y
          _M_a_i_l.

          All  the  above  flags default to reasonable options, so there is
          usually no need to use them.  Furthermore, the  most  used  flags
          are available through the _._e_l_m_/_e_l_m_r_c file.  See above.


          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 automati-
          cally on displaying the message. Metamail asks you for each  part
          of the message, if you want to display it. Metamail uses the dis-
          play 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 [[iinncclluuddee ffiillee ccoonntteennttttyyppee//ssuubbttyyppee eennccooddiinngg]] in the mes-
          sage body, at each of these key lines, a file would be  included,
          and will be a part of the message. The text lines before, between
          and after the _i_n_c_l_u_d_e lines go into extra Message parts  of  type



                                                                         16





          ()                                                             ()


          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  encod-
          ing, use the following line:

          [[iinncclluuddee ffoooo..ggiiff iimmaaggee//ggiiff bbaassee6644]]

          Or you want to include a text file which contains plain ASCII:

          [[iinncclluuddee ffoooo..ttxxtt tteexxtt//ppllaaiinn]]

          The _e_n_c_o_d_i_n_g parameter is optional and the default is 7bit.

          Refer  to  RFC1341  for  valid  _c_o_n_t_e_n_t_t_y_p_e_/_s_u_b_t_y_p_e  and _e_n_c_o_d_i_n_g
          parameter values.


          There are a few extra features that the mailer offers on outgoing
          mail that are worthy of mention:

          The  first,  and  probably  the most exciting feature3, is the 3.
          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
          _c_r_y_p_t_(_) library available due to licensing restrictions.  ability
          to send _e_n_c_r_y_p_t_e_d mail! To do this is extremely simple:  You need
          merely to have two key lines [[eennccooddee]] and [[cclleeaarr]] in the  message
          body.

          Consider the following outgoing message:
               JJooee,,
               RReemmeemmbbeerr tthhaatt ttaallkk wwee hhaadd aabboouutt AAmmyy??  WWeellll,, II ttaallkkeedd ttoo mmyy mmaannaaggeerr
               aabboouutt iitt aanndd hhee ssaaiidd......
               uuhhhh......bbeetttteerr eennccrryypptt tthhiiss......tthhee uussuuaall ``kkeeyy''......
               [[eennccooddee]]
               HHee ssaaiidd tthhaatt AAmmyy wwaass hhaavviinngg ffaammiillyy pprroobblleemmss aanndd tthhaatt iitt hhaadd bbeeeenn
               aaffffeeccttiinngg hheerr wwoorrkk..
               GGiivveenn tthhiiss,, II wweenntt aanndd ttaallkkeedd ttoo hheerr,, aanndd ttoolldd hheerr II wwaass ssoorrrryy ffoorr
               ggeettttiinngg aannggrryy..  SShhee ssaaiidd tthhaatt sshhee uunnddeerrssttoooodd..
               WWee''rree ffrriieennddss aaggaaiinn!!!!
               [[cclleeaarr]]
               EExxcciittiinngg ssttuuffff,, eehh??
                                             MMiikkee
          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 _e_l_m mailer prompts with:
               EEnntteerr eennccrryyppttiioonn kkeeyy:: @@
          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 _c_o_p_y option enabled, the program will  save  your
          copy  of  the  message  encrypted  too.   (This  is to ensure the



                                                                         17





          ()                                                             ()


          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 [[eennccooddee]] 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  _e_l_m  to receive it, since this mailer has a unique encryp-
          tion program) will be reading the message and  then  suddenly  be
          prompted:
               EEnntteerr ddeeccrryyppttiioonn kkeeyy:: @@
          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 [[cclleeaarr]] line signifies that the block to encrypt
          is done.

          Note that it is not possible currently to _p_i_p_e or _p_r_i_n_t encrypted
          mail.


          The  other option on outgoing mail is the ability to specify what
          section of the message you want to have archived  (assuming  _c_o_p_y
          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 line
               [[nnoossaavvee]]
          or
               [[nnoo ssaavvee]]
          appear by itself on a line.  This will be removed from the outgo-
          ing mail, and will indicate the last line of the message  in  the
          saved  mail.  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 _._e_l_m_/_e_l_m_h_e_a_d_e_r_s
          file, the mailer will include its contents immediately after  the
          regular  headers  of all outbound  mail.  The mailer supports use
          of the backquote convention  in  this  file.   Here's  a  typical
          _._e_l_m_/_e_l_m_h_e_a_d_e_r_s file.
            OOrrggaanniizzaattiioonn:: HHeewwlleetttt--PPaacckkaarrdd LLaabboorraattoorriieess
            PPhhoonnee:: ((441155))--555555--11223344
            OOppeerraattiinngg--SSyysstteemm:: ``uunnaammee --ssrrvv``
          These  lines will appear after all other header lines in the mes-
          sage.



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




                                                                         18





          ()                                                             ()


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

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

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

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

          Pipe.  This command allows you to pipe the current message or the
          set  of _t_a_g_g_e_d messages through other filters as you desire.  The
          shell used for the entire command will be either the  one  speci-
          fied in your _._e_l_m_/_e_l_m_r_c file, or the default shell (see above).

          Pattern  match.   This command, on the top level, allows the user
          to search through all the _f_r_o_m and _s_u_b_j_e_c_t lines of  the  current
          folder starting at the current message and continuing through the
          end.  If the first character of the pattern is a  `/',  then  the
          program  will try to match the specified pattern against _a_n_y line
          in the folder.  Again, this works from one after the current mes-
          sage 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 key _e_l_m
          will prompt ``Set current to  :  n'',  where  `n'  is  the  digit
          entered.   Enter  the  full  number  and terminate with <return>.
          Note that changing the current message to a message  not  on  the
          current  page  of  headers  will  result in a new page being dis-
          played.

          Scan message for calendar entries.  A rather novel feature of the
          _e_l_m   mailer   is   the   ability  to  automatically  incorporate



                                                                         19





          ()                                                             ()


          calendar/agenda information from a mail message  into  the  users
          calendar  file.  This is done quite simply; any line that has the
          pattern

               -> _c_a_l_e_n_d_a_r _e_n_t_r_y

          will be automatically added to the users _c_a_l_e_n_d_a_r file  (see  the
          _c_a_l_e_n_d_a_r  option  of  the  _._e_l_m_/_e_l_m_r_c file) if the `<' command is
          used.

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

               RReeggaarrddlleessss ooff tthhaatt mmeeeettiinngg,, hheerree''ss tthhee sseemmiinnaarr ssttuuffff::
               -->> 88//0033 33::0000ppmm:: AAII SSeemmiinnaarr wwiitthh IIrraa GGoollddsstteeiinn ooff HHPP LLaabbss

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

               88//0033 33::0000ppmm:: AAII SSeemmiinnaarr wwiitthh IIrraa GGoollddsstteeiinn ooff HHPP LLaabbss

          to the users _c_a_l_e_n_d_a_r file.

          Alias.  The alias system is a way  by  which  more  complex  mail
          addresses can be shortened for the mail user.  For example:
               jjooee,, bblleeuu   ==  JJooee BBlleeuu  ==   jjooee@@hhppffccllaa..SSSSOO..HHPP..CCOOMM
          which  allows  mail  to `joe' or `bleu' with the system expanding
          the address properly.  As is obvious, this saves remembering com-
          plex  addresses.   A  more  detailed  discussion  can be found in
          either the section entitled _T_h_e _A_l_i_a_s _S_y_s_t_e_m in this document  or
          _T_h_e _E_l_m _A_l_i_a_s _S_y_s_t_e_m _U_s_e_r_s _G_u_i_d_e.

          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  _f_o_r_w_a_r_d  command is similar, but it makes the return
          address _y_o_u 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 or messages are appended to the end,
          otherwise  the folder is created containing only the newly copied
          message.  The prompt for this command is `Copy to folder:  '.   A
          response  of <return> cancels the command and returns the user to
          the system prompt.  The usual filename metacharacters are  avail-
          able,  too.   That  is,  this  command expands filenames with `~'
          being your home directory and `=' being your  _m_a_i_l_d_i_r  directory,
          if  defined.   This  command  also allows you to use `>' for your
          _r_e_c_e_i_v_e_d_m_a_i_l folder, `<' for your _s_e_n_t_m_a_i_l folder,  `.'  for  the
          last folder you saved or copied a message to and `@alias' for the
          default folder for `alias'.  If you use a shell wildcard  in  the
          file  or  folder  name,  you will be given a list of all files or
          folders which match the wildcard.  Elm uses your  shell  to  find
          the  names,  so  whatever  wildcards  you  are  used to can work.
          Finally, you can also  enter  `?'  at  the  prompt  to  get  some
          detailed help.




                                                                         20





          ()                                                             ()


          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  opera-
          tion,  while  entering a filename causes the program to read that
          file as the new folder, if possible.  This command expands  file-
          names  with  `~'  being  your  home  directory and `=' being your
          _m_a_i_l_d_i_r directory, if defined.  This command also allows  you  to
          use `!' as an abbreviation for you incoming mailbox, `>' for your
          _r_e_c_e_i_v_e_d_m_a_i_l folder, `<' for your _s_e_n_t_m_a_i_l folder,  `.'  for  the
          last folder you saved or copied a message to and `@alias' for the
          default folder for `alias'.  If you use a shell wildcard  in  the
          file  or  folder  name,  you will be given a list of all files or
          folders which match the wildcard.  Elm uses your  shell  to  find
          the  names,  so  whatever  wildcards  you  are  used to can work.
          Finally, you can also enter `?' at the prompt

          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 dele-
          tion).

          This command allows you to easily mark for deletion all  messages
          that  have a specific pattern.  After <control>-D is pressed, the
          program will prompt for the string to match  (currently  it  only
          matches either the _f_r_o_m or _s_u_b_j_e_c_t lines of the message).

          This  is  the direct opposite command to the previous -- all mes-
          sages that match the specified pattern  can  have  any  mark  for
          deletion removed by using this command.

          Edit mailbox.  This allows you to modify the current mail file at
          a single keystroke.  This is mostly useful for editing down  mes-
          sages  before saving them.  Modifying headers should be done with
          extreme caution, as they contain routing  information  and  other
          vital stuff for full functionality.

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

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

          Group reply.  Identical to _r_e_p_l_y below, except that the  response
          is mailed to _a_l_l _r_e_c_i_p_i_e_n_t_s of the original message (except your-
          self -- see the _a_l_t_e_r_n_a_t_i_v_e_s  option  for  your  _._e_l_m_/_e_l_m_r_c  file



                                                                         21





          ()                                                             ()


          above).

          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 _w_e_e_d_l_i_s_t parame-
          ter in your _._e_l_m_/_e_l_m_r_c file).

          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 _v_i or any
          of  the  other  (precious few) screen oriented programs.  The `j'
          and <down> keys move the current message pointer down to the next
          message  skipping over any marked deleted (going to the next page
          if needed) and the `k' and <up> keys  move  the  current  message
          pointer  back  to  the  previous message skipping over any marked
          deleted (also changing pages if needed)

          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 exist-
          ing messages to be dealt with.  For example, let's say we  had  a
          folder  with four hundred messages in it, about four or five dif-
          ferent subjects.  We could then limit what we're dealing with  by
          using  the  _l_i_m_i_t  command.   Pressing  `l'  would  result in the
          prompt:
               CCrriitteerriiaa::
          to which we could  answer  ssuubbjjeecctt  _s_t_r_i_n_g,  ffrroomm  _s_t_r_i_n_g  or  ttoo
          _s_t_r_i_n_g.   In  our  example, we could use ssuubbjjeecctt pprrooggrraammmmiinngg as a
          criteria for selection.  Once we've limited our selections  down,
          the  screen will be rewritten with just the selected messages and
          the top line will change to have a message like:
                    FFoollddeerr iiss ""==eellmm"" wwiitthh 9922 sshhoowwnn oouutt ooff 112244 [[EEllmm 22..44]]
          We can further limit selections  by  entering  further  criteria,
          each time using the _l_i_m_i_t option again.

          To  clear all the criteria and get back to the `regular' display,
          simply enter _a_l_l 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  ``sub-
          ject'' and ``from'' as the basis for their criteria.

          Mail.  Send mail to a specified user.  The prompt that is associ-
          ated with this command is `Send mail to :'.   Entering  an  alias
          name  results  in the full address being rewritten in parenthesis
          immediately.  This prompt is followed by `Subject:' which  allows
          the  user to title their note.  The final field is `Copies to: ',
          which allows other people specified to receive "carbon copies" of
          the  message.   (See  the  _a_s_k_c_c  option  of  the _._e_l_m_/_e_l_m_r_c file
          above.)  Upon entering all three items the editor is invoked  and
          the message can be composed.




                                                                         22





          ()                                                             ()


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

          Options.  This full-screen display allows you to alter  the  set-
          tings  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
          _t_h_a_t before?) so isn't explained in too much detail here.

          Print.  This allows you to print out the current message  or  the
          tagged  messages  to a previously defined printer.  (See the sec-
          tion on the _._e_l_m_/_e_l_m_r_c discussing the _p_r_i_n_t variable.)

          Quit.  If you in the pager, you are returned to the index screen.
          If  you  are on the index screen, _e_l_m quits altogether.  However,
          if you have the option _a_s_k set, _e_l_m first  prompts  you  for  the
          disposition  of  the messages in the current folder.  If any mes-
          sages are marked for deletion, it  will  ask  if  you  want  them
          deleted.   If  the  current  folder is your incoming mailbox, you
          will also be asked if read messages  should  be  stored  in  your
          _r_e_c_e_i_v_e_d_m_a_i_l folder, and if unread messages should be kept in the
          incoming mailbox.  The default answers to these questions are set
          by   the   _._e_l_m_/_e_l_m_r_c   options  _a_l_w_a_y_s_d_e_l_e_t_e,  _a_l_w_a_y_s_s_t_o_r_e,  and
          _a_l_w_a_y_s_k_e_e_p.  However, if you elect to not store  your  read  mes-
          sages  (i.e.  keep  them)  it  is  presumed you want to keep your
          unread messages, too.

          Quick quit.  This behaves similar to the `q' command except  that
          you  are  never  prompted  for answers to the message disposition
          questions.  _E_l_m will dispose of messages according to the  values
          you  have  set  for  _a_l_w_a_y_s_d_e_l_e_t_e, _a_l_w_a_y_s_s_t_o_r_e, and _a_l_w_a_y_s_k_e_e_p in
          your _._e_l_m_/_e_l_m_r_c file.

          Reply.  Reply to the sender of the current message.  If the _a_u_t_o_-
          _c_o_p_y flag is OFF in your _._e_l_m_/_e_l_m_r_c file, the program will prompt
          ``Copy message? (y/n)'' to which the user can specify  whether  a
          copy  of the source message is to be copied into the edit buffer,
          or not.  If copied in, all lines from the message  are  prepended
          with  the  _p_r_e_f_i_x character sequence specified in your _._e_l_m_/_e_l_m_r_c
          file.

          Save to folder.  This command is like the `copy' command,  except
          that  the saved messages are marked for deletion, and that if you
          are saving just the current message, the current message  pointer
          is   incremented  afterwards  (see  the  _r_e_s_o_l_v_e  option  in  the
          _._e_l_m_/_e_l_m_r_c file above).  This command expands folder  names  with
          `~'  being  your home directory and `=' being your _m_a_i_l_d_i_r direc-
          tory, if defined.  This command also allows you to  use  `>'  for
          your  _r_e_c_e_i_v_e_d_m_a_i_l  folder, `<' for your _s_e_n_t_m_a_i_l folder, `.' for
          the last folder you saved or copied a message to and `@alias' for



                                                                         23





          ()                                                             ()


          the default folder for `alias'.

          Tag.   4. Currently only _p_i_p_e, _p_r_i_n_t, and _s_a_v_e support this.  Tag
          the current message for a later operation4.

          Tag all messages containing the specified pattern.  Since _t_a_g_g_i_n_g
          messages  can  occur  on screens other than the one being viewed,
          the _e_l_m system will first check to see if any messages  are  cur-
          rently  _t_a_g_g_e_d  and  ask  you if you'd like to remove those tags.
          After that, it will, similar to the _<_c_o_n_t_r_o_l_>_-_D function,  prompt
          for  a  pattern  to match and then mark all messages that contain
          the (case insensitive) pattern in  either  the  _f_r_o_m  or  _s_u_b_j_e_c_t
          lines.

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

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


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

          Specify folder for saving a copy to.  This allows you to override
          the _c_o_p_y, _f_o_r_c_e_n_a_m_e and _s_a_v_e_n_a_m_e options of your _._e_l_m_/_e_l_m_r_c file.
          It prompts you for the name of the folder where  a  copy  of  the
          outgoing  message is to be saved.  The default displayed is taken
          from those three _._e_l_m_/_e_l_m_r_c options and  can  be  changed.   This
          command  also  allows you to use `>' for your _r_e_c_e_i_v_e_d_m_a_i_l folder
          and `<' for your _s_e_n_t_m_a_i_l folder, and `=?' to  mean  ``condition-
          ally  save  by  name''  and `=' to mean ``unconditionally save by
          name''. (See the _s_a_v_e_n_a_m_e option above for details on  saving  by
          name.)   (Since you could next enter the _e_d_i_t _h_e_a_d_e_r_s 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 _s_e_n_d command.)  If you use a shell wildcard in  the
          file  or  folder  name,  you will be given a list of all files or
          folders which match the wildcard.  Elm uses your  shell  to  find
          the  names,  so whatever wildcards you are used to can work.  You
          can also enter `?' at the prompt to some help about saving.

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



                                                                         24





          ()                                                             ()


          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  _C_a_n_-
          _c_e_l_e_d_._m_a_i_l  in your home directory.  Otherwise it can be restored
          at the next _f_o_r_w_a_r_d, _m_a_i_l, or _r_e_p_l_y command  during  the  current
          session  of  _e_l_m. After issuing one of those commands you will be
          prompted with ``Recall last kept message?''

          Edit headers.  This  puts  you  into  the  _h_e_a_d_e_r  _e_d_i_t_i_n_g  _m_o_d_e,
          whereby  you  can edit to any of the various headers of your mes-
          sage.  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 pro-
          gram).   The  current  message  is  run  through  an  interactive
          spelling  correction  program  if  one is available.  The default
          spelling program is the GNU ispell program unless changed by  the
          person who installed Elm on your system.

          Make  form.   This  converts  the  message you have edited into a
          form.  (See _T_h_e _E_l_m _F_o_r_m_s _M_o_d_e _G_u_i_d_e for more details.)

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


          The _E_l_m program also supports a builtin editor for simple message
          composition that is very (very) similar to the simple line editor
          available from the _B_e_r_k_e_l_e_y _M_a_i_l system.

          To access it, you need merely to specify ``_e_d_i_t_o_r_=_n_o_n_e'' in  your
          _._e_l_m_/_e_l_m_r_c  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 `~'.  You can  specify
          a  different ``escape'' character in your _._e_l_m_/_e_l_m_r_c file, if you
          desire (see above).


          Print a brief help menu.

          Change the Blind-Carbon-Copy list.

          Change the Carbon-Copy list.

          Invoke the Emacs editor on the message, if possible.

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

          Invoke a user specified editor on the message.



                                                                         25





          ()                                                             ()


          Print out 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 UNIX command, entering the  output  of  the
          command  into  the  editor  buffer upon completion.  (For example
          ``~< who'' will include the output of the  _w_h_o  command  in  your
          message.)

          Execute  a  UNIX command if one is given (as in ``~!ls'') or give
          the user a shell  (either  from  their  shell  setting  in  their
          _._e_l_m_/_e_l_m_r_c file or the default).

          Add a line prefixed by a single `~' character.

          A  useful  note  is  that  the  `~f' and `~m' commands invoke the
          _r_e_a_d_m_s_g command, so you can pass parameters along too.  For exam-
          ple,  if  we  wanted  to  include a message from Joe, without any
          headers, 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 _e_l_m 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 appar-
          ent; rather than remembering an address of the form:
               hhoosstt11!!hhoosstt22!! ...... !!hhoossttNN!!uusseerr
          the user merely has to remember a single word.

          Two alias tables are available for a each user within _e_l_m, namely
          the system alias file and the  user's  alias  file.   The  system
          alias  file  is created and maintained (by the system administra-
          tor) by editing the file _S_Y_S_T_E_M___A_L_I_A_S_E_S as defined in  the  `sys-
          defs.h'  file  (see _T_h_e _E_l_m _C_o_n_f_i_g_u_r_a_t_i_o_n _G_u_i_d_e) and as described
          in the documentation with the _n_e_w_a_l_i_a_s command, then running  the
          _n_e_w_a_l_i_a_s program.

          An  individual  user  can  also have an alias file which works in
          conjunction with the system aliases.  To do this, he needs merely
          to  enter  the  alias menu system and create aliases with the `a'
          (_A_l_i_a_s _c_u_r_r_e_n_t _m_e_s_s_a_g_e) or `n' (_M_a_k_e _n_e_w _a_l_i_a_s) commands.  Alter-
          natively,  the user can peruse the documentation for the _n_e_w_a_l_i_a_s
          command and create a file as indicated therein.  After  executing
          the  program,  the  aliases will be available for use from within
          _e_l_m.



                                                                         26





          ()                                                             ()


          Please refer to _T_h_e _E_l_m _A_l_i_a_s _U_s_e_r_s _G_u_i_d_e for more helpful  hints
          and so on.


          Within _e_l_m, however, the alias system acts as an entirely differ-
          ent program, with its own display, own commands,  and  own  mini-
          menu.   The  aliases  are presented in a list similar to the main
          screen.  The menu replaces the standard mini-menu with:

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

           AAlliiaass ccoommmmaannddss::  ??==hheellpp,, <<nn>>==sseett ccuurrrreenntt ttoo nn,, //==sseeaarrcchh ppaatttteerrnn
          aa))lliiaass ccuurrrreenntt mmeessssaaggee,, dd))eelleettee,, ee))ddiitt aalliiaasseess..tteexxtt,, ff))uullllyy eexxppaanndd aalliiaass,,
          ll))iimmiitt ddiissppllaayy,, mm))aaiill,, nn))eeww aalliiaass,, rr))eettuurrnn,, tt))aagg,, uu))nnddeelleettee,, oorr ee((xx))iitt

          AAlliiaass:: @@
          ----------------------------------------------------------------------------------------------------------------------------------------------------------------


          The commands are:

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

          Display the current alias address.  The  alias  address  is  dis-
          played  below  the alias menu.  This command allows you to verify
          the address for a person or the contents of a group alias.

          Pattern match.  This command allows the user  to  search  through
          all the _a_l_i_a_s and _u_s_e_r_n_a_m_e entries for the alias list starting at
          the current alias and continuing through the end.  If  the  first
          character  of  the  pattern  is a `/', then the program will also
          include the _c_o_m_m_e_n_t and the fully expanded _a_d_d_r_e_s_s 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.  For
          further information, please see _T_h_e _E_l_m _A_l_i_a_s _S_y_s_t_e_m _U_s_e_r_s _G_u_i_d_e.

          Delete  or  undelete  an  alias.  This allows the user to mark an
          alias for deletion in the same fashion as on the main menu.   The
          deletions  are  not  actually made until the user _r_)_e_t_u_r_n_s to the
          main menu or resyncs the display (with the `$'  command).   Dele-
          tions  on  system  aliases are not allowed.  These commands (plus
          the <control>-D and <control>-U versions) behave  identically  to
          their main menu counterparts.

          Edit  the  _._e_l_m_/_a_l_i_a_s_e_s_._t_e_x_t file.  The user alias file is edited



                                                                         27





          ()                                                             ()


          using the editor defined  in  _e_d_i_t_o_r  in  your  _._e_l_m_/_e_l_m_r_c  file.
          _n_e_w_a_l_i_a_s is run after the edit.

          Display _f_u_l_l_y _e_x_p_a_n_d_e_d alias.  The currently highlighted alias is
          fully expanded and displayed to the user.  This  is  most  useful
          when working with group alias in the alias database.

          Limit the display.  You can limit the display by alias type (per-
          son/group or user/system) or by search pattern on name or  alias.
          Otherwise,  this works exactly like the limit command on the main
          menu.

          Send mail to the current alias.  A new mail message will be  sent
          to  the  person  or  group  specified  by the selected alias.  If
          aliases are currently tagged the message will be  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 will prompt for a unique alias  name
          and then for an address.  If aliases are tagged you will be asked
          if you want to create a group alias from the tagged aliases.  The
          information   provided   will   be   added   to  your  individual
          aliases.text file (_$_H_O_M_E_/_._e_l_m_/_a_l_i_a_s_e_s_._t_e_x_t) and then added to the
          database (upon the next alias resync).

          Return.   Return to the main level of the _e_l_m program.  Any pend-
          ing 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.
          _E_l_m  will dispose of aliases according to the values you have set
          for _a_l_w_a_y_s_d_e_l_e_t_e in your _._e_l_m_/_e_l_m_r_c file.

          Tag.  5. Currently only _m_a_i_l and _n_e_w _a_l_i_a_s support this.  Tag the
          current alias for a later operation5.

          Exit  alias  menu.   Exits  the alias menu without processing any
          deletions.  Aliases marked for deletion are unmarked.   Addition-
          ally,  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 main menu.  (See the previous sec-
          tion on _C_o_m_m_a_n_d_s in this guide.)


          _E_l_m can handle several standard UNIX _s_i_g_n_a_l_s to do  some  special
          processing.  _S_i_g_n_a_l_s are interrupt messages sent from one program
          to another.  No detailed messages are sent, but a  properly  con-
          figured program (such as _e_l_m) can watch for and handle these sig-
          nals.

          In particular, _e_l_m watches for the following  _s_i_g_n_a_l_s  and  takes



                                                                         28





          ()                                                             ()


          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 termi-
          nal/modem/whatever which you have been using with _e_l_m has  become
          detached  from  the  system where _e_l_m was running.  When _e_l_m gets
          this signal, it aborts all the pending operations and exits leav-
          ing  your  mailbox  unchanged.   This is the first user-definable
          signal.  When _e_l_m gets this signal, it recieves any pending mail,
          performs  all the pending operations (deletes), and exits leaving
          all unread mail marked as new.  This is the same as giving the  _$
          and  _X commands.  This is the second user-definable signal.  When
          _e_l_m gets this signal, it recieves any pending mail, performs  all
          the  pending  operations  (deletes), and exits leaving all unread
          mail marked as old.  This is the same as giving the _$ and _Q  com-
          mands.

          You  would  only use these signals youself under the most unusual
          circumstances.  For example, suppose you were using _e_l_m  to  read
          mail  on _h_o_s_t___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 build-
          ing, and want to read your mail to see what the  emergency  is  -
          but you can't, because _e_l_m is still running at your desk.

          What  you  really  want  is  one  of  the  scenarios given in the
          description of _H_U_P, _U_S_R_1 or _U_S_R_2.  Use your local _p_s  command  to
          find  out  what  the _p_r_o_c_e_s_s _n_u_m_b_e_r of your _e_l_m session is.  Then
          give the command _k_i_l_l _-_X_X_X _p_r_o_c_e_s_s___n_u_m_b_e_r

          where _X_X_X is either _H_U_P, _U_S_R_1 or _U_S_R_2 and _p_r_o_c_e_s_s___n_u_m_b_e_r  is  the
          process  number for your remote _e_l_m session.  Your remote session
          will terminate with the actions noted above.


          There are some additional facilities available in the _e_l_m  mailer
          for  those  people who are knowledgeable about mail protocols, or
          trying to debug/track down a problem.

          The `h' _h_e_a_d_e_r_s command at the outermost level of the mailer will
          display  the  current message ignoring the current setting of the
          `weed' option.  This is most useful for  answering  questions  of
          the  form  "I  wonder what this guy put in his header?" and such.
          This command does not show up on  the  mini-menu  because  it  is
          somewhat esoteric, but it does appear on the `?' help screen (can
          you find it there, though?).

          The `@' command at the outermost level of the mailer will  output
          a  screen of debugging information, including the number of lines
          and offsets of each of the messages in the current mailbox.

          The `#' command at the outermost level of the mailer will display
          the entire stored `record structure' for the current message.



                                                                         29





          ()                                                             ()


          The  `%' command will display the full computed return address of
          the current message.

          Starting up _e_l_m with the "-d" debug option  will  create  a  file
          called _E_L_M_:_d_e_b_u_g_._i_n_f_o in your home directory and contain a wealth
          of useful information (to me, at least!) to aid in tracking  down
          what errors are occurring and why.


          If  there are any problems with the mailer,  please try to recre-
          ate the error with the debug option enabled and set to the  high-
          est level (11) before sending defect reports my way.



          One final note: all error names reported by the program are docu-
          mented in the AT&T System V Interface Definition Reference Manual
          in _e_r_r_n_o(2).







































                                                                         30


