


          ()                                                             ()














                          TThhee EEllmm AAlliiaass SSyysstteemm UUsseerrss GGuuiiddee




                        _W_h_a_t _a_l_i_a_s_e_s _a_r_e _a_n_d _h_o_w _t_o _u_s_e _t_h_e_m
                               _i_n _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 AAlliiaass SSyysstteemm UUsseerrss 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



          This  document is intended as a supplement to the _E_l_m _U_s_e_r_s _G_u_i_d_e
          and is only of interest to those users  desiring  more  knowledge
          about  how  aliases  work  and how to create strange and exciting
          aliases for their systems (okay, so maybe it's  not  _t_h_a_t  excit-
          ing!)   This  document  is broken up into the following sections;
          user  aliases,  group  aliases,  system  aliases,   editing   and
          installing new aliases, general warnings and other chit-chat.


          The  simplest  type  of  aliases in the EEllmm system are individual
          user aliases.  These are made up of three parts;
               _a_l_i_a_s_n_a_m_e _l_i_s_t  =  _u_s_e_r_n_a_m_e  =  _a_d_d_r_e_s_s
          Where the _a_l_i_a_s_n_a_m_e _l_i_s_t is either a single aliasname1 1.  alias-
          names  can  be any combination of letters, numbers, dashes (`-'),
          periods (`.'), or underscores (`_').  Letter case is not signifi-
          cant.   That  is  `FRED'  and `Fred' are identical.  or a list of
          aliasnames separated by commas.  Aliasnames are case  insensitive
          and  will  be  converted  to  all lower case by the alias system.
          _U_s_e_r_n_a_m_e is used to indicate the full `real name'  of  the  user.
          For  example,  if you had an alias for `taylor' to get to me, the
          _u_s_e_r_n_a_m_e field would contain `Dave Taylor' or perhaps `Dave  Tay-
          lor at HP' or some other permutation.  The name can optionally be
          entered in the format of `Taylor; Dave'.  When this is done,  the
          alias   system  can  sort  aliases  on  a  last  name  basis  for



                                                                          1





          ()                                                             ()


          presentation on the alias menu within eellmm.  EEllmm uses this  infor-
          mation  to  add  the users full name to the addresses of outbound
          mail to get more readable addresses.  No matter  which  format  a
          name  is  entered, eellmm will display it and put it in mail headers
          the way you would  expect  (i.e.,  `Dave  Taylor').   _A_d_d_r_e_s_s  is
          either  the users full electronic mail address or, if your system
          uses a smart mailer, the minimum address needed  to  specify  the
          destination.  For example, say smart mailer contained information
          on how to get to machine `hp-sdd' and I wanted to have an address
          for  my friend Ken there -- I could have his address specified as
          simply `ken@hp-sdd' (or alternatively `hp-sdd!ken' since the  two
          are  functionally  equivalent).   Let's  get on to some examples,
          shall we?  Consider this excerpt from  my  own  _._e_l_m_/_a_l_i_a_s_e_s_._t_e_x_t
          file;

               ## MMaaiill aalliiaasseess ffoorr DDaavvee TTaayylloorr
               ## FFrriieennddss ffrroomm UUCCSSDD
               aaddddiiee          == AAddddiiee SSiillvvaa    == aaddddiiee@@hhpp--ssdddd..SSDDDD..HHPP..CCOOMM
               ffrraannkk,,mmiinnjjaarreezz == FFrraannkk MMiinnjjaarreezz == MMiinnjjaarreezz..VVeerriiffyy@@ddoocckkmmaasstteerr..ddddnn..mmiill
               ppiizzzziinnii        == KKeenn PPiizzzziinnii    == hhppllaabbss!!uuccbbvvaaxx!!uuccddaavviiss!!ppaaii!!kkeenn
               ggeeoorrggee         == BBuurrddeellll;; GGeeoorrggee PP..,, FFaammoouuss GGTT GGuuyy== ggbbuurrddeellll@@mmaattdd..ggaatteecchh..eedduu

          Note that the alias for Frank Minjarez has two _a_l_i_a_s_n_a_m_e_s associ-
          ated with it, ffrraannkk and mmiinnjjaarreezz.  Also notice that the first and
          second  aliases  use  the  Internet  style  naming  convention of
          _u_s_e_r_@_m_a_c_h_i_n_e  whereas  the  third  uses  the  UUCP  notation   of
          _m_a_c_h_i_n_e_!_u_s_e_r.   The fourth alias illustrates two features for the
          _u_s_e_r_n_a_m_e field.  An individual's name can be entered in the  form
          of `lastname; firstname' which allows the alias system to be able
          to sort alias names on a last name basis.  Additionally, any text
          after  the  comma  is  treated as a comment.  It is stored in the
          alias file and displayed on the alias menu but will not appear in
          the  comment field (between the ()'s) in the header of a message.
          This allows you to enter useful notes about  an  individual  that
          you would not otherwise want to include on the To: line of a mail
          message.  For the most part, the notational format is transparent
          within  the alias file -- the only time it _d_o_e_s make a difference
          is if you have to specify more than the machine that the user  is
          receiving  mail  on  (as in the third example above).  Suffice to
          say that if you must specify any sort  of  uucp  route  that  you
          should  use  the uucp notation as much as possible to ensure that
          the system expands  the  correct  machine  name.   Similarly,  if
          you're  bouncing mail through different Internet sites (to get to
          a foreign system, as in the example below)  you  should  use  the
          notation that system expects:

                              lliissttsseerrvv%%bbyyuuaaddmmiinn..BBIITTNNEETT@@rruuggtteerrss..eedduu


          After  the confusion of user aliases, group aliases are even more
          fun!  For the most part the notation is very similar;

                         _a_l_i_a_s_n_a_m_e _l_i_s_t   =   _g_r_o_u_p_n_a_m_e   =   _l_i_s_t _o_f  _p_e_o_-
          _p_l_e



                                                                          2





          ()                                                             ()


          Where  _a_l_i_a_s_n_a_m_e _l_i_s_t and _g_r_o_u_p_n_a_m_e are exactly equivalent to the
          corresponding fields in user aliases.  The  interesting  part  is
          the  _l_i_s_t  _o_f  _p_e_o_p_l_e  field;  this field is actually in the same
          notation as the aliasname list, so it's really quite easy to cre-
          ate.  It's best to illustrate by example:

               ffrriieennddss,, mmyyppaallss == TThhee GGaanngg ooff SSiixx == jjooee,, llaarrrryy,, mmaarryy,, jjooaannnnaa,,
                                                   nnaannccyy,, mmiicchhaaeell

          (Notice that you can continue onto as many lines as you'd like so
          long as each additional line start with either a SPACE or  a  TAB
          character)  At  times  it  may  be desirable to send a message to
          everyone in the group except one or  two  people.   This  can  be
          accomplished  by adding the individual(s) actual id(s) to the To:
          list, preceded by a minus sign "-".  For  example,  if  you  were
          having  a  surprise  party for nancy from the above group and you
          wanted to discuss the details with the others, you could mail the
          message to:

               ffrriieennddss --nnaannccyy

          Unlike in prior versions of eellmm, group aliases need not be a _p_r_e_-
          _v_i_o_u_s_l_y _d_e_f_i_n_e_d _a_l_i_a_s or a valid  mail  address  on  the  current
          machine.   Any valid delivery address, local user, or prior local
          or group alias may now be part of a group alias.


          System aliases are functionally equivalent to the individual  EEllmm
          alias  lists  each  EEllmm  user  has  (both  user aliases and group
          aliases) but are _r_e_a_d _o_n_l_y for everyone but the  EEllmm  administra-
          tor.   The format of the file is identical to the users file, and
          the only difference is that this file is expected to  be  located
          in  the  directory  that  contains  the _s_y_s_t_e_m___h_a_s_h___f_i_l_e and _s_y_s_-
          _t_e_m___d_a_t_a___f_i_l_e files (see the _E_l_m  _C_o_n_f_i_g_u_r_a_t_i_o_n  _G_u_i_d_e  for  more
          details on these variables).  Simply create the system alias file
          in the specified directory as you would a normal alias file,  and
          install  it  the  same  way  (see  the following section for more
          details on that).  Voila!!


          To install new aliases, you need merely to create, or modify, the
          file  _._e_l_m_/_a_l_i_a_s_e_s_._t_e_x_t  until  you're  satisfied  with it and it
          meets the requirements discussed above.   You  can  then  try  to
          install it with the command;

                         $ nneewwaalliiaass

          which  will either report back the number of aliases installed or
          any errors encountered trying to parse and store the given  alias
          list.  Note that blank lines are no problem and that comments are
          not only allowed but actually encouraged, and must  have  `##'  as
          the first character of each comment line.





                                                                          3





          ()                                                             ()


          Probably  the biggest question you have in your mind right now is
          ``But how the heck does this relate to my existing _B_e_r_k_e_l_e_y  _M_a_i_l
          aliases and the lower-level _s_e_n_d_m_a_i_l alias system??''  Well, rest
          assured that if you _r_e_a_l_l_y want to have your aliases down in  the
          transport you can.  No problem.  All you'll need to do is to turn
          off the address validation routine in EEllmm.   And  for  those  ex-
          _B_e_r_k_e_l_e_y  _M_a_i_l fans, you can translate your aliases into the for-
          mat that EEllmm wants by running them through the _a_w_k script  listed
          in the appendix.  Finally, if you have any problems or questions,
          try looking in the _n_e_w_a_l_i_a_s manual entry.















































                                                                          4





          ()                                                             ()


                                    AAppppeennddiixx OOnnee
                     AAnn AAWWKK SSccrriipptt ffoorr TTrraannssllaattiinngg AAlliiaasseess ffrroomm
          aa _B_e_r_k_e_l_e_y _M_a_i_l ````..mmaaiillrrcc'''' FFiillee ttoo aann _E_l_m ````..eellmm//aalliiaasseess..tteexxtt''''
                                        FFiillee


          BBEEGGIINN {{ pprriinntt ""## EEllmm ..eellmm//aalliiaasseess..tteexxtt ffiillee,, ffrroomm aa ..mmaaiillrrcc ffiillee......""
               pprriinntt """"
               }}
          nneexxtt__lliinnee ==== 11 {{
               nneexxtt__lliinnee == 00;;
               ggrroouupp == """"
               ffoorr ((ii == 11;; ii <<== NNFF;; ii++++)) {{
                 iiff ((ii ==== NNFF &&&& $$ii ==== ""\\\\"")) sseepp == """"
                 eellssee                       sseepp == "",, ""
                 iiff (($$ii ==== ""\\\\"")) {{
                   ggrroouupp == sspprriinnttff((""%%ss,,"",, ggrroouupp))
                   nneexxtt__lliinnee == 11;;
                 }}
                 eellssee iiff ((lleennggtthh((ggrroouupp)) >> 00))
                   ggrroouupp == sspprriinnttff((""%%ss%%ss%%ss"",, ggrroouupp,, sseepp,, $$ii));;
                 eellssee
                   ggrroouupp == $$ii;;
                 }}
                 pprriinntt ""\\tt"" ggrroouupp
               }}
          $$11 ~~ //[[AAaa]]lliiaass || [[GGgg]]rroouupp// {{
               iiff (( NNFF ==== 33))
                 pprriinntt $$22 "" == uusseerr aalliiaass == "" $$33;;
               eellssee {{
                 ggrroouupp == """"
                 ffoorr ((ii == 33;; ii <<== NNFF;; ii++++)) {{
                   iiff ((ii ==== NNFF &&&& $$ii ==== ""\\\\"")) sseepp == """"
                   eellssee        sseepp == "",, ""
                   iiff (($$ii ==== ""\\\\"")) {{
                     ggrroouupp == sspprriinnttff((""%%ss,,"",, ggrroouupp))
                     nneexxtt__lliinnee == 11;;
                   }}
                   eellssee iiff ((lleennggtthh((ggrroouupp)) >> 00))
                     ggrroouupp == sspprriinnttff((""%%ss%%ss%%ss"",, ggrroouupp,, sseepp,, $$ii));;
                   eellssee
                     ggrroouupp == $$ii;;
                   }}
                   pprriinntt $$22 "" == ggrroouupp aalliiaass == "" ggrroouupp;;
                 }}
               }}

          Note: this script is contained in  the  release  under  the  name
          ``mailrc.awk'' in the utilities directory ``utils''.








                                                                          5


