


SMAIL(5)                                                 SMAIL(5)


NNAAMMEE
       /usr/lib/mail/* - configuration files used by smail

SSYYNNOOPPSSIISS
       //uussrr//lliibb//mmaaiill//ccoonnffiigg
       //uussrr//lliibb//mmaaiill//qquuaalliiffyy
       //uussrr//lliibb//mmaaiill//ddiirreeccttoorrss
       //uussrr//lliibb//mmaaiill//rroouutteerrss
       //uussrr//lliibb//mmaaiill//ttrraannssppoorrttss
       //uussrr//lliibb//mmaaiill//rreettrryy
       //uussrr//lliibb//mmaaiill//mmeetthhooddss//

DDEESSCCRRIIPPTTIIOONN
       The  _c_o_n_f_i_g,  _q_u_a_l_i_f_y, _d_i_r_e_c_t_o_r_s, _r_o_u_t_e_r_s, _t_r_a_n_s_p_o_r_t_s, and
       _r_e_t_r_y files describe the rules used by  _s_m_a_i_l(8)  in  pro-
       cessing and delivering mail.  In addition to these config-
       uration files, _m_e_t_h_o_d files may be pointed to  by  entries
       in  the  _r_o_u_t_e_r_s  file.   The actual paths may differ from
       system to system and, in  addition,  the  paths  to  these
       files,  with  the exception of the config file itself, may
       be changed in the config file.

       _S_m_a_i_l is compiled  with  a  default  configuration.   This
       default configuration is suitable for many sites that com-
       municate to other systems via UUCP,  or  SMTP.   For  such
       sites,  no  configuration  files are needed, though it may
       still be convenient to have a _c_o_n_f_i_g file  for  attributes
       (described  below) such as ssmmaarrtt__uusseerr and ssmmaarrtt__ppaatthh.  See
       the section DDEEFFAAUULLTT CCOONNFFIIGGUURRAATTIIOONN for more details.

CCOOMMMMOONN FFOORRMMAATT CCOONNVVEENNTTIIOONNSS
       In all files used by _s_m_a_i_l, entries begin with a character
       in  column 1 that is not white space or the character `#'.
       Entries continue until the next line which begins  with  a
       character  other than white-space or the character `#', or
       until the end of the file is encountered.

       Comments begin with the character `#', in any  column  and
       end  at  the next newline.  A `#' in the first column does
       not signify the end of an entry.

       Variable and attribute names in  configuration  files  are
       formed  of characters from the set of letters, numbers and
       the character `_'.

       String values may be enclosed in double quotes,  in  which
       case  backslash  escapes are processed as in C.  If string
       values are not enclosed in double quotes, the  values  are
       limited  to characters from the set of letters, digits and
       the characters !! @@ $$ %% ^^ && ** -- __ ++ ~~ // ?? || << >> :: [[ ]] {{ }} ..
       '' and ``.

       Numbers  are  as  in  C,  with a prefix of 0 specifying an
       octal constant and a prefix of 0x specifying a hexadecimal



Local                    1 February 1988                        1





SMAIL(5)                                                 SMAIL(5)


       constant.   In  addition,  a  suffix of _k or _K specifies a
       multiplier of 1024 and a suffix of _m or _M specifies a mul-
       tipler of 1048576, or 1024K.

SSttrriinngg EExxppaannssiioonn
       Some  string values will be variable and filename expanded
       before being used.  When this is done, certain substrings,
       beginning with $, will be replaced by the value of a _s_m_a_i_l
       variable.  The names of expansion variables are  either  a
       single  character, or are multiple characters from the set
       of letters, digits and underscore.  A  variable  name  can
       also  be enclosed between { and }, to isolate the variable
       name from the surrounding text.

       In addition to variables, a number of meta-expansions  can
       be used.  These expansions are of the form:

              ${_m_e_t_a___n_a_m_e:_n_a_m_e}

       where  _m_e_t_a___n_a_m_e  defines some operation to perform on the
       value of the variable _n_a_m_e.  Multiple meta-expansions  can
       be  specified,  and they are processed from right to left.
       For example:

              ${lc:strip:user}

       This strips quotes from the value of the variable uusseerr and
       then converts characters to lower case.

       When  a  string  to  be expanded begins with the character
       `~', a home directory is  substituted.   If  only  `~'  is
       given,  or  `~/' is given, then the home directory associ-
       ated with an address is substituted.  If the form ``~_u_s_e_r_-
       _n_a_m_e''  is  given, where _u_s_e_r_n_a_m_e is the name of a user on
       the local host, that user's home directory is substituted.

   CCoonnddiittiioonnaallss
       Conditionals  can be used to include text based on whether
       or not a particular value is non-empty.  Conditionals  are
       of the form:

              ${if _c_o_n_d_i_t_i_o_n [:]_s_t_r_i_n_g}

       or

              ${if _c_o_n_d_i_t_i_o_n {_s_t_r_i_n_g_1} {_s_t_r_i_n_g_2}}

       The  first  form includes _s_t_r_i_n_g if the condition is true.
       The second form includes _s_t_r_i_n_g_1 if the condition is true,
       or  _s_t_r_i_n_g_2  if  the condition is false.  For readability,
       eellssee can be inserted before the _e_l_s_e clause.

       Possible conditions are:




Local                    1 February 1988                        2





SMAIL(5)                                                 SMAIL(5)


       !_c_o_n_d_i_t_i_o_n          Negate the truth value of _c_o_n_d_i_t_i_o_n.

       ddeeff::_v_a_r_i_a_b_l_e        True if the given  expansion  variable
                           is defined and is non-empty.

       hheeaaddeerr::_h_e_a_d_e_r       True  if the message contains a header
                           field named _h_e_a_d_e_r.

       oorriiggiinn::llooccaall        True   if   the   message   originated
                           locally.

       oorriiggiinn::rreemmoottee       True  if the message was received from
                           a remote machine.

       ddeesstt::llooccaall          True if the message is being delivered
                           to an address on the local host.

       ddeesstt::rreemmoottee         True if the message is being delivered
                           to a remote host.

       xxffoorrmm::_t_r_a_n_s_f_o_r_m_a_t_i_o_n
                           True  if  the   transformation   being
                           applied  to  the message, for delivery
                           by the assigned transport, matches the
                           given  type.   Valid types are: llooccaall,
                           iinneett, uuuuccpp, or nnoonnee.

       eeqq{{_v_a_r_i_a_b_l_e}}{{_s_t_r_i_n_g}}
                           True if the given  expansion  variable
                           matches the given string.

       oorr{{{{_c_o_n_d_i_t_i_o_n}}......}}  True  if  any  of the given conditions
                           are true.

       aanndd{{{{_c_o_n_d_i_t_i_o_n}}......}} True if all of  the  given  conditions
                           are true.

   FFiillee llooookkuuppss
       String  expansions  can use lookup procedures to convert a
       key, taken from a an expansion  variable,  into  a  string
       found  in  a  file  or  other  accessible database.  These
       expansions are defined using the form:

              ${lookup:_v_a_r_i_a_b_l_e:_p_r_o_t_o{_f_i_l_e_-_e_x_p_a_n_s_i_o_n}   [:]_f_o_u_n_d_-
              _s_t_r_i_n_g}

       or

              ${lookup:_v_a_r_i_a_b_l_e:_p_r_o_t_o{_f_i_l_e_-_e_x_p_a_n_s_i_o_n}
                  {_f_o_u_n_d_-_s_t_r_i_n_g} {_n_o_t_-_f_o_u_n_d_-_s_t_r_i_n_g}

       Lookups operate by taking the value of the indicated vari-
       able as a key for lookup in  a  file.   The  _p_r_o_t_o  string
       defines  how  the  lookup  is  to  be performed, and _f_i_l_e_-



Local                    1 February 1988                        3





SMAIL(5)                                                 SMAIL(5)


       _e_x_p_a_n_s_i_o_n is a string defining the  file  or  database  to
       search.   If  the  key  is found, then the _f_o_u_n_d_-_s_t_r_i_n_g is
       expanded, otherwise the _n_o_t_-_f_o_u_n_d_-_s_t_r_i_n_g is  expanded.   A
       $$vvaalluuee  reference in _f_o_u_n_d_-_s_t_r_i_n_g is replaced by the value
       found  by  the  lookup.   For  readability,  tthheenn  can  be
       inserted before the _f_o_u_n_d clause, and eellssee can be inserted
       before the _n_o_t_-_f_o_u_n_d clause.

       Allowed lookup methods are:

       bbsseeaarrcchh   Use a binary search  to  locate  the  key  in  a
                 sorted file, organized as lines beginning with a
                 key separated from a value by blanks.

       llsseeaarrcchh   Use a linear search to locate the key in a plain
                 file,  again organized as lines beginning with a
                 key separated from a value by blanks.   Comments
                 in  this  file  begin  with # and continue until
                 end-of-line.  Blank lines are ignored.

       ddbbmm       Lookup the dbm in a dbm database.

       yypp        Lookup the key in a remote Sun NIS database.

       aalliiaassyypp   Lookup the key in a  remote  Sun  NIS  database.
                 This differs from yypp in that a nul byte is added
                 to the key before lookup.

       nniiaalliiaass   Lookup the key in a NeXT netinfo database.

   EExxppaannssiioonn vvaarriiaabblleess
       The complete set of variable names depends  upon  context,
       but the following are always available:

       bbaatt     a  string  defining  a  string of characters which
               identifies where your  smail  sources  originated.
               See  the source file _s_r_c_/_v_e_r_s_i_o_n_._c for more infor-
               mation.

       ccoommppiillee__ddaattee or lldd__ddaattee
               the date when the current smail  binary  was  com-
               piled.

       ccoommppiillee__nnuumm or lldd__nnuumm
               a  decimal number giving the number of times smail
               has been compiled since the creation of the source
               file _l_d_i_n_f_o_._c.

       ccttiimmee   the  date  and  time,  in the form returned by the
               _c_t_i_m_e(3) function.

       ddaattee    The date and time in ARPAnet format.





Local                    1 February 1988                        4





SMAIL(5)                                                 SMAIL(5)


       ssppooooll__ddaattee
               The date and time that the message was received by
               the local host, in ARPAnet format.

       ggrraaddee   The  priority  character  for the current message.
               See the ggrraaddeess attribute in the  _c_o_n_f_i_g  file  for
               more information on this value.

       mmeessssaaggee__iidd or iidd
               the message ID for the current message.

       mmeessssaaggee__ssiizzee or ssiizzee
               the total size of the spooled message.

       mmeessssaaggee__bbooddyy__ssiizzee or bbooddyy__ssiizzee
               the  size  of  the  body  of  the  message,  which
               excludes  the  message  header  fields,  and  also
               excludes  any  overhead  within  the message spool
               file.

       ppaattcchh__nnuummbbeerr or ppaattcchh
               the patch level of the  smail  sources,  from  the
               source file _p_a_t_c_h_n_u_m, which contains the date that
               the most recently applied patch was  created,  and
               the number of that patch.

       ppaattcchh__ddaattee
               The  date when the most recently applied patch was
               created.

       ppiidd or $$
               the current process ID.

       pprriimmaarryy__nnaammee or pprriimmaarryy
               the canonical name for the local host.

       rreelleeaassee__ddaattee or rreelleeaassee
               the release date of the smail sources.

       sseennddeerr or ffrroomm
               the address of the sender of a message.

       sseennddeerr__nnaammee or ffuullllnnaammee
               the full-name of the sender, taken either from the
               --FF argument to ssmmaaiill or from the password file.

       sseennddeerr__hhoosstt
               the  sending  host,  if one is known.  This is set
               automatically for mail received via UUCP or  SMTP.
               It  can  also  be  set  with --ooMMss from the command
               line.

       sseennddeerr__pprroottoo
               the sending protocol (e.g. ssmmttpp or uuuuccpp),  if  one



Local                    1 February 1988                        5





SMAIL(5)                                                 SMAIL(5)


               is  known.   This  is  set  automatically for mail
               received via UUCP or SMTP.  It  can  also  be  set
               with --ooMMss from the command line.

       sseennddeerr__pprrooggrraamm
               The  program  that  queued  the message.  For mail
               received via UUCP, this will be, typically, rrmmaaiill.
               Otherwise,  the  sender program will likely by set
               to sseennddmmaaiill or ssmmaaiill, depending upon  the  program
               that typically is invoked for receiving mail.

       uuuuccpp__nnaammee
               the UUCP-network name for the local host.

       vveerrssiioonn a short version string for _s_m_a_i_l.

       vveerrssiioonn__ssttrriinngg
               a verbose version string.

       vviissiibbllee__nnaammee or nnaammee
               the local host name used in outgoing addresses.

       ssmmaaiill__lliibb__ddiirr or lliibb__ddiirr
               the    value   of   the   config   file   variable
               ssmmaaiill__lliibb__ddiirr, which is  the  directory  in  which
               configuration files are found.

       In  addition,  the following variables are defined if they
       are available in the current context:

       HHOOMMEE or hhoommee
               the home directory of a user  associated  with  an
               address.

       hhoosstt    the  remote  host  string associated with a remote
               address.

       uusseerr or aaddddrr
               a user name or remaining address string associated
               with an address.

       iinnppuutt__aaddddrr
               The  address  specified  in  the message, or in an
               alias or mailing list  expansion,  that  is  being
               processed.

       ddiirreeccttoorr
               The name of the director that matched the address,
               if appropriate.

       rroouutteerr  The name of the router that matched  the  address,
               if appropriate.





Local                    1 February 1988                        6





SMAIL(5)                                                 SMAIL(5)


       ttrraannssppoorrtt
               The  name of the transport to be used for deliver-
               ing to the address, if the address has  been  suc-
               cessfully resolved.

       The following meta-expansions also exist:

       llcc      convert to lower case.

       ppaarreenntt  interpret the value within the context of the par-
               ent local address  that  produced  the  associated
               address.   This  is  useful when the local address
               that produced an address  is  desired.   Expansion
               fails if no parent exists.

       qquuoottee   enclose  the value in quotes, if it would not oth-
               erwise be a valid local-form address,  within  the
               rules of RFC822.  Uses backslash escapes as appro-
               priate.  (This  is  not  available  in  the  Alpha
               release of smail).

       ssttrriipp   Remove backslashes and double quotes from a value.
               If a double-quote is preceded by a backslash,  the
               backslash is removed, but the double quote is not.
               Sequences of whitespace characters  and  dots  are
               converted to exactly one dot character.

       ttoopp     interpret  the  value  within  the  context of the
               original address, supplied  to  the  mailer,  that
               produced the associated address.

       uucc      convert to upper case.

       The following are sample expansions:

            /usr/spool/mail/${lc:user}

       with a $$uusseerr value of ``Tron'' will become:

            /usr/spool/mail/tron

       whereas:

            Received: by $primary_name ($version_string)
                 id <$message_id@primary_name>;
                 $spool_date

       will become something such as:

            Received: by futatsu.uts.amdahl.com (smail 3.0.2 03-dec-87)
                 id <m0c87zK-007zXpC@futatsu.uts.amdahl.com>;
                 Tue,  8 Dec 87 19:45 PST

       and:



Local                    1 February 1988                        7





SMAIL(5)                                                 SMAIL(5)


            $host!rmail ${strip:addr}

       with  an  $$aaddddrr  value  of  ``Ronald S. Karr'' and a $$hhoosstt
       value of ``amdahl'' will become:

            amdahl!rmail Ronald.S.Karr

       If a value does not exist (such as $$HHOOMMEE being  used  when
       no  associated  home  directory is known, or when a string
       begins with "~_u_s_e_r_n_a_m_e" and the _u_s_e_r_n_a_m_e is not known,  or
       when $$hhoosstt is used for a local address) then the expansion
       fails.

TTHHEE CCOONNFFIIGG FFIILLEE
       The config file defines values for global  variables  used
       by  _s_m_a_i_l.   Each  entry  in this file gives the name of a
       variable to be  set  and  defines  a  string,  numeric  or
       boolean  value  to  give to that variable.  The recognized
       forms for entries in the config file are:

              vvaarriiaabbllee__nnaammee = _s_t_r_i_n_g or _n_u_m_b_e_r

              vvaarriiaabbllee__nnaammee  or  +vvaarriiaabbllee__nnaammee

              -vvaarriiaabbllee__nnaammee

       The first form above sets the  variable  to  a  string  or
       numeric  value,  the  second form sets a boolean variable,
       and the last form resets  a  boolean  variable,  clears  a
       string value or sets a numeric value to zero.

       The  following  config file specifies a spool file mode of
       0400, a maximum message size of 200K, a  method  directory
       of  _/_u_s_r_/_l_i_b_/_s_m_a_i_l_/_m_e_t_h_o_d  and disables use of a transport
       configuration:

              # don't allow others to read spool files
              spool_mode = 0400

              # truncate messages that are too large
              max_message_size = 200k

              # method files are stored in this directory
              method_dir = /usr/lib/smail/method

              # we are using the built in transport definitions,
              # so don't bother looking for a transport file
              -transport_file

       The complete list of recognized attributes is given in the
       following  table,  in  alphabetic  order.   Note  that the
       default values can be changed  when  compiling  the  _s_m_a_i_l
       program.




Local                    1 February 1988                        8





SMAIL(5)                                                 SMAIL(5)


       _a_u_t_h___d_o_m_a_i_n_s
              type: _s_t_r_i_n_g
              default value: _o_f_f
              A  colon-separated  list  of domain names for which
              this host is considered authoritative.  A host that
              is  authoritative  for  a  domain has access to all
              routing information needed for  that  domain.   The
              primary purpose of this variable is to list domains
              that will not be matched by  the  ssmmaarrtthhoosstt  router
              driver.

       _a_u_t_o___m_k_d_i_r
              type: _b_o_o_l_e_a_n
              default value: _o_n
              If  set, then any directories required for spooling
              and logging will be created if they do  not  exist.
              Smail  will  never  try  to  create required parent
              directories.

       _a_u_t_o___m_k_d_i_r___m_o_d_e
              type: _i_n_t_e_g_e_r
              default value: _0_7_5_5
              When  directories  are  created  automatically   by
              smail,  they  are created with this permission mode
              mask.  See _s_t_a_t(2) for  information  on  what  this
              mode represents.

       _c_o_n_s_o_l_e
              type: _s_t_r_i_n_g
              default value: _/_d_e_v_/_c_o_n_s_o_l_e
              The  file  name for the console device.  This file-
              name is used as a  last  resort  in  attempting  to
              write panic messages.

       _c_o_p_y_i_n_g___f_i_l_e
              type: _s_t_r_i_n_g
              default value: _`_`_C_O_P_Y_I_N_G_'_'
              The  pathname  to the _C_O_P_Y_I_N_G file, which describes
              your distribution rights and details  the  warranty
              information  from  the  authors  of smail.  If this
              does not begin with ``/'', it  will  be  referenced
              relative to the _s_m_a_i_l___l_i_b___d_i_r directory.

       _d_a_t_e___f_i_e_l_d
              type: _s_t_r_i_n_g
              default value: _`_`_D_a_t_e_: _$_s_p_o_o_l___d_a_t_e_'_'
              This  string  will  be  expanded  to form the DDaattee::
              header field.  This will be used if  such  a  field
              does not already exist in the header.

       _d_e_l_i_v_e_r_y___m_o_d_e
              type: _s_t_r_i_n_g
              default value: _`_`_f_o_r_e_g_r_o_u_n_d_'_'
              The  default  mode  of delivery for new mail.  This



Local                    1 February 1988                        9





SMAIL(5)                                                 SMAIL(5)


              can be one of the values ``foreground''  (immediate
              delivery in the process that received the message),
              ``background'' (immediate delivery in a child  pro-
              cess,  where  the process that received the message
              exits immediately), or ``queued'' (do  not  attempt
              delivery until a later queue run).

       _d_i_r_e_c_t_o_r___f_i_l_e
              type: _s_t_r_i_n_g
              default value: _`_`_d_i_r_e_c_t_o_r_s_'_'
              Names  the  file containing the director configura-
              tion information.  If  this  does  not  begin  with
              ``/'',  it  will  be  referenced  relative  to  the
              _s_m_a_i_l___l_i_b___d_i_r directory.

       _e_r_r_o_r___c_o_p_y___p_o_s_t_m_a_s_t_e_r
              type: _b_o_o_l_e_a_n
              default value: _o_f_f
              Copy the postmaster on all  error  messages.   Nor-
              mally  only  errors  that  appear to be a result of
              administrator errors will be mailed to the postmas-
              ter.   If _e_r_r_o_r___c_o_p_y___p_o_s_t_m_a_s_t_e_r is set, then errors
              that are returned to the sender, or that are mailed
              to  owners  of  mailing lists, will also be sent to
              the postmaster.

       _f_n_l_o_c_k___i_n_t_e_r_v_a_l
              type: _n_u_m_b_e_r
              default value: _3
              The sleep interval between retries while attempting
              to lock mailbox files with a lockfile-based locking
              protocol.  On systems where sleep has  a  1  second
              granularity, this value should be at least 2.

       _f_n_l_o_c_k___m_o_d_e
              type: _n_u_m_b_e_r
              default value: _0_6_6_6
              Mailbox lock files are created with this mode.

       _f_n_l_o_c_k___r_e_t_r_i_e_s
              type: _n_u_m_b_e_r
              default value: _0 _i_f _y_o_u _h_a_v_e _a_n _a_t_o_m_i_c _r_e_n_a_m_e_, _5 _o_t_h_e_r_w_i_s_e
              The  number  of  times  to  attempt to lock mailbox
              files using a file-based locking protocol.

       _f_r_o_m___f_i_e_l_d
              type: _s_t_r_i_n_g
              This string will  be  expanded  to  form  From:  or
              Sender:  fields.   The  expanded  string must begin
              with  "From:",  which  may  be  replaced  by  other
              strings  to  form  an  actual  header  field.   The
              default value is:

                   From: $sender${if def:sender_name: ($sender_name)}



Local                    1 February 1988                       10





SMAIL(5)                                                 SMAIL(5)


       _g_r_a_d_e_s
              type: _s_t_r_i_n_g
              default value: _s_p_e_c_i_a_l_-_d_e_l_i_v_e_r_y_:_9_:_a_i_r_-_m_a_i_l_:_A_:_f_i_r_s_t_-_c_l_a_s_s_:_C_:_b_u_l_k_:_a_:_j_u_n_k_:_n
              The priority, or grade, characters corresponding to
              particular  values  of the PPrreecceeddeennccee:: field in the
              message header.  The parts of the string are  sepa-
              rated by `:' with alternating precedence string and
              grade character.  Numbers are  higher  in  priority
              than  upper  case  letters which are in turn higher
              than lower case letters.  Also, lower  numbers  are
              higher  in  priority  than  higher numbers, and the
              same  goes  for  letters  lower  in  the  alphabet.
              Grades  in  the range [[aa--mm]] will only have an error
              message  and  header  returned  to  the  sender  on
              errors,  rather  than including the message body as
              well.  Grades in the range [[nn--zz]] will not have any-
              thing returned to the sender on errors.
              The  precedence  names recognized by many BSD send-
              mail configurations are:  _s_p_e_c_i_a_l_-_d_e_l_i_v_e_r_y,  _f_i_r_s_t_-
              _c_l_a_s_s  and _j_u_n_k.  Others are useful mainly for get-
              ting mail out of the local machine or for  communi-
              cation with other machines running _s_m_a_i_l in a simi-
              lar configuration.  The grade character for a  mes-
              sage  is  available  in  string  expansions  as the
              $$ggrraaddee variable.

       _h_i_t___t_a_b_l_e___l_e_n
              type: _n_u_m_b_e_r
              default value: _2_4_1 _w_i_t_h _a _l_a_r_g_e _a_d_d_r_e_s_s _s_p_a_c_e_, _1_3 _o_t_h_e_r_w_i_s_e
              The  length  of  an  internal  address  hit  table.
              Addresses  are  hashed  into  this table to prevent
              multiple deliveries to the  same  address.   Longer
              tables  speed  address  hashing  at  a small memory
              expense.
              NOTE:  this value may be ignored in the future.

       _h_o_s_t___l_o_c_k___t_i_m_e_o_u_t
              type: _i_n_t_e_r_v_a_l
              default value: _3_0
              Specify the timeout for locking a host's retry file
              for the purpose of exclusive delivery to that host.
              If the file cannot be locked within  the  specified
              time,  then  the  message  is not delivered; unless
              other considerations intervene, the message is left
              in  the message queue (deferred).  A number with no
              suffix indicates seconds.  Suffixes can be added to
              indicate a time multiplier.  mm indicates minutes, hh
              indicates hours, dd indicates days.

       _h_o_s_t_n_a_m_e_s or _h_o_s_t_n_a_m_e
              type: _s_t_r_i_n_g
              default value: _c_o_m_p_u_t_e_d _a_t _r_u_n _t_i_m_e
              A colon-separated list of names for the local host.
              This    list,    together    with   _u_u_c_p___h_o_s_t   and



Local                    1 February 1988                       11





SMAIL(5)                                                 SMAIL(5)


              _m_o_r_e___h_o_s_t_n_a_m_e_s should represent all possible  names
              for  the  local  host.   Note that the _v_i_s_i_b_l_e___n_a_m_e
              hostname is not recognized as a name for the  local
              host unless it also appears in the value for one of
              the other hostname variables.  For a host  that  is
              in more than one domain or that can gateway to more
              than one level of domains,  this  should  represent
              those  names.  For a host in a registered domain in
              the UUCP zone, which  is  also  in  the  maps  dis-
              tributed over USENET, _l_o_c_a_l_h_o_s_t..uuuuccpp should also be
              in the list.  The first value in _h_o_s_t_n_a_m_e_s is  used
              internally  as  a  special ``primary name'' for the
              local host.

              If _h_o_s_t_n_a_m_e_s is set turned off (which is  generally
              the  default) then the hostnames value will be com-
              puted by pairing the localhosts's name, computed in
              a  system-dependent  manner, with all values in the
              _d_o_m_a_i_n_s attribute list.

       _l_o_c_k___b_y___n_a_m_e
              type: _b_o_o_l_e_a_n
              default value: _s_y_s_t_e_m_-_d_e_p_e_n_d_e_n_t
              If this is on, then input  spool  file  locking  is
              always  based  on lock files.  Otherwise, an inode-
              based  locking  mechanism  may  be  used,  such  as
              _f_l_o_c_k_(_2_)  under  BSD,  or  _l_o_c_k_f_(_3_) under System V.
              Inode-based locking is more  efficient,  if  avail-
              able.  However, lock files can be easily created by
              shell scripts which may be advantageous under  some
              circumstances.

       _l_o_c_k___m_o_d_e
              type: _n_u_m_b_e_r
              default value: _0_4_4_4
              The creation mode for lock files.

       _l_o_g___m_o_d_e
              type: _n_u_m_b_e_r
              default value: _0_6_6_4
              The  creation  mode for the various mail system log
              files.

       _l_o_g_f_i_l_e
              type: _s_t_r_i_n_g
              default value: _`_`_/_u_s_r_/_s_p_o_o_l_/_s_m_a_i_l_/_l_o_g_/_l_o_g_f_i_l_e_'_'
              The name of a file to which transaction  and  error
              messages  are  appended.   If  this  file  does not
              exist, it is created with a mode from the  _l_o_g___m_o_d_e
              attribute.

       _m_a_x___h_o_p___c_o_u_n_t
              type: _n_u_m_b_e_r
              default value: _2_0



Local                    1 February 1988                       12





SMAIL(5)                                                 SMAIL(5)


              If  the  hop  count for a message equals or exceeds
              this number, then attempts at remote delivery  will
              result  in  an  error message being returned to the
              sender.  This is used to  prevent  infinite  loops.
              The hop count for a message can be set using the --hh
              option when invoking _s_m_a_i_l.  Otherwise it  is  com-
              puted  from  the  number of RReecceeiivveedd:: fields in the
              message header.

       _m_a_x___l_o_a_d___a_v_e
              type: _n_u_m_b_e_r
              default value: _0
              For systems on which a load  average  can  be  com-
              puted,  this  specifies the maximum load average at
              which mail delivery will  be  performed,  otherwise
              this value is ignored.  If the load average exceeds
              this number, incoming mail will  be  saved  in  the
              input  spool  directory, though no delivery will be
              performed.  If this value is  0  the  load  average
              will  not  be  computed and delivery will always be
              performed.  Normally the load average refers to a 5
              minute load average.  (This is not currently imple-
              mented)

       _m_a_x___m_e_s_s_a_g_e___s_i_z_e
              type: _n_u_m_b_e_r
              default value: _1_0_0_k
              Messages longer than  this  will  be  truncated  by
              _s_m_a_i_l  when when written to its input queue.  (This
              is not currently implemented and there is no  limit
              on the size of messages).

       _m_e_s_s_a_g_e___b_u_f___s_i_z_e
              type: _n_u_m_b_e_r
              default value: _1_0_0_k _w_i_t_h _a _l_a_r_g_e _a_d_d_r_e_s_s _s_p_a_c_e_, _B_U_F_S_I_Z _o_t_h_e_r_w_i_s_e
              The  size  of  an  internal  buffer for reading and
              writing messages.  For systems with a reasonable VM
              space,  this  can  be equal to the maximum size for
              messages.  Specifying the value of  in  which  case
              reading messages and then delivering them to one or
              more destinations requires very few read calls,  as
              the  entire message is always kept in memory.  BUF-
              SIZ,  here,  refers  to  the  defined   symbol   in
              /usr/include/stdio.h.

       _m_e_s_s_a_g_e___i_d___f_i_e_l_d
              type: _s_t_r_i_n_g
              default value: _`_`_M_e_s_s_a_g_e_-_I_d_: _<_$_m_e_s_s_a_g_e___i_d_@_$_p_r_i_m_a_r_y___n_a_m_e_>_'_'
              This  string  will be expanded to form the MMeessssaaggee--
              IIdd:: header field.  This will  be  used  if  such  a
              field does not already exist in the header.

       _m_e_s_s_a_g_e___l_o_g___m_o_d_e
              type: _n_u_m_b_e_r



Local                    1 February 1988                       13





SMAIL(5)                                                 SMAIL(5)


              default value: _0_6_4_4
              Each  message  has associated with it a unique file
              containing a  transaction  log  for  that  message.
              This  number  specifies  the creation mode for this
              log file.

       _m_e_t_h_o_d___d_i_r
              type: _s_t_r_i_n_g
              default value: _`_`_m_e_t_h_o_d_s_'_'
              If a mmeetthhoodd attribute for a router does not specify
              a  pathname beginning with `/', then this directory
              is prepended to the path to form the complete  path
              for  the  method file.  If this does not begin with
              ``/'',  it  will  be  referenced  relative  to  the
              _s_m_a_i_l___l_i_b___d_i_r  directory.   See  the description of
              the router file  for  more  information  on  method
              files.

       _m_o_r_e___h_o_s_t_n_a_m_e_s
              type: _s_t_r_i_n_g
              default value: _o_f_f
              A  colon-separated list of hostnames.  This list is
              in addition to any names which may have  been  com-
              puted  from  the  ddoommaaiinnss  attribute in forming the
              value of hhoossttnnaammeess.  Thus, it is useful for  speci-
              fying  names which are not formed from the computed
              name for the host.

              The mmoorree__hhoossttnnaammeess attribute can also be  specified
              as ggaatteewwaayy__nnaammeess, since the attribute is often used
              to indicate the list  of  domains  for  which  this
              machine is a gateway.

       _n_o_b_o_d_y
              type: _s_t_r_i_n_g
              default value: _s_i_t_e_-_d_e_p_e_n_d_e_n_t_: _o_f_t_e_n _`_`_n_o_b_o_d_y_'_'
              This  names a default user that defines permissions
              when no other user is specified.  Also,  this  user
              is  used  in some conditions when it is not certain
              whether a set of actions can be  trusted,  if  per-
              formed   under  other,  potentially  more  powerful
              users.  This should reference a login id which  has
              few  or no capabilities for doing harm or accessing
              protected files.

       _p_a_n_i_c_l_o_g
              type: _s_t_r_i_n_g
              default value: _`_`_/_u_s_r_/_s_p_o_o_l_/_s_m_a_i_l_/_l_o_g_/_p_a_n_i_c_l_o_g_'_'
              The name of a file to which panic and  very  impor-
              tant  error  messages  are  appended.  If this file
              does not exist, it is created with a mode from  the
              _l_o_g___m_o_d_e  attribute.   Entries  written to this log
              file represent problems that require  human  inter-
              vention,  such as configuration errors or directory



Local                    1 February 1988                       14





SMAIL(5)                                                 SMAIL(5)


              permission  errors  preventing  mail  spooling   or
              delivery.

              Configuration  errors  generally  cause  mail to be
              moved into a special  _e_r_r_o_r_/  directory  under  the
              input  spool directory, thus preventing attempts at
              redelivery until the configuration error  has  been
              corrected.

              Thus,  both  the panic log and the _e_r_r_o_r_/ directory
              should be checked periodically  under  normal  use,
              and  frequently  after configuration changes.  When
              any problems have been resolved, these messages can
              be requeued for delivery by using _m_v(1) to move the
              spool files back to the spool directory.

       _p_o_s_t_m_a_s_t_e_r___a_d_d_r_e_s_s or _p_o_s_t_m_a_s_t_e_r
              type: _s_t_r_i_n_g
              default value: _`_`_r_o_o_t_'_'
              This is the default address for the postmaster.  If
              the  address  _P_o_s_t_m_a_s_t_e_r  is not resolved by any of
              the configured  directors,  then  this  address  is
              used.

       _q_u_a_l_i_f_y___f_i_l_e
              type: _s_t_r_i_n_g
              default value: _`_`_q_u_a_l_i_f_y_'_'
              Names  the  file containing the hostname qualifica-
              tion information.  If  this  does  not  begin  with
              ``/'',  it  will  be  referenced  relative  to  the
              _s_m_a_i_l___l_i_b___d_i_r directory.

       _q_u_e_u_e___o_n_l_y
              type: _b_o_o_l_e_a_n
              default value: _o_f_f
              If this is set  then  _s_m_a_i_l  will  not  immediately
              attempt delivery for incoming mail.  The _s_m_a_i_l pro-
              gram will then only attempt delivery  when  explic-
              itly  processing  the  input  queue,  such  as when
              invoked with the --qq flag.

       _r_e_c_e_i_v_e_d___f_i_e_l_d
              type: _s_t_r_i_n_g
              This string will be expanded to form the  RReecceeiivveedd::
              header field.  This field will be inserted into the
              header if the rreecceeiivveedd attribute is not  explicitly
              turned  off for a transport.  The default value for
              rreecceeiivveedd__ffiieelldd is:

                   Received: \
                       ${if def:sender_host\
                            {from $sender_host by $primary_name\
                             ${if def:sender_proto: with $sender_proto}\
                             \n\t(Smail$version #$compile_num) }\



Local                    1 February 1988                       15





SMAIL(5)                                                 SMAIL(5)


                        else{by $primary_name ${if def:sender_proto:with $sender_proto }\
                          (Smail$version #$compile_num)\n\t}}\
                       id $message_id; $spool_date


       _r_e_q_u_i_r_e___c_o_n_f_i_g_s
              type: _b_o_o_l_e_a_n
              default value: _o_f_f
              If this is not set, then  configuration  files  are
              not required to exist.  This applies to the primary
              and secondary config files and the director, router
              and  transport  files.   If one of these files does
              not exist then it is ignored  and  internally  com-
              piled  configuration  is  used  instead.   If  this
              attribute is  set,  then  any  configuration  file,
              which  does  not have a NULL filename (for example,
              using --rroouutteerr__ffiillee to set the name for  the  router
              file to NULL) and which does not exist, will gener-
              ate a panic message from the mailer.

       _r_e_t_r_y___f_i_l_e
              type: _s_t_r_i_n_g
              default value: _`_`_r_e_t_r_y_'_'
              Names the file containing the retry control  infor-
              mation.  If this does not begin with ``/'', it will
              be referenced relative to the _s_m_a_i_l___l_i_b___d_i_r  direc-
              tory.

       _r_e_t_r_y___d_u_r_a_t_i_o_n
              type: _i_n_t_e_r_v_a_l
              default value: _5_d
              Specify the default duration for attempting deliver
              of messages.  If  a  message  cannot  be  delivered
              within this period of time, then the message deliv-
              ery fails and a  bounce  message  is  sent  to  the
              sender,  or  to the list owner, if there is one.  A
              number with no suffix indicates seconds.   Suffixes
              can  be  added  to  indicate  a time multiplier.  mm
              indicates minutes, hh indicates hours,  dd  indicates
              days.

       _r_e_t_r_y___i_n_t_e_r_v_a_l
              type: _i_n_t_e_r_v_a_l
              default value: _1_0_m
              Specify  the  default retry interval for connecting
              to unaccessible hosts.  If a  host  is  temporarily
              unreachable,  then  smail  will avoid attempting to
              deliver to that host until this period of time  has
              elapsed.   This  applies  to  all messages, so that
              queue runs will not block each message waiting  for
              a  timeout  for  a  particular  set of unaccessible
              hosts.  See the description of the _r_e_t_r_y  file  for
              more information.




Local                    1 February 1988                       16





SMAIL(5)                                                 SMAIL(5)


       _r_e_t_u_r_n___p_a_t_h___f_i_e_l_d
              type: _s_t_r_i_n_g
              default value: _`_`_R_e_t_u_r_n_-_P_a_t_h_: _<_$_s_e_n_d_e_r_>_'_'
              This  string  will  be expanded to form the RReettuurrnn--
              PPaatthh:: header field.  This field  will  be  inserted
              into  the  header  if  the rreettuurrnn__ppaatthh attribute is
              turned on for a transport.

       _r_o_u_t_e_r___f_i_l_e
              type: _s_t_r_i_n_g
              default value: _`_`_r_o_u_t_e_r_s_'_'
              Names the file containing the router  configuration
              information.   If  this does not begin with `/', it
              will be referenced relative  to  the  _s_m_a_i_l___l_i_b___d_i_r
              directory.

       _s_e_c_o_n_d___c_o_n_f_i_g___f_i_l_e
              type: _s_t_r_i_n_g
              default value: _n_o_n_e
              This names a secondary configuration file which can
              define attribute  values  which  override  internal
              defaults  and  values  in the primary configuration
              file.  If this does not begin with ``/'',  it  will
              be  referenced relative to the _s_m_a_i_l___l_i_b___d_i_r direc-
              tory.  This is primarily useful  in  networks  con-
              taining machines that share filesystems.  By having
              a shared primary configuration file most systems on
              a  network  need  not be concerned with maintaining
              the _s_m_a_i_l program, while other systems may want  or
              need  to use a different configuration, while shar-
              ing  the   same   binary.    In   particular,   the
              ssmmaarrtt__uusseerr,    ssmmaarrtt__ppaatthh    and    ssmmaarrtt__ttrraannssppoorrtt
              attributes are common attributes to be set  in  the
              secondary configuration file.

       _s_e_n_d_e_r___e_n_v___v_a_r_i_a_b_l_e
              type: _s_t_r_i_n_g
              default value: _n_o_n_e
              This names an environment variable that can be used
              to name the sender.  Normally, the sender is deter-
              mined from system login information, or by checking
              the real  user  ID  of  the  calling  process.   If
              _s_e_n_d_e_r___e_n_v___v_a_r_i_a_b_l_e  is  set,  and  an  environment
              variable with the given name exists, then  use  it,
              by  default.   This  can  be set to LOGNAME for use
              with System V-based systems, or USER for  BSD-based
              systems.

       _s_m_a_i_l
              type: _s_t_r_i_n_g
              default value: _`_`_/_b_i_n_/_s_m_a_i_l
              Name  a  valid  path  to a _s_m_a_i_l binary that can be
              used to re-exec _s_m_a_i_l when  a  major  configuration
              change  has  been  detected,  or to exec _s_m_a_i_l when



Local                    1 February 1988                       17





SMAIL(5)                                                 SMAIL(5)


              delivering error messages.  If this does not  begin
              with  ``/'',  it will be referenced relative to the
              _s_m_a_i_l___l_i_b___d_i_r directory.

       _s_m_a_i_l___l_i_b___d_i_r
              type: _s_t_r_i_n_g
              default value: _`_`_/_u_s_r_/_l_i_b_/_m_a_i_l_'_'
              This defines the path to  the  smail  configuration
              file directory.  The router, director and transport
              files, as well as alias and path files  and  method
              files may be referenced relative to this directory.

       _s_m_a_i_l___u_t_i_l___d_i_r
              type: _s_t_r_i_n_g
              default value: _`_`_/_u_s_r_/_l_i_b_/_m_a_i_l_'_'
              This defines the path to directory containing  most
              smail  utilities.   In particular, smail expects to
              find the mmkkaalliiaasseess  and  mmkkddbbmm  utilities  in  this
              directory.

       _s_m_a_r_t___p_a_t_h
              type: _s_t_r_i_n_g
              default value: _n_o_n_e
              This   defines  the  default  value  for  the  ppaatthh
              attribute used  by  the  _s_m_a_r_t_h_o_s_t  router  driver.
              This  gives  the path to a machine which supposedly
              contains a more complete routing database  than  is
              available  on  the local host.  See a later section
              describing the smarthost driver for  more  informa-
              tion on the use of this attribute.

       _s_m_a_r_t___t_r_a_n_s_p_o_r_t
              type: _s_t_r_i_n_g
              default value: _n_o_n_e
              This  defines  the  default value for the ttrraannssppoorrtt
              generic attribute  used  by  the  _s_m_a_r_t_h_o_s_t  router
              driver.    See   a  later  section  describing  the
              smarthost driver for more information on the use of
              this attribute.

       _s_m_a_r_t___u_s_e_r
              type: _s_t_r_i_n_g
              default value: _n_o_n_e
              This  defines  the default value for the ssmmaarrtt__uusseerr
              attribute used by the _s_m_a_r_t_u_s_e_r director driver.

       _s_m_t_p___a_c_c_e_p_t___m_a_x
              type: _n_u_m_b_e_r
              The maximum number of SMTP connections  that  smail
              will process at any one time.  This is for use with
              SMTP daemons started with the --bbdd option to  _s_m_a_i_l.
              If connection requests come in while when this num-
              ber of SMTP-connection  children  are  forked,  the
              connection  will be shutdown with SMTP message 421.



Local                    1 February 1988                       18





SMAIL(5)                                                 SMAIL(5)


              If this value is zero, then the number of SMTP con-
              nections is not limited.

       _s_m_t_p___a_c_c_e_p_t___q_u_e_u_e
              type: _n_u_m_b_e_r
              If  this  number  of  SMTP  connection processes is
              exceeded,  then  additional  connections  will   be
              accepted,  but  their  messages  will be queued and
              will not be processed  until  a  later  queue  run.
              When  the  number  of  current connection processes
              drops below this number, immediate mail  processing
              will  resume,  depending  upon  the value of ddeelliivv--
              eerryy__mmooddee.

              If this value is zero, then SMTP  connections  will
              not  be  converted  to queue-only mode based on the
              number of connections.   Note  that  the  value  of
              _s_m_t_p___a_c_c_e_p_t___q_u_e_u_e  should be less than the value of
              _s_m_t_p___a_c_c_e_p_t___m_a_x, and that  setting  _s_m_t_p___a_c_c_e_p_t___m_a_x
              to  zero  prevents  _s_m_t_p___a_c_c_e_p_t___q_u_e_u_e  from working
              correctly in all cases.

       _s_m_t_p___b_a_n_n_e_r
              type: _s_t_r_i_n_g
              This string will  be  expanded  to  form  the  SMTP
              startup  banner  that is written by the SMTP server
              when a connection request is accepted.   Each  line
              of  this message is automatically preceded by a 220
              identification code,  and  newlines  are  correctly
              changed  into  a  carriage-return newline sequence.
              The default value for ssmmttpp__bbaannnneerr is:

                   $primary_name Smail$version #$compile_num ready at $date


       _s_m_t_p___d_e_b_u_g
              type: _b_o_o_l_e_a_n
              default value: _o_n
              This boolean variable controls the meaning  of  the
              DEBUG command when receiving SMTP commands.  If the
              variable is on, then the  DEBUG  command  (with  an
              optional  debugging  level)  sets  debugging to the
              specified level, or 1 if no  level  was  specified.
              The  debugging output will be written over the SMTP
              connection.

       _s_m_t_p___r_e_c_e_i_v_e___c_o_m_m_a_n_d___t_i_m_e_o_u_t
              type: _i_n_t_e_r_v_a_l
              default value: _5_m
              This interval defines the  timeout  for  each  SMTP
              receiver  command for interactive SMTP daemons.  If
              a command is not received  within  this  period  of
              time  after a prompt, then the connection is closed
              down and the SMTP receiver exits.



Local                    1 February 1988                       19





SMAIL(5)                                                 SMAIL(5)


       _s_m_t_p___r_e_c_e_i_v_e___m_e_s_s_a_g_e___t_i_m_e_o_u_t
              type: _i_n_t_e_r_v_a_l
              default value: _2_h
              This interval defines the  timeout  for  reading  a
              message  with the DATA command for interactive SMTP
              daemons.  If the entire  message  is  not  received
              within  this  period  of time after the ``354 Enter
              mail'' prompt, then the  message  is  removed,  the
              connection  is  closed  down, and the SMTP receiver
              exits.

       _s_p_o_o_l___d_i_r_s
              type: _s_t_r_i_n_g
              default value: _`_`_/_u_s_r_/_s_p_o_o_l_/_s_m_a_i_l_'_'
              This defines one or  more  directories  into  which
              incoming mail can be spooled.  Directories are sep-
              arated by single colon characters.  When writing  a
              message  to  the  first spool directory fails, (say
              due to permission problems, filesystem full errors,
              etc.)  successive spool directories are tried until
              the incoming message can be successfully written or
              until  no more alternative directories exist.  Each
              spool directory is expected to have writable subdi-
              rectories  of:  _i_n_p_u_t  (to  hold  the  actual spool
              files), _l_o_c_k (for  temporary  lock  files),  _m_s_g_l_o_g
              (for  temporary  per-message  transaction  logs and
              audit trails) and _e_r_r_o_r  (to  hold  messages  which
              failed  due  to configuration errors or other prob-
              lems which require human intervention).

       _s_p_o_o_l___g_r_a_d_e
              type: _c_h_a_r_a_c_t_e_r
              default value: _`_`_C_'_'
              This character names the  default  grade  for  mes-
              sages.   This  can  be  overridden by a PPrreecceeddeennccee::
              field in the message header.  The grade is used  in
              sorting  messages  in the input spool directory and
              is also  available  in  string  expansions  as  the
              $$ggrraaddee variable.  See the ggrraaddeess attribute for more
              information.

       _s_p_o_o_l___m_o_d_e
              type: _n_u_m_b_e_r
              default value: _0_4_4_0
              This defines  the  file  creation  mode  for  spool
              files.

       _t_r_a_n_s_p_o_r_t___f_i_l_e
              type: _s_t_r_i_n_g
              default value: _`_`_t_r_a_n_s_p_o_r_t_s_'_'
              names  the file containing the transport configura-
              tion information.  If  this  does  not  begin  with
              ``/'',  it  will  be  referenced  relative  to  the
              _s_m_a_i_l___l_i_b___d_i_r directory.



Local                    1 February 1988                       20





SMAIL(5)                                                 SMAIL(5)


       _t_r_u_s_t_e_d___u_s_e_r_s
              type: _s_t_r_i_n_g
              default value: _`_`_r_o_o_t_:_u_u_c_p_:_d_a_e_m_o_n_'_'
              This names a list of users  (separated  by  colons)
              who  are trusted to specify a sender for a message.
              Users who are not in this  list  cannot  specify  a
              SSeennddeerr::  header field without it being removed.  If
              such users specify a FFrroomm::  header  field,  then  a
              SSeennddeerr::  field  will  be created that specifies the
              real user that  submitted  this  mail.   Generally,
              this should be set to that names of all users under
              which remote mail is received and  sent  to  _s_m_a_i_l.
              If   this  list  is  turned  off,  using  the  form
              --ttrruusstteedd, then all users are trusted.

              NNOOTTEE:: The real user ID is used in verifying trusted
              users.   However, under many operating systems, the
              /usr/lib/uucp/uucico program runs  under  the  real
              uid  of  the  user  that  ran _/_u_s_r_/_l_i_b_/_u_u_c_p_/_u_u_c_i_c_o_.
              Often any user can run  the  _u_u_c_i_c_o  program.   The
              _s_m_a_i_l  program  cannot differentiate this case from
              any other case and will thus do the ``wrong thing''
              here.  If this problem exists on your machine, then
              the trusted attribute may need to  be  turned  off.
              This  problem  is particularly difficult to resolve
              on System V machines where  non-superuser  programs
              are unable to change their real uid.

       _t_r_u_s_t_e_d___g_r_o_u_p_s
              type: _s_t_r_i_n_g
              default value: _o_f_f
              This  names  a list of groups (separated by colons)
              that are trusted to specify a sender for a message.
              The groups specified are checked against the effec-
              tive gid of smail.  Thus, if smail is a setgid pro-
              gram, then this string is of no value and should be
              turned off.  However, if smail is not set gid, then
              programs  that invoke smail under a specific effec-
              tive gid, while not a specific  real  uid,  can  be
              detected and can be properly treated as trusted.

       _u_u_c_p___n_a_m_e
              type: _s_t_r_i_n_g
              default value: _c_o_m_p_u_t_e_d _a_t _r_u_n _t_i_m_e
              This  specifies  a  name  for the local host.  This
              name is  available  in  string  expansions  as  the
              $$uuuuccpp__nnaammee  variable.   It  is  also  used  in  the
              ``remote from _h_o_s_t_n_a_m_e'' suffix to  ``From_<_s_p_a_c_e_>''
              lines  for mail being delivered to remote machines,
              when the ffrroomm attribute is turned on for  a  trans-
              port.

       _d_o_m_a_i_n_s
              type: _s_t_r_i_n_g



Local                    1 February 1988                       21





SMAIL(5)                                                 SMAIL(5)


              default value: _u_u_c_p
       _v_i_s_i_b_l_e___n_a_m_e
              type: _s_t_r_i_n_g
              default value: _c_o_m_p_u_t_e_d _a_t _r_u_n _t_i_m_e
              The   full   domain  name  used  in  outgoing  mail
              addresses within header fields.  If vviissiibbllee__nnaammee is
              turned  off,  then it will be set to the first name
              from the hhoossttnnaammeess  attribute.   If  the  hhoossttnnaammeess
              attribute is not specified then that attribute will
              be filled in  with  hostnames  of  the  form  _h_o_s_t_-
              _n_a_m_e._d_o_m_a_i_n, where _h_o_s_t_n_a_m_e is derived in a system-
              dependent manner and where  _d_o_m_a_i_n,  here,  is  one
              name  from  the ddoommaaiinnss list attribute.  Each entry
              in the ddoommaaiinnss list is used, in order,  to  created
              the hhoossttnnaammeess value.

              For  sites  in  the  UUCP  zone  ddoommaaiinnss will often
              merely be the string ``uucp''.  Finally, the  vari-
              able  $$vviissiibbllee__nnaammee  is  available in string expan-
              sions.

              For  compatibility   with   earlier   versions   of
              smail3.1, the ddoommaaiinnss list can also be specified as
              vviissiibbllee__ddoommaaiinnss.

DDIIRREECCTTOORR,, RROOUUTTEERR AANNDD TTRRAANNSSPPOORRTT FFIILLEE FFOORRMMAATTSS
       The _d_i_r_e_c_t_o_r, _r_o_u_t_e_r  and  _t_r_a_n_s_p_o_r_t  configuration  files
       share a common format, which is described in this section.
       The specific contents for each file are described in later
       sections.

       Each  entry in one of these files specifies a name for the
       entry, a set of _g_e_n_e_r_i_c attributes and  a  set  of  _d_r_i_v_e_r
       attributes.    The   generic  attributes  and  the  driver
       attributes define the characteristics for the entry.

       The list of possible generic attributes are common to  all
       entries in a configuration file.  One generic attribute is
       always required: the  ddrriivveerr  attribute.   This  attribute
       names  the  underlying  set of functions that will be used
       when using  that  entry.   The  list  of  possible  driver
       attributes are specific to different types of drivers.

       The form of an entry is:

            _e_n_t_r_y___n_a_m_e:
                 _g_e_n_e_r_i_c___a_t_t_r_i_b_u_t_e , ... ; _d_r_i_v_e_r___a_t_t_r_i_b_u_t_e , ...

       where  a  comma  separates  the  definitions  for specific
       attributes and where a  semicolon  separates  the  generic
       attributes from the driver attributes.  It is _n_o_t an error
       for an entry to end in a comma or semicolon.  The form for
       generic  and  driver attributes is the same as for entries
       in the config file.



Local                    1 February 1988                       22





SMAIL(5)                                                 SMAIL(5)


       As an example, consider an entry  in  the  transport  file
       that  specifies  use  of  the program /bin/mail to deliver
       mail to local users.  The mail messages are to  contain  a
       ``Return-Path:''  header  field, and the /bin/mail program
       is to be given no more than 20 addresses  per  invocation.
       A simple entry to specify this is:

            # call /bin/mail to deliver to local users
            local: max_addrs=20, return_path, driver=pipe;
                 cmd="/bin/mail $($user$)"


IINNTTEERRAACCTTIIOONN BBEETTWWEEEENN DDIIRREECCTTOORRSS,, RROOUUTTEERRSS AANNDD TTRRAANNSSPPOORRTTSS
       To  better  understand the use of the _d_i_r_e_c_t_o_r, _r_o_u_t_e_r and
       _t_r_a_n_s_p_o_r_t files,  this  section  describes,  briefly,  how
       address  resolving  and delivery is accomplished in _s_m_a_i_l.
       The configuration specified in these files  is  intimately
       involved in this process.

       When _s_m_a_i_l is given a list of addresses to which a message
       is to be delivered,  the  list  is  processed  iteratively
       until  a  list of resolved addresses is produced.  When an
       address is resolved, the transport (the part of _s_m_a_i_l that
       performs  delivery  of  messages  to local users or remote
       hosts) and all data required  by  the  transport  will  be
       known.

       To accomplish this the _s_m_a_i_l program goes through the fol-
       lowing steps:

       a.  Each address is parsed to find a hostname, called  the
           _t_a_r_g_e_t,  and the remaining part of the address, called
           the _r_e_m_a_i_n_d_e_r.  As a simple example,  in  the  address
           _t_r_o_n_@_u_t_s_._a_m_d_a_h_l_._c_o_m,  the  host part _u_t_s_._a_m_d_a_h_l_._c_o_m is
           the target and _t_r_o_n is the remainder.  In the  address
           _s_u_n_!_a_m_d_a_h_l_!_t_r_o_n,  the  target is _s_u_n and the remainder
           is _a_m_d_a_h_l_!_t_r_o_n.  More information on addresses can  be
           found in _m_a_i_l_a_d_d_r_s_(_5_).

       b.  Each local address is given to directors, in the order
           specified by the  director  file,  until  one  of  the
           directors  says  that  it  knows  what to do with that
           address.  That director has the option of returning  a
           new  list  of addresses or of putting the address on a
           list of resolved addresses.  If new addresses are pro-
           duced, they are put on the input list, to be processed
           from step a.

       c.  Each remote address is passed to routers, in the order
           specified by the router file, until one of the routers
           is able to match the target name for the address.   If
           no  router  is able to match the complete target, then
           the first router with the longest match will be  used.
           The  router  specifies  the  transport  to be used for



Local                    1 February 1988                       23





SMAIL(5)                                                 SMAIL(5)


           delivery to that address, plus some other  information
           required  by  the transport, such as the _n_e_x_t _h_o_s_t and
           _n_e_x_t _a_d_d_r_e_s_s values.  The transport may  come  from  a
           router  default,  a method file of may be specified by
           the router specifically.

       When all addresses have been resolved, they are sorted out
       and  passed to transports.  It is the job of the transport
       to deliver a message to the set of addresses  that  it  is
       given.

       It is important to know that all hostnames and local user-
       names are matched independent of case, so that, for  exam-
       ple,  _P_o_s_t_m_a_s_t_e_r,  _P_O_S_T_M_A_S_T_E_R  and  _p_o_s_t_m_a_s_t_e_r all compare
       equal.  In addition an internal hash table is kept of  all
       regular  recipient addresses, that is, all addresses which
       do not specify files or shell  commands.   This  table  is
       used  to  discard  duplicate  regular recipient addresses.
       This hash table is independent of case, as well,  so  that
       the address _P_o_s_t_m_a_s_t_e_r_@_S_R_I_-_N_I_C_._A_R_P_A is considered a dupli-
       cate of _p_o_s_t_m_a_s_t_e_r_@_s_r_i_-_n_i_c_._a_r_p_a.

TTHHEE DDIIRREECCTTOORR FFIILLEE
       The _d_i_r_e_c_t_o_r file  describes  the  operations,  and  their
       order,  for  handling  local addresses.  For example, some
       possibilities are to expand a local address into a list of
       local  and remote addresses through an alias file, forward
       file or mailing list, or to cause mail to be delivered  to
       a local user.

       The   following   list   describes  the  possible  generic
       attributes for director file entries:

       _c_a_u_t_i_o_n
              type: _b_o_o_l_e_a_n
              If set then be cautious of  addresses  produced  by
              this director.  If the nobody attribute is not set,
              then    reject    file,    shell     command     or
              _:_i_n_c_l_u_d_e_:_f_i_l_e_n_a_m_e-style mailing list addresses.

       _d_e_f_a_u_l_t___g_r_o_u_p
              type: _s_t_r_i_n_g
              If  the  driver  does  not  associate a group to an
              address returned by it, then associate the group id
              for  this  group  name.  This will override the gid
              set by a ddeeffaauulltt__uusseerr attribute.

       _d_e_f_a_u_l_t___h_o_m_e
              type: _s_t_r_i_n_g
              If the driver does not associate a  home  directory
              with  an address returned by it, then use this home
              directory.  The value will be expanded to form  the
              actual  directory  pathname.   At the present time,
              the  $$uusseerr  variable  is  not  available  for  this



Local                    1 February 1988                       24





SMAIL(5)                                                 SMAIL(5)


              expansion.   If  the  string expansion fails, it is
              ignored.

       _d_e_f_a_u_l_t___u_s_e_r
              type: _s_t_r_i_n_g
              If the driver does not associate a user or group to
              an  address returned by it, then associate the user
              id and group id of this user.

       _d_r_i_v_e_r
              type: _s_t_r_i_n_g
              The driver attribute names a specific set  of  low-
              level functions which will do the work of directing
              local mail.  This attribute is required.

       _n_o_b_o_d_y
              type: _b_o_o_l_e_a_n
              If set, then access files, or run shell commands as
              the  user  specified  by  the nnoobbooddyy attribute, for
              addresses flagged with _c_a_u_t_i_o_n by either  the  ccaauu--
              ttiioonn  generic attribute or by the driver.  Associa-
              tion  of  nobody  with  an  address  overrides  the
              default_user, default_group, set_user and set_group
              attributes.  This attribute is set by default.

       _o_w_n_e_r
              type: _s_t_r_i_n_g
              Names the address to  be  sent  mail  if  an  error
              occurs in processing the addresses produced by this
              director.  This string is expanded with  the  vari-
              able  $$uusseerr set to the local-form address passed to
              the  director.   Commonly   the   value   will   be
              ``owner-$user''.   If  this string expansion fails,
              it is ignored.

       _s_e_n_d_e_r___o_k_a_y
              type: _b_o_o_l_e_a_n
              If set, then it is always okay for  this  attribute
              to  produce  an  address equal to the sender.  This
              effectively turns on  the  _m_e  _t_o_o  flag  for  this
              director.   This  should  generally be set for for-
              warding directors and should not be set for  alias-
              ing and mailing list directors.

       _s_e_t___g_r_o_u_p
              type: _s_t_r_i_n_g
              Associate the gid for this group with the addresses
              returned by the driver.  This overrides any gid set
              by the sseett__uusseerr attribute.

       _s_e_t___h_o_m_e
              type: _s_t_r_i_n_g
              Associate  this  home  directory with all addresses
              returned by the driver.  This will be  expanded  in



Local                    1 February 1988                       25





SMAIL(5)                                                 SMAIL(5)


              the same manner as ddeeffaauulltt__hhoommee.

       _s_e_t___u_s_e_r
              type: _s_t_r_i_n_g
              Associate  the  uid  and  gid  for  this  user with
              addresses returned by the driver.   This  overrides
              any values set by the driver.

       There  are  two addresses which are required by the mailer
       software to exist: the address _P_o_s_t_m_a_s_t_e_r and the  address
       _M_a_i_l_e_r_-_D_a_e_m_o_n.   To  avoid  the  necessity of an alias for
       these two users, smail  contains  two  implicit  directors
       embedded  into  the directing code.  These implicit direc-
       tors are used as a last resort.  The first  such  director
       maps the address _M_a_i_l_e_r_-_D_a_e_m_o_n onto the address _P_o_s_t_m_a_s_t_e_r
       and the second maps _P_o_s_t_m_a_s_t_e_r onto the address _r_o_o_t.

TTHHEE RROOUUTTEERR FFIILLEE
       The _r_o_u_t_e_r file describes the operations, and their order,
       for  handling  remote addresses.  For example, some possi-
       bilities are to lookup hostnames in a routing database, to
       match  a special domain-literal form, or call a program to
       return a list of neighboring hosts.

       The  following  list  describes   the   possible   generic
       attributes for router file entries:

       _a_l_w_a_y_s
              type: _b_o_o_l_e_a_n
              Routers will not always find a complete match for a
              particular hostname.  For  example,  if  a  routing
              database  has  a route to the domain _a_m_d_a_h_l_._c_o_m but
              not to the hostname _f_u_t_a_t_s_u_._u_t_s_._a_m_d_a_h_l_._c_o_m then the
              routing   driver   might   return   the   route  to
              _a_m_d_a_h_l_._c_o_m.  Generally, the route for  the  longest
              match  of the target host is used.  However, if the
              aallwwaayyss attribute is set, then any  match  found  by
              this  router  will  be used in preference to routes
              that might have been returned by routers  _l_a_t_e_r  _i_n
              _t_h_e  _r_o_u_t_e_r  _l_i_s_t.  This is useful for hardwiring a
              certain number of routes within a  small  database.
              For example, this is useful for Internet sites that
              gateway for a small number of  UUCP  sites  in  the
              UUCP zone.

       _d_r_i_v_e_r
              type: _s_t_r_i_n_g
              The  driver  attribute names a specific set of low-
              level functions which will do the work  of  routing
              remote mail.  This attribute is required.

       _m_e_t_h_o_d
              type: _s_t_r_i_n_g




Local                    1 February 1988                       26





SMAIL(5)                                                 SMAIL(5)


       _t_r_a_n_s_p_o_r_t
              type: _s_t_r_i_n_g
              The  router  driver  has the option of specifically
              setting a transport to use for remote delivery.  If
              the  driver does not do so, then either a mmeetthhoodd or
              a ttrraannssppoorrtt attribute must exist to specify how the
              mail is to be delivered.  A mmeetthhoodd attribute speci-
              fies a file which contains a table  relating  host-
              names  to transports.  A ttrraannssppoorrtt attribute speci-
              fies a specific transport.  If the method file does
              not  contain a match for all hosts, then the trans-
              port named with the ttrraannssppoorrtt  attribute  is  used.
              The  format  of  a method file is given in the next
              section.

MMEETTHHOODD FFIILLEESS
       Method files define a relation between a set of  hostnames
       and  a set of transports to be used in delivering to those
       hostnames.  Method files  use  the  standard  routine  for
       reading  file  entries, just as with the _c_o_n_f_i_g, _d_i_r_e_c_t_o_r,
       _r_o_u_t_e_r and _t_r_a_n_s_p_o_r_t files.  Each entry  should  have  the
       form:

            _h_o_s_t_n_a_m_e  _t_r_a_n_s_p_o_r_t_-_n_a_m_e

       stating  that mail being sent to _h_o_s_t_n_a_m_e should be deliv-
       ered using the transport  _t_r_a_n_s_p_o_r_t_-_n_a_m_e.   As  a  special
       case,  if  the _h_o_s_t_n_a_m_e value is the special string ``*'',
       the entry matches any host.  This is a  catch-all  feature
       which  should  only  be used in the last entry in a method
       file.

       Entries in a method file can be associated with particular
       message  grades.  This allows different grades to use dif-
       ferent transports, such as non-demand  UUCP  for  messages
       with  a  bulk or junk precedence.  Grade ranges are speci-
       fied by appending a grade letter range  to  the  hostname,
       separated  by //.  Entries with grades can be in any of the
       forms:

            _h_o_s_t_n_a_m_e/X     _t_r_a_n_s_p_o_r_t_-_n_a_m_e
            _h_o_s_t_n_a_m_e/X-*   _t_r_a_n_s_p_o_r_t_-_n_a_m_e
            _h_o_s_t_n_a_m_e/*-Y   _t_r_a_n_s_p_o_r_t_-_n_a_m_e
            _h_o_s_t_n_a_m_e/X-Y   _t_r_a_n_s_p_o_r_t_-_n_a_m_e

       See the definition of the  ggrraaddeess  configuration  variable
       for  a  discussion of grade letters, and their correlation
       with message precedence strings.  In the first  form,  the
       transport  is used for an exact match of the grade letter.
       In the second form, a match requires a grade  a  character
       value  of at least X.  In the third, form a match requires
       a grade character value of at  most  Y.   The  final  form
       specifies  a  range  of  grades  from character value X to
       character value Y.



Local                    1 February 1988                       27





SMAIL(5)                                                 SMAIL(5)


       For example, with the default value for the  ggrraaddeess  vari-
       able,  the  following  file will use smtp for hosts llooccaall11
       and llooccaall22, if the precedence is air-mail or better;  oth-
       erwise,  for  any host with a precedence of first-class or
       better, demand-polled uucp is used; otherwise, queued uucp
       is used:

            local1/*-A     smtp
            local2/*-A     smtp
            */*-C          demand_uucp
            *         uucp

TTHHEE TTRRAANNSSPPOORRTT FFIILLEE
       The _t_r_a_n_s_p_o_r_t file describes the various possible ways, of
       delivering mail.  For example, some possibilities  are  to
       call  a program such as _u_u_x(1) to deliver mail to a remote
       host, to connect over TCP/IP to a remote host and converse
       using  an  SMTP  protocol,  or  to  deliver  local mail by
       appending to a user's mailbox file.

       NOTE:  Unlike the routers and directors files, the  trans-
              ports  file does not replace all compiled-in trans-
              ports.  Rather,  entries  in  the  transports  file
              override  existing entries of the same name, or add
              new entries.  Thus, if you  wish  to  add  one  new
              transport  definition,  you  need  only add the new
              definition, and do not need to duplicate all of the
              existing entries.

       The   following   list   describes  the  possible  generic
       attributes for transport file entries:

       _b_s_m_t_p
              type: _b_o_o_l_e_a_n
              Use a batched SMTP format,  where  the  message  is
              enclosed  in an envelope of SMTP commands.  This is
              not the same format commonly used on BITNET, as  it
              does  not  contain FORTRAN carriage control charac-
              ters.  This can be used  to  send  mail  to  remote
              hosts  using  SMTP formats even when direct two-way
              connections are not feasible.   For  example,  this
              will  work  over  UUCP  and eliminates difficulties
              with sending arbitrary addresses  as  arguments  to
              UUX.    Use   of  bbssmmttpp  also  turns  on  the  ddoottss
              attribute.  When  used  with  the  uuuuccpp  attribute,
              UUCP-style  !-path  addresses  are used in the SMTP
              envelope.

       _c_r_l_f
              type: _b_o_o_l_e_a_n
              If set, then each line of the  header  and  message
              will end in carriage-return/line-feed rather than a
              single newline character.  This  is  not  typically
              useful,  as the SMTP transport, which requires this



Local                    1 February 1988                       28





SMAIL(5)                                                 SMAIL(5)


              as a part of the interactive protocol  always  does
              this anyway.

       _d_e_b_u_g
              type: _b_o_o_l_e_a_n
              If  set,  replaces  the  body  of  the message with
              debugging information.  This can be used, for exam-
              ple,  as  a  shadow  transport to watch the flow of
              mail for a  while  for  debugging  purposes.   This
              essentially  allows for debugging without the ethi-
              cal and space problems of saving the personal  cor-
              respondence of others.

       _d_o_t_s
              type: _b_o_o_l_e_a_n
              If set, then use the hidden dot protocol.  All out-
              put lines which begin with dot will have  one  more
              dot prepended.  All of the various SMTP modes imply
              this behavior.

       _d_r_i_v_e_r
              type: _s_t_r_i_n_g
              The driver attribute names a specific set  of  low-
              level  functions which will do the work of deliver-
              ing mail.  This attribute is always required.

       _e_r_r_o_r___t_r_a_n_s_p_o_r_t
              type: _s_t_r_i_n_g
              names another transport that the message should  be
              sent to, if the first transport returns failure.

       _f_r_o_m
              type: _b_o_o_l_e_a_n
              If  set,  then supply a ``From_<_s_p_a_c_e_>'' line before
              the message when delivering  with  this  transport.
              If  this  is  a  remote  transport (i.e., the llooccaall
              attribute is not turned on) then this line will end
              with ``remote from _h_o_s_t_n_a_m_e'' where _h_o_s_t_n_a_m_e is the
              UUCP name for the local host.  This is  useful  for
              delivery  over  UUCP  and  for delivery to standard
              mailbox files, which require this format.

       _h_b_s_m_t_p
              type: _b_o_o_l_e_a_n
              ``Half-baked'' batched SMTP.  This is batched  SMTP
              mode  without  an initial HELO command or an ending
              QUIT command.  This can be used for creating  files
              which will be concatenated together at a later time
              to form one batch of SMTP commands containing  mul-
              tiple  messages.   Use of the hhbbssmmttpp attribute also
              turns on the ddoottss attribute.

       _l_o_c_a_l___x_f_o_r_m
              type: _b_o_o_l_e_a_n



Local                    1 February 1988                       29





SMAIL(5)                                                 SMAIL(5)


              If set, the form of the header and envelope  infor-
              mation  will  be  setup  for  delivery to the local
              host.  This performs no changes to existing  header
              fields,  other than insertion of commas into fields
              containing sender and  recipient  addresses.   This
              also    affects   the   form   of   any   generated
              ``From_<_s_p_a_c_e_>''  line  and  the  form  of  envelope
              addresses used in SMTP commands.

              This  can be used with remote delivery, if delivery
              is to a  remote  smail3.1  site,  which  is  useful
              within a domain that maintains consistent user for-
              warding  information.   This  leaves  messages   in
              unqualified format until leaving the domain through
              a gateway.

       _l_o_c_a_l
              type: _b_o_o_l_e_a_n
              This implies llooccaall__xxffoorrmm, but implies that delivery
              really  is  final delivery to a user, file, or pro-
              gram on the local host.  This  disables  generation
              of  a  bounce  message  resulting from an excessive
              message hop-count.

       _m_a_x___a_d_d_r_s
              type: _n_u_m_b_e_r
              This  states  the  maximum  number   of   recipient
              addresses  that  can  be  given  in one call to the
              transport.  If this is turned off then there is  no
              maximum  number.  The default number is 1 and typi-
              cally this is either left as 1 or turned off.

       _m_a_x___c_h_a_r_s
              type: _n_u_m_b_e_r
              This states the maximum  number  of  characters  in
              recipient  addresses  that can be given in one call
              to the transport.  If this is turned off then there
              is  no maximum number.  The default number is about
              one third of the  number  characters  that  can  be
              passed  as arguments to a program.  When using SMTP
              transports this  should  be  turned  off  unless  a
              remote host is known to be unable to handle a large
              number of addresses.  For delivery over UUCP  to  a
              remote  _r_m_a_i_l program, this should be around 200 or
              250, to avoid buffer overruns at the  remote  site.
              UUCP  generally  has small buffers to hold argument
              information.

              If _s_m_a_i_l is given an address whose  length  exceeds
              this  number,  then the address will be passed with
              one call to the transport.  Thus, this limit is not
              strictly enforced.





Local                    1 February 1988                       30





SMAIL(5)                                                 SMAIL(5)


       _m_a_x___h_o_s_t_s
              type: _n_u_m_b_e_r
              This  states  the maximum number of different hosts
              that can be given in one call to the transport.  If
              this  is turned off, using the form --mmaaxx__hhoossttss then
              there is no maximum number.  The default number  is
              1 and typically this is not changed.

       _r_e_c_e_i_v_e_d
              type: _b_o_o_l_e_a_n
              If set, then a RReecceeiivveedd:: field is inserted for mail
              being delivered with this transport.  The  form  of
              this   field   is  taken  from  the  rreecceeiivveedd__ffiieelldd
              attribute in the _c_o_n_f_i_g file.  This attribute is on
              be default.

       _r_e_t_u_r_n___p_a_t_h
              type: _b_o_o_l_e_a_n
              If  set,  then a RReettuurrnn--PPaatthh:: field is inserted for
              mail being delivered with this transport.  The form
              of  this  field is taken from the rreettuurrnn__ppaatthh__ffiieelldd
              attribute in the _c_o_n_f_i_g file.  This should only  be
              used for transports which perform final delivery to
              local destinations.

       _s_h_a_d_o_w
              type: _s_t_r_i_n_g
              This  names  another  transport  that  the  message
              should  be  sent  to.   This  could be used to, for
              example, start a program that looked up the  sender
              in  a  database  and  brought up a rendition of his
              face from a _f_a_c_e _s_e_r_v_e_r in a window on  your  work-
              station.   The  shadow  transport is called only if
              the primary transport successfully performs  deliv-
              ery.

       _s_t_r_i_c_t
              type: _b_o_o_l_e_a_n
              If  this  flag  is set, then some effort is done to
              transform mail which does  not  conform  to  RFC822
              standards.   This  is  potentially useful for sites
              which gateway between the UUCP zone and the  Inter-
              net.   In  general,  it  is not a good idea to turn
              this on as  it  changes  the  contents  of  headers
              fields.   This should only be done when it is known
              that some remote hosts only understand  mail  which
              conforms to the RFC822 standard.

       _u_n_i_x___f_r_o_m___h_a_c_k
              type: _b_o_o_l_e_a_n
              If  set  then  any  line in the body of the message
              which begins with ``From '' will have the character
              `>'  inserted  at  the beginning.  This is required
              for local delivery to mailbox files that are in the



Local                    1 February 1988                       31





SMAIL(5)                                                 SMAIL(5)


              standard  form  expected  by the System V _m_a_i_l_x _(_1_)
              and the BSD _M_a_i_l _(_1_) programs.

       _u_u_c_p
              type: _b_o_o_l_e_a_n
              If set then outgoing recipient  addresses  will  be
              converted   into   UUCP-style  paths  of  the  form
              _h_o_s_t_a_!_h_o_s_t_b_!_h_o_s_t_c_!_u_s_e_r.  An exception is  that  any
              use  of  `%'  as  an address operator is preserved.
              Thus, an envelope address of _u_s_e_r_%_h_o_s_t_b_@_h_o_s_t_a would
              be   converted   to  _h_o_s_t_a_!_u_s_e_r_%_h_o_s_t_b.   This  only
              affects envelope addresses and does NOT affect  the
              message or the message header.

       _i_n_e_t
              type: _b_o_o_l_e_a_n
              If  set  then  outgoing recipient addresses will be
              conform into to internet specifications.   This  is
              not  the  same  as  the strict attribute, since the
              transformations  apply   only   to   the   envelope
              addresses, and not to headers.  If iinneett is defined,
              then route-addr addresses will  be  generated  when
              routing to remote destinations, rather than !-style
              addresses.  Thus, if smail  is  given  the  address
              _u_s_e_r_%_h_o_s_t_@_g_a_t_e_w_a_y  and  _g_a_t_e_w_a_y  is reached through
              the path _h_o_s_t_a_!_h_o_s_t_b_!_h_o_s_t_c, then smail will  gener-
              ate  the address _@_h_o_s_t_b_,_@_h_o_s_t_c_:_u_s_e_r_%_h_o_s_t_@_g_a_t_e_w_a_y to
              be sent to the host _@_h_o_s_t_a.

       _r_e_t_r_y___d_i_r
              type: _s_t_r_i_n_g
              The subdirectory under X_MAIL_SPOOL_DIR_X/retry  to
              use  for  managing  host  retry  intervals for this
              transport.  By default, the name of  the  transport
              is  used.  However, multiple transports can share a
              retry directory by setting  rreettrryy__ddiirr  for  several
              transports  to  the  same  value.   For example, by
              default all of the default TCP/IP  SMTP  transports
              (iinneett__zzoonnee__ssmmttpp, uuuuccpp__zzoonnee__ssmmttpp, and llooccaall__ssmmttpp set
              rreettrryy__ddiirr to ``smtp''.

       _r_e_m_o_v_e___h_e_a_d_e_r
              type: _s_t_r_i_n_g
              Identify a header field that will be  removed  from
              the  message  for  transport.  This is an expansion
              string, so header removal  can  be  made  dependent
              upon  some  conditions.  If expansion of the string
              results in an  empty  string,  then  no  header  is
              removed.   Any  number  of rreemmoovvee__hheeaaddeerr attributes
              can be specified.

       _i_n_s_e_r_t___h_e_a_d_e_r, _a_p_p_e_n_d___h_e_a_d_e_r
              type: _s_t_r_i_n_g
              Add  the  given  header  field  at  the   beginning



Local                    1 February 1988                       32





SMAIL(5)                                                 SMAIL(5)


              (iinnsseerrtt__hheeaaddeerr)  or end (aappppeenndd__hheeaaddeerr) of the mes-
              sage header for  transport.   These  are  expansion
              strings,  so  the  header (and the existence of the
              header) can be made dependent on  some  conditions.
              If  expansion  of  the  string  results in an empty
              string, then no header is  added.   Any  number  of
              iinnsseerrtt__hheeaaddeerr  and  aappppeenndd__hheeaaddeerr attributes can be
              specified.

       As an example of the manipulation of headers, consider the
       addition  of  an  ``Organization''  header for all locally
       generated mail that does not already have an  Organization
       header.  This can be done with:

            append_header="${if and{{origin:local}{!header:organization}} \
                 Organization: ACME Explosives Corp.}"

       To  configure  a ``Content-Length'' field, which some sys-
       tems use to identify the length  of  a  message  within  a
       mailbox  file  rather  than  keying on lines starting with
       ``From'', use:

            remove_header="Content-Length",
            append_header="Content-Length: $body_size"

TTHHEE QQUUAALLIIFFYY FFIILLEE
       This section details the format and use  of  the  hostname
       qualification file.

       The  qualify file defines the domain name(s) to be used in
       making all hostnames fully-qualified.  Note that this file
       is  used only for bare hostnames, i.e. names without dots.

       The qualify file uses the  standard  routine  for  reading
       file entries.  Each entry should have the form:

            _h_o_s_t_n_a_m_e  _d_o_m_a_i_n

       stating that the host name _h_o_s_t_n_a_m_e should be considered a
       part of domain _d_o_m_a_i_n.  As a special case, if the _h_o_s_t_n_a_m_e
       value  is  the special string ``*'', the entry matches any
       host.  This is a catch-all feature which  should  only  be
       used in the last entry in a qualify file.  Typically, UUCP
       sites should should have an entry like:

            *         uucp

       at the end of the qualify file.

       If the qualify file is missing, or if no  entry  is  found
       that matches a given hostname, then no hostname qualifica-
       tion is performed.





Local                    1 February 1988                       33





SMAIL(5)                                                 SMAIL(5)


TTHHEE RREETTRRYY FFIILLEE
       This section details the format and use of the retry  con-
       trol file.

       The  retry  file  defines,  by  target domain, the minimum
       interval between  delivery  attempts  and/or  the  maximum
       duration over which to continue attempting delivery.

       Each retry entry should have the form:

            _d_o_m_a_i_n_[_:_d_o_m_a_i_n_._._._]  [_i_n_t_e_r_v_a_l]/[_d_u_r_a_t_i_o_n]

       stating  that,  for  the given domain(s), delivery will be
       attempted no  more  frequently  than  _i_n_t_e_r_v_a_l,  and  that
       delivery attempts will cease after _d_u_r_a_t_i_o_n.

       Values for _i_n_t_e_r_v_a_l and _d_u_r_a_t_i_o_n are in seconds.  However,
       they can be written as a sequence of numbers with suffixes
       of  `s'  for  seconds, `m' for minutes, `h' for hours, `d'
       for days, `w' for weeks and `y' for years.   For  example,
       1100mm//22dd specifies an _i_n_t_e_r_v_a_l of ten minutes and a _d_u_r_a_t_i_o_n
       of two days.

       Either or both of _i_n_t_e_r_v_a_l and _d_u_r_a_t_i_o_n may be omitted, in
       which case they are taken to be zero (i.e. no limit).

       As a special case, if a retry file entry has a domain list
       equal to the special string ``*'', that entry matches  any
       domain.   This feature is a catch-all which should only be
       used in the last entry in a retry file.

       If a retry file contains no ``*''  catch-all  entry,  then
       the    configuration    parameters    _r_e_t_r_y___i_n_t_e_r_v_a_l   and
       _r_e_t_r_y___d_u_r_a_t_i_o_n will be used to control retries to  domains
       without specific retry entries.

TTHHEE DDIIRREECCTTOORR DDRRIIVVEERRSS
       This   section   details  the  usage  and  driver-specific
       attributes for all of  the  director  drivers  distributed
       with  smail.   See  the section TTHHEE DDIIRREECCTTOORR FFIILLEE for more
       information on directors.

TThhee AAlliiaassffiillee DDrriivveerr
       The base standard for the format of the aliases  and  for-
       ward  files  should be the format used by the BSD _s_e_n_d_m_a_i_l
       program.  This format is simple yet  powerful  enough  for
       most needs.

       A  sendmail-compatible  aliases file consists of relations
       between alias names and the lists of entities to that  the
       aliases expand.  Each entry is of the form:

            _a_l_i_a_s_-_n_a_m_e: _a_d_d_r_e_s_s, ...




Local                    1 February 1988                       34





SMAIL(5)                                                 SMAIL(5)


       The following is a sample alias file for a machine nsavax:

            # Sample aliasing file for nsavax
            root: brown, casey       # redirect root's mail
            MAILER-DAEMON: postmaster
            postmaster: brown        # brown maintains netnews and mail
            netnews: brown
            north: north, fawn       # copy fawn on all north's mail

            # post important information to network
            msgs: local-msgs@ciacray, local-msgs@nscprofs,
                 local-msgs@nsavax
            local-msgs: "|/usr/ucb/msgs -s"# deliver to msgs program

            # administrivia
            rnews: |/usr/lib/news/uurec# read news messages from mail

            # mailing lists for accessing users on the local network
            nsavax-users: :include:/usr/lib/mail/nsavax-users
            ciacray-users: :include:/usr/lib/mail/ciacray-users
            nscprofs-users: :include:/usr/lib/mail/nscprofs-users

            # mail to everybody on the local network
            everybody: nsavax-users, # well, almost everybody
                 ciacray-users,
                 nscprofs-users

            # save mail to mailing list requests and send to moderator
            funding-request: /usr/log/funding-req, reagan@nscprofs
            covert-bugs-request: /usr/log/covert-bugs-req, james.bond@ciacray

            # broadcast to mailing lists, and save a copy
            funding:                 # excludes congress
                 :include:/usr/list/funding,
                 /usr/log/funding    # save all messages here
            covert-bugs:             # includes kgb
                 :include:/usr/list/covert-bugs,
                 /usr/log/covert-bugs# save all messages here

       The aliasfile driver searches for matches between a  local
       address  on  input  and an _a_l_i_a_s_-_n_a_m_e from the alias file.
       If a match is found, it returns the associated list.

       It has the following driver attributes:


       _f_i_l_e
              type: _s_t_r_i_n_g
              Define  the  name  of  the  file   containing   the
              database.   Except when this is not appropriate for
              the _p_r_o_t_o being used, if this does not  begin  with
              ``/'',  it  will  be  referenced  relative  to  the
              _s_m_a_i_l___l_i_b___d_i_r directory.




Local                    1 February 1988                       35





SMAIL(5)                                                 SMAIL(5)


       _i_n_t_e_r_v_a_l
              type: _n_u_m_b_e_r
              A sleep interval between open retries, in  seconds.
              On  systems  which  have  1 second granularities on
              wakeup times and where, as a  result,  sleep  times
              can  be  nearly 0 seconds, this number should be at
              least 2.

       _m_o_d_e_m_a_s_k
              type: _n_u_m_b_e_r
              A mask, ala _u_m_a_s_k(2), defining the maximum  permis-
              siveness  allowed  for the permissions on the alias
              file.  For example, a  modemask  of  022  disallows
              write access to all but the file owner.  This value
              should be chosen to strike a reasonable  compromise
              between  security  and user convenience.  It should
              also take into account the use of  the  oowwnneerrss  and
              oowwnnggrroouuppss  attributes described below.  A paragraph
              below describes the consequences  for  a  file  not
              meeting this criteria.

       _o_p_t_i_o_n_a_l
              type: _b_o_o_l_e_a_n
              If  set,  then  if  the open fails, assume an empty
              alias file.  This is useful for optional databases.
              For  example, in a networking environment, worksta-
              tions may be configured with the option of having a
              private alias file, without the necessity of creat-
              ing such a file on each host.

       _o_w_n_e_r_s
              type: _s_t_r_i_n_g
              A list of permissible owners for the alias file.  A
              paragraph  below  describes  the consequences for a
              file not meeting this criteria.

       _o_w_n_g_r_o_u_p_s
              type: _s_t_r_i_n_g
              A list of permissible owning groups for  the  alias
              file.  A paragraph below describes the consequences
              for a file not meeting this criteria.

       _p_r_o_t_o
              type: _s_t_r_i_n_g
              Names the protocol used in  opening  and  searching
              the database.  Possibilities are discussed below.

       _r_e_o_p_e_n
              type: _b_o_o_l_e_a_n
              If  this  attribute  is  on, the alias file will be
              closed and reopened after each call to the  driver.
              This  is useful for systems that have a shortage of
              file descriptors yet wish to access a large  number
              of databases.



Local                    1 February 1988                       36





SMAIL(5)                                                 SMAIL(5)


       _r_e_t_r_i_e_s
              type: _n_u_m_b_e_r
              the  maximum count of open retries.  This should be
              greater than zero if the system does  not  have  an
              atomic rename(2) system call, as the alias file may
              not always exist while being modified.

       _t_r_y_a_g_a_i_n
              type: _b_o_o_l_e_a_n
              If set, then if the open fails, the  resolution  of
              local  addresses will be attempted at a later time.
              This is useful in a  networking  environment  where
              failure  to  open  a  database (such as a remote YP
              database) may be a result of a server machine being
              down or temporarily inaccessible.

       If  any  of  the  attributes mmooddeemmaasskk, oowwnneerrss or oowwnnggrroouuppss
       reject the  file  as  a  possible  security  problem,  all
       addresses  returned  are flagged with the _c_a_u_t_i_o_n bit set.
       See the generic director attribute nnoobbooddyy for more  infor-
       mation.

       The   current  list  of  possible  values  for  the  _p_r_o_t_o
       attribute is:

       bsearch   Use a binary search to  look  through  a  sorted
                 file  arranged  as  lines which begin with a key
                 and are followed by the  value  associated  with
                 the  key,  separated  by  a colon or whitespace.
                 The file should be sorted by the key, not by the
                 line.   The  _m_k_s_o_r_t(8)  utility sorts lines cor-
                 rectly.  Care should be  taken  when  using  the
                 regular  _s_o_r_t(1)  to  ensure  that the sort uses
                 proper delimiters.

       dbm       Use the BSD  _d_b_m(3x)  or  _n_d_b_m(3x)  routines  to
                 search  for  the  key.  The keys and data in the
                 dbm database must end in a nul  byte.   If  only
                 the  _d_b_m(3x)  library is available then only one
                 dbm database can be used by _s_m_a_i_l  _,  while  the
                 _n_d_b_m(3x)  routines  will  allow  any  number  of
                 databases.  However, it is always okay for  mul-
                 tiple  routers and directors to use the same dbm
                 database, if this is useful.

       aliasyp   This is a variant of the  _y_p  protocol  that  is
                 compatible with the standard Sun _m_a_i_l_._a_l_i_a_s_e_s YP
                 service.  This database has a  different  format
                 from  other  databases  which must be taken into
                 account when sending requests.   Typically  this
                 is not useful for a path database.

       lsearch   Use  a linear search using the same read routine
                 used to read config files.   `#'-style  comments



Local                    1 February 1988                       37





SMAIL(5)                                                 SMAIL(5)


                 are allowed and the beginning of each file entry
                 should be the key, followed by whitespace  or  a
                 colon  character.   The rest of the entry should
                 be the value associated with the key.

       yp        Use  the  Sun  YP  service  to  access  a  paths
                 database  stored  on  a remote machine.  In this
                 case the value for the ffiillee attribute is of  the
                 form:

                 _d_o_m_a_i_n___n_a_m_e:_d_a_t_a_b_a_s_e___n_a_m_e

       where  the  _d_o_m_a_i_n___n_a_m_e_:  is  optional and defaults to the
       default YP domain for the local host.

       nialias   Use the NeXT NetInfo database, for getting  user
                 aliasing information.

       A simple entry in the director file is:

            # don't perform any authentication on the alias file
            aliases: driver=aliasfile;
                 file=/usr/lib/aliases, proto=dbm

TThhee FFoorrwwaarrddffiillee DDrriivveerr
       Sendmail-compatible  forward files have the same structure
       as mailing lists.  This format is:

            _a_d_d_r_e_s_s, _a_d_d_r_e_s_s, ...

       Where newlines can  be  included  wherever  whitespace  is
       allowed,  and  where a `#' character begins a comment that
       ends at the end of the  line.   Comments  are  treated  as
       whitespace.

       An  example forward file for the user james.bond on nsavax
       is:

            # send to my own machine, but keep a copy here
            # just in case it doesn't make it there.
            bond%british-ss@ciacray, james.bond

       A useful forward file is:

            # I am on vacation, save away my mail, but tell people
            # I won't be back for a while
            hustead,
            "|mailx -s 'Yep, gone fishing!' \"$SENDER\" < $HOME/.fish"

       Which will save to Ted Hustead's  mailbox  file  and  will
       also execute the following shell command:

            mailx -s 'Yep, gone fishing!' "$SENDER" < $HOME/.fish




Local                    1 February 1988                       38





SMAIL(5)                                                 SMAIL(5)


       where  the shell variables $HOME and $SENDER are available
       from the environment as the user's home directory and  the
       sender   address,   respectively.    Note   that   if  the
       iiggnnoorree__wwrriittee__eerrrroorrss attribute is not turned on in the pipe
       transport,  this example will cause mail to be returned to
       the sender stating that a write error occurred on the pipe
       to mailx.  To prevent this, the line could also be changed
       to:

            "|cat>/dev/null;\
             mailx -s 'Yep, gone fishing' \"$SENDER\"<$HOME/.fish"

       where the ``cat>/dev/null'' will read ssttddiinn, preventing  a
       write error on the pipe.

       The  current list of driver attributes for the forwardfile
       driver is:

       _c_a_u_t_i_o_n
              type: _s_t_r_i_n_g
              This string defines a list of users and directories
              which  should  cause  addresses  to be flagged with
              _c_a_u_t_i_o_n.  Each entry in the list is expanded  indi-
              vidually.   If  this  string expansion fails, it is
              ignored.  A number, or a number range (in the  form
              _l_o_w___n_u_m_b_e_r-_h_i_g_h___n_u_m_b_e_r)  can  be  used  to indicate
              numerical uid's that should be  treated  with  cau-
              tion.   Typically,  this string is ``0'', thus pre-
              venting file and shell command from being performed
              as  the superuser, ``0-99'', preventing access with
              a system id.

       _c_h_e_c_k_o_w_n_e_r
              type: _b_o_o_l_e_a_n
              If set, then one of the permissible owners will  be
              the user associated with the forward file.

       _f_i_l_e
              type: _s_t_r_i_n_g
              The  name of a file containing the forward informa-
              tion for a user.  This string will be expanded with
              the  local name passed to the director available as
              $$uusseerr and any associated home  directory  available
              as  $$HHOOMMEE.   If  this string expansion fails, it is
              ignored.

       _f_o_r_w_a_r_d_t_o
              type: _b_o_o_l_e_a_n
              If set, then the file must begin with ``Forward  to
              '' to be considered a forward file.  Also, only the
              first line is scanned for addresses.   This  ``fea-
              ture''  mimics the capability found in some systems
              for hiding forwarding  information  in  user  mail-
              boxes.



Local                    1 February 1988                       39





SMAIL(5)                                                 SMAIL(5)


       _m_o_d_e_m_a_s_k
              type: _n_u_m_b_e_r
              A  mode  mask  defining  the maximum permissiveness
              allowed for the  permissions  on  a  forward  file.
              Analogous  to the modemask attribute for the alias-
              file driver.

       _p_r_e_f_i_x
              type: _s_t_r_i_n_g
              This attribute requires that an address begin  with
              the specified string to be matched by the director.
              In addition, any reference to the $$uusseerr variable in
              the file attribute will have this prefix removed.

       _s_u_f_f_i_x
              type: _s_t_r_i_n_g
              This  attribute  requires  that an address end with
              the specified string to be matched by the director.
              In addition, any reference to the $$uusseerr variable in
              the file attribute will have this  suffix  removed.
              Both  a pprreeffiixx and a ssuuffffiixx attribute can be speci-
              fied for a director.  In this case both the  prefix
              and the suffix string are required for a match.

       _o_w_n_e_r_s
              type: _s_t_r_i_n_g
              Specifies  a  list  of user who may own the forward
              file.

       _o_w_n_g_r_o_u_p_s
              type: _s_t_r_i_n_g
              Specifies a list of groups who may own the  forward
              file.

       _u_n_s_e_c_u_r_e
              type: _s_t_r_i_n_g
              This string defines a list of users and directories
              which should cause addresses  to  be  flagged  with
              _u_n_s_e_c_u_r_e.  This will prevent delivery to shell com-
              mands or files.  Each list entry is  expanded.   If
              this string expansion fails, it is ignored.  A num-
              ber,   or   a   number   range   (in    the    form
              _l_o_w___n_u_m_b_e_r-_h_i_g_h___n_u_m_b_e_r)  can  be  used  to indicate
              numerical uid's that should be  treated  with  cau-
              tion.

       If  none of the attributes oowwnneerrss, oowwnnggrroouuppss or cchheecckkoowwnneerr
       is given, no checks are made  on  ownership  restrictions.
       The  default  modemask  is 0, effectively disabling checks
       for file mode restrictions.


       NOTE:  Unless  the  file  attribute  references  $$HHOOMMEE  or
              begins  with  ``~/'' the forward file driver can be



Local                    1 February 1988                       40





SMAIL(5)                                                 SMAIL(5)


              used to provide forward files for  users  or  names
              that  are  not  listed in the passwd file.  In this
              case, $$uusseerr merely expands to the address passed to
              the  forwardfile  driver.  This feature can be used
              for setting up forwarding for obsolete accounts  or
              mailing list directories.

       The  pprreeffiixx  and  ssuuffffiixx  attributes can be used to define
       mailing list  directories  associated  with  ownership  or
       request  addresses.  To get a directory of mailing list or
       alias owners, a pprreeffiixx of ``owner-'' could  be  used.   To
       create  a  directory  of  request  addresses,  a ssuuffffiixx of
       ``-request'' could be used.

       An example of useful forwardfile director entries are:

            # put forwarding addresses for obsolete accounts under
            # the /u/obsolete directory.  These will contain only
            # forwarding addresses.  This is maintained by users in
            # the group "admin" or "staff".
            obsolete:
                 driver=forwardfile;
                 file=/u/obsolete/$user,
                 owngroups=admin:staff

            # handle per-user forward files in each user's home
            # directory.  This is roughly compatible with BSD
            # sendmail, though performs some access checks, and
            # is very cautious of directories which are remotely
            # accessible.  Root's .forward entries will operate
            # from the nobody uid.
            dotforward:
                 driver=forwardfile, nobody;
                 file=~/.forward, unsecure=~uucp:~ftp,
                 caution=root, checkowner, owners=root,
                 modemask=022

            # allow the "Forward to " feature to be used from user
            # mailbox files as used in System V.
            forwardto:
                 driver=forwardfile, nobody;
                 file=/usr/spool/mail/$user, caution=root,
                 checkowner, modemask=002

            # define a mailing list directory, with any shell commands
            # executed under the nobody user id.  Any file in this
            # directory defines the name and contents of a mailing list.
            mailing_lists:
                 driver=forwardfile, caution;
                 file=/usr/lib/smail/lists/${lc:user}

            # define a directory of owner mailing lists.  Addresses
            # specified in this directory specify the owner address of a
            # mailing list or alias.



Local                    1 February 1988                       41





SMAIL(5)                                                 SMAIL(5)


            owner_lists:
                 driver=forwardfile, caution;
                 file=/usr/lib/smail/lists/owners/${lc:user},
                 prefix="owner-"

TThhee MMaaiilliinngg--lliisstt DDrriivveerrss
       Mailing-list drivers come in two forms, one form for mail-
       ing-lists  derived  by  aliasing drivers, and another form
       for mailing-lists derived by forwarding drivers.  The rea-
       son  for  having  two  forms is that security options take
       different forms  depending  on  where  mailing-lists  come
       from.   Also,  by  having them separately recognized it is
       possible to allow pipes and files  in  mailing-lists  from
       alias  files  but  not from forward files.  Note that if a
       new driver is written that does not comply  to  the  stan-
       dards  for  alias drivers and forwarding drivers, and that
       can produce mailing lists, a new mailing-list  driver  may
       need to be written as well.

       The format of a mailing list file is the same as that of a
       forward file, a simple list of  addresses,  with  optional
       comments.

       The  driver  attributes are common to both of the mailing-
       list drivers:

       _c_o_p_y_o_w_n_e_r_s
              type: _b_o_o_l_e_a_n
              If set, attributes related  to  ownership  restric-
              tions  are  taken  from the director which produced
              the mailing list address.

       _c_o_p_y_s_e_c_u_r_e
              type: _b_o_o_l_e_a_n
              The modemask is copied from the director which pro-
              duced the mailing list address.

       _i_n_t_e_r_v_a_l
              type: _n_u_m_b_e_r
              The  sleep  interval,  in seconds, between retries.
              For systems that have a 1 second  timing  granular-
              ity, this number must be at least 2 to guarrantee a
              non-zero sleep interval.

       _m_a_t_c_h___d_i_r_e_c_t_o_r
              type: _s_t_r_i_n_g
              Names the specific director that this entry matches
              expansions  of.  This can be used to assign differ-
              ent attributes from alternate uses of the _a_l_i_a_s_f_i_l_e
              and _f_o_r_w_a_r_d_f_i_l_e directors.

       _m_o_d_e_m_a_s_k
              type: _n_u_m_b_e_r
              The maximum permissiveness of file modes.



Local                    1 February 1988                       42





SMAIL(5)                                                 SMAIL(5)


       _o_w_n_e_r_s
              type: _s_t_r_i_n_g
              A list of allowed owners.

       _o_w_n_g_r_o_u_p_s
              type: _s_t_r_i_n_g
              A list of allowed owning groups.

       _r_e_t_r_i_e_s
              type: _n_u_m_b_e_r
              The maximum count of open retries.

TThhee UUsseerr DDrriivveerr
       The user director directs mail to a mailbox for known user
       on the local host.  It will succeed if the  local  address
       matches  a user on the system and will put an entry on the
       list of fully-resolved addresses.

       The driver attributes are:

       _p_r_e_f_i_x
              type: _s_t_r_i_n_g
              The prefix, if non-NULL, must be found in the front
              of  the  username for this driver to be used.  This
              prefix is removed from the username prior to deter-
              mining  if  it  is  a valid user on the local host.
              This can be used to set up an  alternate  name  for
              each  user  on  the  system which is not matched by
              aliasing or forwarding director.  Commonly,  pprreeffiixx
              will  be set to ``real-'' for one of the directors,
              so that mail can be guaranteed to be delivered to a
              user's  mailbox  file on a specific host by mailing
              to an address such as ``real-tron@namei.uucp.''  If
              a  match  is found, the actual username is given to
              the transport.

       _t_r_a_n_s_p_o_r_t
              type: _s_t_r_i_n_g
              The name of the transport  to  associate  with  the
              address.

       A typical user director entry in the director file is:

            user:  driver=user; transport=local

       This  will  associate  any mail destined for a user on the
       local host with the llooccaall transport.

TThhee SSmmaarrttuusseerr DDrriivveerr
       It may be that you wish all local addresses that you don't
       recognize  to be sent elsewhere.  For example, there could
       be a host in your domain that  knows  where  most  of  the
       domain's  users  reside.  The _s_m_a_r_t_u_s_e_r driver is a conve-
       nient way of handling this case, by redirecting  mail  for



Local                    1 February 1988                       43





SMAIL(5)                                                 SMAIL(5)


       unknown users to another host.  Note that this must be the
       last director entry, if it is used, because it  is  gener-
       ally non-discriminatory.

       The  possible  driver attributes for the smart user driver
       are:

       _n_e_w___u_s_e_r
              type: _s_t_r_i_n_g
              This defines the new address  to  direct  mail  to.
              This  string will be string expanded with $$uusseerr set
              to the local address name, and with $$HHOOMMEE being any
              the associated home directory, if there is one.  It
              is a configuration error for this string  expansion
              to fail.

       _w_e_l_l___f_o_r_m_e_d___o_n_l_y
              type: _b_o_o_l_e_a_n
              If  set,  the  _s_m_a_r_t_u_s_e_r  driver  only  matches  an
              address if it contains characters exclusively  from
              the  set of letters, digits, whitespace, as well as
              `-', `_', `+', and `.'.

       If the wweellll__ffoorrmmeedd__oonnllyy attribute is on, any use of  $$uusseerr
       in  the nneeww__uusseerr value will have any groups of one or more
       whitespace and dot are characters collapsed  into  exactly
       one dot.  If it is off, the $$uusseerr value may be enclosed in
       double-quotes, with backslash escapes  where  appropriate.
       This  prevents  the  the  value of $$uusseerr from changing the
       form of the address.

       A sample entry is:

            smartuser:
                 driver=smartuser;
                 new_user=$user@gateway.domain,
                 well_formed_only

       With this entry, the input addresses:

            john
         and     John Q. Public

       will become:

            john@gateway.domain
         and     John.Q.Public@gateway.domain

       respectively.  If wweellll__ffoorrmmeedd__oonnllyy had not been  set,  the
       second address would have been:

            "John Q. Public"@gateway.domain

       whereas the input address:



Local                    1 February 1988                       44





SMAIL(5)                                                 SMAIL(5)


            \unusual"address"in\deed

       would become:

            "\\unusual\"address\"in\\deed"@gateway.domain

       Addresses  which  are produced by the smartuser driver are
       flagged as such and will not themselves be matched by  the
       smartuser  driver.  Thus, infinite loops will not occur if
       ``gateway.domain,'' from the example, happens  to  be  the
       local host.

       It  is  possible  to  set the new_user value in the _c_o_n_f_i_g
       file.  This is done by setting the config  file  attribute
       smart_user.   For  example,  the config file could contain
       the following line:

            smart_user = $user@gateway.domain

       Then, if the entry in the director file was:

            smart_user: driver=smart_user; well_formed_only

       the  configuration  would  be  equivalent  to  the  second
       _s_m_a_r_t___u_s_e_r example above.  This makes it possible to share
       copies of the director file among several  machines,  with
       the smart user configuration specific to one machine being
       set in its private configuration file.  This  config  file
       attribute  is  used  only if the _n_e_w___u_s_e_r attribute is not
       given in the _s_m_a_r_t___u_s_e_r entry.

TTHHEE RROOUUTTEERR DDRRIIVVEERRSS
       This  section  details  the  usage   and   driver-specific
       attributes  for all of the router drivers distributed with
       smail.  See the section TTHHEE RROOUUTTEERR FFIILLEE for more  informa-
       tion on routers.

TThhee PPaatthhaalliiaass DDrriivveerr
       The  pathalias  router  computes routes from a database in
       the style produced by the pathalias program.  It  has  the
       following driver-specific attributes:

       _d_o_m_a_i_n
              type: _s_t_r_i_n_g
              A  list of domains to be stripped from the end of a
              hostname before it is searched for in the database.
              Multiple  domains,  in  this list, are separated by
              colons.

       _f_i_l_e
              type: _s_t_r_i_n_g
              This defines the name of the  file  containing  the
              database.   Except when it does not make sense as a
              result of the _p_r_o_t_o used, if this  does  not  begin



Local                    1 February 1988                       45





SMAIL(5)                                                 SMAIL(5)


              with  ``/'',  it will be referenced relative to the
              _s_m_a_i_l___l_i_b___d_i_r directory.

       _i_n_t_e_r_v_a_l
              type: _n_u_m_b_e_r
              The number of seconds to wait between open retries.

       _o_p_t_i_o_n_a_l
              type: _b_o_o_l_e_a_n
              If  set,  then  if  the open fails, assume an empty
              alias file.  This is useful for optional databases.
              For  example, in a networking environment, worksta-
              tions may be configured with the option of having a
              private alias file, without the necessity of creat-
              ing such a file on each host.

       _p_r_o_t_o
              type: _s_t_r_i_n_g
              Names the protocol used in  opening  and  searching
              the database.  Possibilities are discussed below.

       _r_e_o_p_e_n
              type: _b_o_o_l_e_a_n
              If  set,  the pathalias will be closed and reopened
              after each call to the pathalias driver.   This  is
              useful  in  environments where file descriptors are
              scarce but many databases are desired.

       _r_e_q_u_i_r_e_d
              type: _s_t_r_i_n_g
              A list of domains which targets are required to  be
              for  a  match.   The names are not stripped, unless
              they are also specified by the ddoommaaiinn attribute.

       _r_e_t_r_i_e_s
              type: _n_u_m_b_e_r
              The maximum number of retries for opening  a  file.
              This  is useful on systems without an atomic rename
              system call.  On such systems there will be a  win-
              dow  of  vulnerability when new databases are moved
              into place where no file will exist.

       _t_r_y
              type: _s_t_r_i_n_g
              A list of domains to be stripped only if the target
              was  not  found  in the database without the domain
              stripped.  (This is currently not supported).

       _t_r_y_a_g_a_i_n
              type: _b_o_o_l_e_a_n
              If set, then if the open fails, the  resolution  of
              local  addresses will be attempted at a later time.
              This is useful in a  networking  environment  where
              failure  to  open  a  database (such as a remote YP



Local                    1 February 1988                       46





SMAIL(5)                                                 SMAIL(5)


              database) may be a result of a server machine being
              down or temporarily inaccessible.

       The   current  list  of  possible  values  for  the  _p_r_o_t_o
       attribute is:

       bsearch   Use a binary search to  look  through  a  sorted
                 file  arranged  as  lines which begin with a key
                 and are followed by the  value  associated  with
                 the key, separated by a colon or whitespace.

       dbm       Use  the  BSD  _d_b_m(3x)  or  _n_d_b_m(3x) routines to
                 search for the key.  The keys and  data  in  the
                 dbm  database  must  end in a nul byte.  If only
                 the _d_b_m(3x) library is available then  only  one
                 dbm  database  can  be used by _s_m_a_i_l _, while the
                 _n_d_b_m(3x)  routines  will  allow  any  number  of
                 databases.   However, it is always okay for mul-
                 tiple routers and directors to use the same  dbm
                 database, if this is useful.

       lsearch   Use  a linear search using the same read routine
                 used to read config files.   `#'-style  comments
                 are allowed and the beginning of each file entry
                 should be the key, followed by whitespace  or  a
                 colon  character.   The rest of the entry should
                 be the value associated with the key.

       yp        Use  the  Sun  YP  service  to  access  a  paths
                 database  stored  on  a remote machine.  In this
                 case the value for the ffiillee attribute is of  the
                 form:

                 _d_o_m_a_i_n___n_a_m_e:_d_a_t_a_b_a_s_e___n_a_m_e

       where  the  _d_o_m_a_i_n___n_a_m_e_:  is  optional and defaults to the
       default YP domain for the local host.

       aliasyp   This is a variant of the  _y_p  protocol  that  is
                 compatible with the standard Sun _m_a_i_l_._a_l_i_a_s_e_s YP
                 service.  This database has a  different  format
                 from  other  databases  which must be taken into
                 account when sending requests.   Typically  this
                 is not useful for a path database.

       All  database  lookups  are either independent of case or,
       when case independent lookups are impossible, case-folded.
       Thus, keys in DBM or YP databases must be in lower case.

       As  an  example of the use of the ddoommaaiinn, ttrryy and rreeqquuiirreedd
       driver attributes, if the ddoommaaiinn value is  ``uucp,''  then
       any  hostname  that  ends  in  .uucp  will  have the .uucp
       removed before being looked up.  Alternately, if  the  the
       ttrryy  value is ``uucp,'' then ``.uucp'' is stripped only if



Local                    1 February 1988                       47





SMAIL(5)                                                 SMAIL(5)


       the original was not found.   If  the  rreeqquuiirreedd  value  is
       ``uucp''  then  a  hostname is not a candidate for a match
       unless it ends in ``.uucp.''  The effects  of  ddoommaaiinn  and
       ttrryy  are  not  cumulative and a hostname is applied to the
       rreeqquuiirreedd attribute value before being  applied  to  ddoommaaiinn
       and ttrryy in that order.

       Note  that  the  length of any stripped string is added to
       the count of characters matched for purposes  of  deciding
       which router had the most complete match.

       A sample pathalias router entry is:

            pathalias:
                 transport=uux, driver=pathalias;
                 file=paths, proto=bsearch,
                 domain=uucp

       An example of a pathalias file for the site _w_a_l_l_d_r_u_g is:

               .amdahl.com      amdahl!%s
               amdahl           amdahl!%s
               dgcad            namei!glotz!nsavax!dgcad!%s
               glotz            namei!glotz!%s
               hoptoad          hoptoad!%s
               kgbvax           kgbvax!%s
               kremvax          kremvax!%s
               namei            namei!%s
               nsavax           namei!glotz!nsavax!%s

       This  data  base  associates a host or domain name, on the
       left hand side, with a path, on the right hand side.   The
       right  hand side should be a UUCP-style `!'-path ending in
       a ``%s''.  The format is intended to be more general, with
       the  ``%s''  showing  where  to  put a user name.  Indeed,
       _p_a_t_h_a_l_i_a_s(8) can produce paths involving  both  right  and
       left operators such as:

            decwrl    decwrl!%s@ucbvax

       This  form is not recommended in general because of a his-
       torical disagreement over  the  precedence  of  ``!''  and
       ``@''  which  is  not  always  resolved  correctly  by the
       pathalias  program.   By   standardizing   on   UUCP-style
       `!'-paths,  as  will  be produced from the USENET maps, we
       avoid many routing  ambiguities.   If  the  path  is  just
       ``%s,'' it denotes a name for the local host.

TThhee UUuunnaammee DDrriivveerr
       Some  sites in the UUCP zone may wish to use a direct path
       to  their  neighbors,  without  relying  on  a   pathalias
       database.   Alternately,  a  site  may  wish  to  use  the
       pathalias routes to their neighbors only in the case  that
       a domain address is given (i.e., ``_n_e_i_g_h_b_o_r.uucp'').



Local                    1 February 1988                       48





SMAIL(5)                                                 SMAIL(5)


       A  simple  driver  that  meets  these  requirements is the
       uuuunnaammee driver, which reads a list of  hostnames  from  the
       output  of  a shell command (normally //uussrr//bbiinn//uuuunnaammee) and
       uses this list to match neighboring hostnames.

       An example entry for a site that wishes to route to  their
       neighbors for hostnames that may end in .uucp is:

            uuname: transport=uux, driver=uuname;
                 cmd=/usr/bin/uuname, domain=uucp

       An  alternative  is  a  site  that  wishes  to  bypass the
       pathalias router only for explicit target matches, so that
       the  form  ``_n_e_i_g_h_b_o_r.UUCP'' will be routed through, as an
       example, pathalias.  This can be done by not specifying  a
       domain, as in:

            uuname:  transport=uux, driver=uuname; cmd=/usr/bin/uuname

       The  _u_u_n_a_m_e  driver also supports the ddoommaaiinn, rreeqquuiirreedd and
       ttrryy attributes, and all three domain-style attributes  can
       be  colon  separated  lists.  See the pathalias driver for
       more details on these attributes.

       In addition, there is a string attribute,  ssttaattffiillee  which
       names  a file which can be used to determine when the out-
       put of the shell command will change.  For  example,  when
       used with the uuname command this would normally be either
       _/_u_s_r_/_l_i_b_/_u_u_c_p_/_L_._s_y_s or _/_u_s_r_/_l_i_b_/_u_u_c_p_/_S_y_s_t_e_m_s depending  on
       whether  a  site  is  using  HoneyDanBer or stock V7-style
       UUCP.  If a ssttaattffiillee attribute is defined, then smail dae-
       mons  that  expect to deliver multiple messages will cache
       the output of the shell command.  The  specified  pathname
       will  then be checked at regular intervals to determine if
       the command should  be  reissued  to  refresh  the  cached
       information.

TThhee QQuueerryypprrooggrraamm DDrriivveerr
       If  no  other  router  driver  meets  a particular routing
       requirement, but a shell script or C program can be  writ-
       ten  which  does,  the  qquueerryypprrooggrraamm driver can be used to
       access this script or program.  This driver  runs  a  pro-
       gram,  with  arguments,  and  examines its exit status and
       standard  output  for  information.   The  program  should
       return  an exit status of zero to indicate a match for the
       target host, non-zero otherwise.  Optionally, this program
       can write a path and a transport on its standard output to
       provide additional information.  If a path is not returned
       then  a  one-hop  path to the target host is assumed.  The
       program is always executed as an unprivileged user.

       The qquueerryypprrooggrraamm driver supports the ddoommaaiinn, rreeqquuiirreedd  and
       ttrryy  attributes,  as  defined  in  the  description of the
       ppaatthhaalliiaass driver.   The  program  and  its  arguments  are



Local                    1 February 1988                       49





SMAIL(5)                                                 SMAIL(5)


       described  in  terms  of a ccmmdd attribute which is a string
       consisting  of  white-space-separated  tokens  which   are
       expanded  to form a program name and the arguments to pass
       to that program.  The variable $$hhoosstt can be used to obtain
       the  target  host string.  White space or punctuation from
       an expansion variable do not delimit arguments.  Two addi-
       tional boolean attributes affect the driver's behavior:

       rreeaadd__ppaatthh
              If  this  attribute is enabled, then a path is read
              as the first white-space  delimited  field  in  the
              first  line of output from the program.  If no out-
              put is produced by the program, or  this  attribute
              is  not  enabled, then a one-hop path to the target
              host is assumed.  A path should consist of  a  list
              of  hostnames  separated  by  an  exclamation point
              (`!') character.

       rreeaadd__ttrraannssppoorrtt
              If this attribute is enabled, then a  transport  is
              read  as  a  white-space  delimited  field from the
              first line of output  from  the  program.   If  the
              rreeaadd__ppaatthh  attribute  is  also  enabled,  then  the
              transport is taken from the second field, otherwise
              it  is taken from the first.  If no output was gen-
              erated by the program, or the field did  not  exist
              in  the  output, then the normal methods for deter-
              mining the transport are used.

       A trivial example of the use of this driver is the  router
       file entry:

            match_bar:
                 driver=queryprogram, transport=bar;
                 cmd="/bin/test X${lc:host} = Xfoo"

       This  router  will use the program _t_e_s_t(1) to determine if
       the target host is _f_o_o.  If this is the target host,  then
       it  is  assumed  to  be  a  neighboring  host which can be
       reached over the transport _b_a_r.

       A more complex example is to create a  shell  script  such
       as:

            # match_fubar.sh - match hosts on the fubar networks

            case "$1" in

            foo) echo "foo foo_transport"; exit 0;;
            bar) echo "foo!bar foo_transport"; exit 0;;
            curds)    echo "curds curds_transport"; exit 0;;
            whey)     echo "curds!whey curds_transport"; exit 0;;

            esac



Local                    1 February 1988                       50





SMAIL(5)                                                 SMAIL(5)


            exit 1

       By setting up a router file entry such as:

            match_fubar:
                 driver=queryprogram;
                 cmd="/bin/sh $lib_dir/match_fubar.sh ${lc:host}",
                 read_path, read_transport

       a  complete,  though  not  particularly optimal, router is
       created which can match the hosts _f_o_o, _b_a_r, _c_u_r_d_s and _w_h_e_y
       and  cause  messages  to these hosts to be delivered using
       one of the transports _f_o_o___t_r_a_n_s_p_o_r_t or _c_u_r_d_s___t_r_a_n_s_p_o_r_t.

       The qquueerryypprrooggrraamm driver  is  not  very  efficient,  as  it
       requires a fork/exec for each host.  However, it is a very
       simple to construct a new router using this driver, so  it
       is  useful  for  prototyping.   In  general, a new form of
       routing requirement is most efficiently handled by writing
       a new router driver.

TThhee GGeetthhoossttbbyynnaammee DDrriivveerr
       In a networking environment, hostnames on a network can be
       matched using this  driver,  which  calls  the  _g_e_t_h_o_s_t_b_y_-
       _n_a_m_e(3N)  library routine.  This routine is only available
       on systems that supply a BSD compatible internet  network-
       ing  library.   Driver  attributes for this driver include
       ddoommaaiinn, rreeqquuiirreedd and ttrryy attributes, which are  compatible
       with the _p_a_t_h_a_l_i_a_s and _u_u_n_a_m_e drivers.

       Additional attributes are:

       _o_n_l_y___l_o_c_a_l___d_o_m_a_i_n
              type: _b_o_o_l_e_a_n
              Do  not  match  hosts  that have a domain component
              (i.e., that contain a dot).  The  ddoommaaiinn  attribute
              is  applied before the oonnllyy__llooccaall__ddoommaaiinn attribute,
              so hosts that have a  domain  component  consisting
              only  of  one of the strings listed with the ddoommaaiinn
              attribute can be matched.

       _g_e_t_h_o_s_t_b_y_n_a_m_e will only match a  target  host  completely.
       The  hostname  given  to the transport will be the host as
       given by the _h___n_a_m_e field of the _h_o_s_t_e_n_t structure.

       NOTE:  The hostname given  to  _g_e_t_h_o_s_t_b_y_n_a_m_e(3N)  will  be
              downcased,  so  that upper-case or mixed-case names
              can be matched correctly.

TThhee GGeetthhoossttbbyyaaddddrr DDrriivveerr
       Also in a network environment, it is useful to be able  to
       specify  explicit  Internet  addresses using a target such
       as: [192.2.12.3] which is the  internet  address  for  the
       host _e_e_k_._u_t_s_._a_m_d_a_h_l_._c_o_m.



Local                    1 February 1988                       51





SMAIL(5)                                                 SMAIL(5)


       The  gethostbyaddr  driver  matches  targets of this form,
       which is defined by square brackets surrounding only  dig-
       its  and  dot  characters.   The driver then converts this
       number into a hostname  by  calling  _g_e_t_h_o_s_t_b_y_a_d_d_r(3N)  to
       determine  the proper name for the host.  If _g_e_t_h_o_s_t_b_y_a_d_d_r
       fails, then the input domain literal name is given to  the
       transport.  This is useful with incomplete host tables.

       The gethostbyaddr driver has the following attributes:

       _c_h_e_c_k___f_o_r___l_o_c_a_l
              type: _b_o_o_l_e_a_n
              If  set,  see  if the hostname returned by gethost-
              byaddr() matches one of the  known  names  for  the
              local host.  The name ``localhost'' is counted here
              as a potential name for the local host.

              NOTE:  This attribute is set by default.

       _f_a_i_l___i_f___e_r_r_o_r
              type: _b_o_o_l_e_a_n
              If set, then any domain-literal target  which  does
              not  fit the form of an internet address is consid-
              ered an error.  If not set, then such addresses are
              merely not matched by the driver.

TThhee BBiinndd DDrriivveerr
       The  bbiinndd  driver  uses  the _B_e_r_k_e_l_e_y _I_n_t_e_r_n_e_t _N_a_m_e _D_o_m_a_i_n
       server, _n_a_m_e_d _, to resolve target hostnames.  It is  fully
       compliant  with  the RFC974 standard, _M_a_i_l _R_o_u_t_i_n_g _a_n_d _t_h_e
       _D_o_m_a_i_n _S_y_s_t_e_m _, and uses MX and WKS records.  This  router
       is available only on systems that have a 4.3BSD compatible
       resolver library.  It  is  highly  recommended  that  this
       router  be  used  for  machines  that are on the internet,
       rather than using the ggeetthhoossttbbyynnaammee router.

       The following attributes vary the  behavior  of  the  bbiinndd
       driver:

       _d_e_f_e_r___n_o___c_o_n_n_e_c_t
              type: _b_o_o_l_e_a_n
              If  this  boolean attribute is set, then we must be
              able to connect to the server.  If attempts to con-
              nect to the server fail, then routing is retried at
              a later time, on the assumption that the nameserver
              is only down temporarily.  If this attribute is not
              set, then a failure to connect to the  server  will
              cause the router to be ignored.  This allows a bind
              router to be optional based on whether or  not  the
              server exists.

              NOTE:  This attribute is set by default.





Local                    1 February 1988                       52





SMAIL(5)                                                 SMAIL(5)


       _l_o_c_a_l___m_x___o_k_a_y
              type: _b_o_o_l_e_a_n
              If  this  boolean  attribute is not set, then it is
              considered an error for an MX resource record to be
              encountered  which  points  to  the local host.  If
              this attribute is set, then  such  an  MX  resource
              record  will  cause  the address not to be matched.
              The precedence number for the  resource  record  is
              taken  into  account  here,  so that an MX resource
              record which points to the local host is ignored if
              there  are  other  records  with a lower precedence
              number.

       _d_e_f_n_a_m_e_s
              type: _b_o_o_l_e_a_n
              This  boolean  attribute  is  passed  to  the  BIND
              resolve routines as the RES_DEFNAMES flag.  If set,
              then hostnames which do not contain dots will  have
              a  default  domain appended to them before lookups.
              For example, this allows for hosts on a local  area
              network  to be referenced using the basename of the
              host rather than requiring the full domain name.

              NOTE:  This attribute is set by default.

       _i_g_n_o_r_e___d_o_m_a_i_n_s
              type: _s_t_r_i_n_g
              If this string is set, then it is used as a  colon-
              separated list of domain names.  If a hostname ends
              in any of these domains, then the router  will  not
              match the host, and will not result in any queries.
              This can be set to a list of domains that are known
              not  to  exist, such as uuuuccpp and bbiittnneett, to prevent
              expensive lookups which will never be successful.

       _d_o_m_a_i_n___r_e_q_u_i_r_e_d
              type: _b_o_o_l_e_a_n
              If this boolean attribute is set, then  a  hostname
              with only one domain component (i.e., no dots) will
              not be matched.  This should  probably  be  set  if
              ddeeffnnaammeess  is  not  set, to prevent lookups for uucp
              hostnames that will not be found by BIND.

       _m_x___o_n_l_y
              type: _b_o_o_l_e_a_n
              If this boolean attribute is set, then match a host
              only if it has an MX record.  This is not currently
              useful on the Internet as a whole, though  it  does
              have  uses  in  managing networks disconnected from
              the Internet, but that use BIND to manage the host-
              name space.  If all hosts that can accept mail have
              an MX entry pointing to them, then no attempts will
              made  to  send  mail  to  other  ``hosts,'' such as
              printers or terminal concentrators.



Local                    1 February 1988                       53





SMAIL(5)                                                 SMAIL(5)


       _g_a_t_e_w_a_y_s
              type: _s_t_r_i_n_g
              A list of gateways and  corresponding  domains  for
              explicit  routing  using  the bind processing logic
              for the gateway address. The string consists  of  a
              sequence  of  lists.  Each list consists of strings
              separated by colons, and the lists are separated by
              a  string  consisting  of  a  single `+' character.
              Each list consists of the name of a  gateway,  fol-
              lowed by a list of domains that should be routed to
              that gateway.  The  gatewayed  domains  will  match
              either  against  a complete address, or against the
              terminating domain of an address. For example:

              gateways = "uknet.ac.uk:uucp:+:\
                          earn-relay.ac.uk:bitnet:ie:earn"

       In this example, if an address of the form <anything>.uucp
       is  being  processed,  it will be converted to uknet.ac.uk
       before any other processing is done.  The  new  name  will
       then  be looked up in the DNS and routed accordingly. Thus
       mail  for  <anything>.uucp  will   always   be   sent   to
       uknet.ac.uk,  by  whatever  route is registered in the DNS
       for that address.  Similarly, mail for the domains bitnet,
       ie, and earn will be routed to earn-relay.ac.uk.

       _w_i_d_e_n___s_t_r_i_n_g_s
              type: _s_t_r_i_n_g
              A  list  of  domains,  separated  by  colons, to be
              tacked onto the end of  the  address  if  it  isn't
              found directly in the DNS. For example:

              widen_domains = "cam.ac.uk:ac.uk"

       With  this setting, an address such as "psy.ox" will first
       be tried as it stands,  then  "psy.ox.cam.ac.uk"  will  be
       tried, and if that fails, "psy.ox.ac.uk" will be tried.

       The following attributes are for use in the UK, where mail
       routing is complicated by the  co-existence  of  both  the
       Internet and the JANET mail protocols.

       _u_k___g_r_e_y_b_o_o_k___t_r_a_n_s_p_o_r_t
              type: _s_t_r_i_n_g
              If  this attribute is set, then an address which is
              matched in the DNS but  which  does  not  have  any
              usable  MX records because they have been discarded
              for UK-specific reasons (see below) will be  routed
              to  this  transport,  provided  the address ends in
              `.uk'. The string should be the name of a transport
              defined in smail's transports configuration file.

              If  this attribute is not set, such an address will
              cause a `nomatch'  return,  allowing  a  subsequent



Local                    1 February 1988                       54





SMAIL(5)                                                 SMAIL(5)


              router (typically smarthost) to handle the message.

       _u_k___g_r_e_y_b_o_o_k___w_o_r_l_d_o_r_d_e_r
              type: _b_o_o_l_e_a_n
              If this switch is set, addresses that are  sent  to
              the  greybook  transport  are  left in world order,
              otherwise they are inverted into UK order.

       _u_k___i_g_n_o_r_e___g_a_t_e_w_a_y_s
              type: _s_t_r_i_n_g
              A list of known gateways which are not to  be  used
              for  sending  SMTP  mail within the UK (that is, to
              addresses that end in `.uk'). For example:

              uk_ignore_gateways = "nsfnet-relay.ac.uk:\
                                    sun2.nsfnet-relay.ac.uk:\
                                    mhs-relay.ac.uk"


       _u_k___m_a_x___p_r_e_c_e_d_e_n_c_e
              type: _n_u_m_b_e_r
              The highest MX precedence value that is  acceptable
              for an address in the UK for SMTP mail. The default
              value is 999, which disables this option, but sites
              in the UK should normally set it to 9 in accordance
              with the  established  convention  that  preference
              values greater than 9 should not be used for intra-
              UK SMTP mail.

       _u_k___t_r_y___i_n_v_e_r_t_i_n_g
              type: _b_o_o_l_e_a_n
              If this attribute is set, then when an address can-
              not  be  found in the DNS, even after widening with
              the strings given in the  widen_domains  attribute,
              the    original    address    is   inverted   (e.g.
              uk.ac.somewhere becomes  somewhere.ac.uk)  and  the
              whole  process  is  tried again. Inversion does not
              take place if the address already ends in `.uk'.

       All matches found by the bind driver are  considered  full
       matches,  for  the  purposes  of prioritizing results from
       different routers.  Matches are considered  full  even  in
       the presence of wildcards in MX records.

       A  site  which  exists  only on the internet, requiring no
       other means of routing should have a router file  consist-
       ing of the entries:

              # match internet address domain literals
              internet_addrs:
                   driver=gethostbyaddr, transport=smtp;
                   fail_if_error
              # match internet hostnames
              internet_hosts:



Local                    1 February 1988                       55





SMAIL(5)                                                 SMAIL(5)


                   driver=bind, transport=smtp

       A  site which servers as the internet gateway for some set
       of hosts should either have a paths file naming the  hosts
       for  which  it  gateways,  or should use the llooccaall__mmxx__ookkaayy
       attribute and allow target hostnames to fall through to  a
       router  for  another network.  For example, a UUCP network
       gateway which gateways for a set of hosts listed  int  the
       UUCP  map  database  distributed over USENET could use the
       following two routers, in order,  to  handle  all  of  its
       gateway responsibilities:

              internet_hosts:
                   driver=bind, transport=smtp;
                   local_mx_okay
              uucp_hosts:
                   driver=pathalias, transport=uux;
                   file=/usr/lib/smail/paths

       If  the ddeeffeerr__nnoo__ccoonnnneecctt is not used, then it is advisable
       to include a ggeetthhoossttbbyynnaammee router to match hostnames.  The
       following  sequence  of  routers will allow the same smail
       configuration to be used on machines that do have the BIND
       server and on machines that don't have the server:

              internet_hosts:
                   driver=bind, transport=smtp;
                   -defer_no_connect
              network_hosts:
                   driver=gethostbyname, transport=smtp


TThhee SSmmaarrtthhoosstt DDrriivveerr
       Sometimes  it  is  handy  to be able to redirect mail to a
       host that you don't know about to some other host that has
       more  routing  information.   This  other host is called a
       _s_m_a_r_t _h_o_s_t, and  can  be  named  by  using  the  smarthost
       driver.

       The smarthost driver has the following driver attribute:

       _p_a_t_h
              type: _s_t_r_i_n_g
              This define a host or UUCP-style `!'-path path that
              defines the smart host.

       If no ttrraannssppoorrtt or  mmeetthhoodd  attribute  is  given  for  the
       router file entry, this address will be resent through all
       the routing drivers.  An exception is that an address can-
       not  be  sent to the smarthost driver twice, as this would
       mean that the path to the smarthost was not known.

       The global configuration variable aauutthh__ddoommaaiinnss affects the
       smarthost  router by restricting the set of hostnames that



Local                    1 February 1988                       56





SMAIL(5)                                                 SMAIL(5)


       can be matched by the smarthost router to  hostnames  that
       are outside of the domains listed in aauutthh__ddoommaaiinnss.

       For  example,  if  the  site  _n_a_m_e_i wanted to use _a_m_d_a_h_l's
       routing database  for  mail  delivery  to  non-neighboring
       sites they could use a router file entry of:

            smart_host: driver=smarthost;  path=amdahl

       or   smart_host: transport=uusmtp, driver=smarthost;
                 path=amdahl


       NOTE:  At   the   present  time,  a  ttrraannssppoorrtt  or  mmeetthhoodd
              attribute is required, as the software is  not  yet
              in  place  that  can  rescan  the  routers  in  the
              required ways.

       Then,        a        recipient         address         of
       ``Ted.Husted.Jr@walldrug.uucp''  will be rewritten so that
       the hostname is _a_m_d_a_h_l  and  the  remaining  part  of  the
       address is ``Ted.Hustead.Jr@walldrug.uucp.''  Alternately,
       in the second form for  the  entry,  the  transport,  _u_u_x_,
       would  be  known  immediately  and  be passed the hostname
       ``amdahl''   immediately,   with   a   $$uusseerr   value    of
       ``Ted.Hustead.Jr@walldrug.uucp.''

       By  specifying  a  UUCP-style  `!'-path  it is possible to
       route mail to a smart host that you would not otherwise be
       able  to  route  to.   For  example,  if the machine _g_l_o_t_z
       wished to use _a_m_d_a_h_l as its smart host, through its neigh-
       boring site _n_a_m_e_i, it could use:

            smart_host: driver=smarthost; path=namei!amdahl

       or   smart_host: transport=demand, driver=smarthost;
                 path=namei!amdahl

       It is possible to set the path and/or the transport in the
       _c_o_n_f_i_g file.  This is done  by  setting  the  config  file
       attributes  ssmmaarrtt__ppaatthh  and ssmmaarrtt__ttrraannssppoorrtt.  For example,
       the config file could contain the following:

            smart_path = amdahl
            smart_transport = uusmtp

       Then, if the entry in the router file was:

            smart_host: driver=smarthost

       the configuration would be essentially the same as in  the
       second  smart_host  example above.  This makes it possible
       to share copies of the router file among several machines,
       with  the smart host configuration specific to one machine



Local                    1 February 1988                       57





SMAIL(5)                                                 SMAIL(5)


       being set in its private configuration file.

       These config file attributes are used  only  if  the  path
       driver attribute is not given in the _s_m_a_r_t___h_o_s_t entry.  If
       the ssmmaarrtt__ppaatthh attribute from the config file is used, the
       ssmmaarrtt__ttrraannssppoorrtt   will  override  a  ttrraannssppoorrtt  or  mmeetthhoodd
       attribute.

TThhee RReerroouutteerr DDrriivveerr
       The rerouter driver is an experimental router driver  that
       can  do  optimization of UUCP-zone !-paths addresses.  For
       example, given an address of:

              host1!host2!host3!host4!host!user

       The rerouter driver could realize that  a  more  efficient
       path exists to hhoosstt and rewrite this as:

              host6!host!user

       Before  you say to yourself how neat this would be and how
       much of a savings this would be for the  world,  you  must
       realize  that  such  rerouting  is dangerous and should be
       configured-in only with a great deal of consideration  and
       attention to detail in your rerouting database.

       Here are the attributes supported by the rerouter driver:

       _f_i_l_e
              type: _s_t_r_i_n_g
              An  expansion  string  defining a file that selects
              which hosts or domains will  be  considered  candi-
              dates  for  rerouting.  If the string, after expan-
              sion, does not begin with //, it will be opened rel-
              ative  to  the smail library directory.  The format
              of the file is described later in this section.

       _p_r_o_t_o
              type: _s_t_r_i_n_g
              The lookup protocol to use in searching through the
              database specified by the ffiillee attribute.  The list
              of  possible  lookup  protocols  for  the  rerouter
              driver is the same as for the pathalias driver.

       _d_o_m_a_i_n
              type: _s_t_r_i_n_g
              A colon-separated list of default domains for hosts
              in the database.  Targets ending in  any  of  these
              domains  will  have the domain stripped (incuding a
              preceding dot) before the database is searched.   A
              target  containing  only  the  domain  (e.g.,  just
              ..uuuuccpp) will remain unchanged.





Local                    1 February 1988                       58





SMAIL(5)                                                 SMAIL(5)


       _r_e_q_u_i_r_e_d
              type: _s_t_r_i_n_g
              A colon-separated list of  domain  names  that  are
              must  be part of a hostname for that hostname to be
              considered a candidate for rerouting.

       _r_e_o_p_e_n
              type: _b_o_o_l_e_a_n
              If set, then reopen the database for each  call  to
              the rerouting driver, and close before each return.
              This is necessary for systems that would not other-
              wise  have  a  sufficient  number of available file
              descriptors for all of their routing and  directing
              needs.

       _o_p_t_i_o_n_a_l
              type: _b_o_o_l_e_a_n
              if  set,  then  if  the  open  of the database file
              fails, assume an empty file.

       _t_r_y_a_g_a_i_n
              type: _b_o_o_l_e_a_n
              if set, then if the open  fails,  try  again  on  a
              later spool directory queue run.

       _m_a_t_c_h_a_l_l
              type: _b_o_o_l_e_a_n
              If  set,  reroute  all  bang  path  addresses.  The
              rerouting database isn't used at all in this  mode,
              so  even hosts that have an exclusion flag (`-') in
              the database will be rerouted.  UUssee tthhiiss  oonnllyy  ffoorr
              ddeebbuuggggiinngg  ppuurrppoosseess..  UUnnccoonnddiittiioonnaall rreerroouuttiinngg iiss aann
              ooffffeennssee aaggaaiinnsstt tthhee nneett..ccoommmmuunniittyy!!

       _m_a_t_c_h_l_o_c_a_l
              type: _b_o_o_l_e_a_n
              If set, then address containing forms for the local
              host (within the bounds of the rreeqquuiirreedd attributes)
              are considered candidates for rerouting.  The  path
              starting  with the component directly following the
              last  occurance  of  the  local  hostname  is  used
              rerouting.   For  example, if the local hostname is
              ggeemmiinniixx, then the input path:

                     host1!host2!geminix!host!user

              might be rewritten as:

                     host4!host!user

       _m_a_t_c_h_d_b
              type: _b_o_o_l_e_a_n
              If set, a database lookup is done for  the  target.
              Otherwise,  the  reroute database isn't used.  This



Local                    1 February 1988                       59





SMAIL(5)                                                 SMAIL(5)


              must be set of you intend to set the ffiillee attribute
              to point to a database.

       _b_o_u_n_c_e_o_n_l_y
              type: _b_o_o_l_e_a_n
              This   attribute   combines   with  the  mmaattcchhllooccaall
              attribute to do  limited  rerouting  that  bypasses
              multiple occurances of the local host, but only for
              bounce messages (messages generated  for  returning
              errors  to  the  originator  of  a  message).  This
              attribute affects only the use  of  the  mmaattcchhllooccaall
              attribute,  and has no other affect on the rerouter
              driver.

       The  rerouter  driver  operates  only   on   pure   !-path
       addresses.  For such addresses, the !-path is scanned from
       right to left for hostnames that are considered candidates
       for rerouting.  If such a host is found, the path is trun-
       cated to contain everything from that component to the end
       of  the  path.   In the case of a match resulting from the
       mmaattcchhllooccaall  attribute,  the  matching  component  is  also
       removed from the path.

       Given  a  truncated path generated by the rerouter driver,
       the address is passed back into the smail address resolver
       engine  to  be  rerouted based on the other routers.  This
       goes all the way back to the beginning of the address res-
       olution  process,  rather than continuing on with the list
       of routers, as would  happen  for  a  non-matching  target
       hostname.

       If  a  database file is used to define candidate hosts for
       rerouting, the file will be presumed  to  contain  entries
       consisting of a hostname or a domain name beginning with a
       period, followed by ++ or --.   For  example,  the  database
       file might contain:

              .do.main         +
              .bar             +
              .foo.bar         -
              host1.foo.bar    +
              host2            +
              host2.abc        +
              host3            +
              host4            +

       If a match is found on the given hostname, then the ++ or --
       is used to indicate whether the hostname  is  a  candidate
       for  rerouting.   A  ++ indicates that the host is a candi-
       date, a -- indicates that the host is _n_o_t a candidate.

       The rules for finding an entry in the database are:

       1.     Look for an exact match of the target hostname.  If



Local                    1 February 1988                       60





SMAIL(5)                                                 SMAIL(5)


              not  found,  and the domain begins with a dot, look
              for a match without the dot.

       2.     If that fails, strip the  first  component  of  the
              domain,  leaving the initial dot on the second com-
              ponent.  Look for a match on  the  resulting  name.
              Repeat  this step until a match is found or no com-
              ponents remain.

       This lookup algorithm, together with the ++ or -- field  can
       be  used  to enable rerouting for all but a certain subset
       of hosts within a domain.

   GGeenneerraall rreeccoommmmeennddaattiioonnss
       While rerouting can be useful, and can improve the flow of
       mail  through  the UUCP zone, it can be disastrous if done
       wrong.  Here are two situations where it can be useful  to
       reroute mail:

       1.     If  your site is on the Internet, and it is a back-
              bone for a domain of UUCP sites that are  connected
              to  your  site, then your site might have access to
              routing informations that isn't  available  to  the
              UUCP sites (MX-records etc.).  Using shortcuts over
              the internet instead of sending the mail along  the
              original   slow   and  maybe  expensive  (telephone
              charges) path can be a major advantage.

       2.     If one or more links that in your direct neighbour-
              hood  (one  or  two hops away) have changed and the
              new UUCP maps haven't yet propagated widely  enough
              to  make  other  sites  aware of these changes, you
              could use  rerouting  to  _t_e_m_p_o_r_a_r_e_l_y  correct  the
              incoming  bang  paths  that were generated from the
              old maps.

       However, before you enable rerouting you should make  sure
       that your routing databases are really accurate.  It's not
       enough that you install the posted USENET  maps  automati-
       cally.   These  maps are notoriously inaccurate, and often
       contain very unrealistic link  costs,  resulting  in  non-
       optimal  routes.   Therefore, it is necessary to check all
       routes that might be used for rerouting line by line when-
       ever it is rebuilt from the maps.

       If  you  can't or don't want to do this, don't use rerout-
       ing! Or at least only for sites in your direct  neighbour-
       hood.  Rerouting with a poorly maintained routing database
       is a disservice to the net!  The  simplest  way  to  setup
       rerouting  is  to  limit the set of hosts that you use for
       rerouting and ensure that the routes to all of those hosts
       are  stable  and  accurate.  Making a separate paths file-
       based router is the simplest way of ensuring  that  stable
       paths are used.



Local                    1 February 1988                       61





SMAIL(5)                                                 SMAIL(5)


       Also,  if  you  think  that  you  have  the administrative
       resources for rerouting, do so only when you  are  willing
       to  keep  in touch with the maintainers of other rerouting
       sites in your area.   Mail  loops  between  two  rerouting
       sites  are  a  serious problem that can be reduced only by
       discussing changes you want to make  to  your  routing  _i_n
       _a_d_v_a_n_c_e.

       So  in short, folks, don't use rerouting if it isn't abso-
       lutely necessary.  Please don't  use  it  as  a  means  to
       inflate  your  ego.  Instead, maintaining a rerouting host
       is a responsible task that needs lots of time and determi-
       nation.   Please  restrain  yourself, for the sake of fast
       and flawless mail delivery.

   HHoossttnnaammee nnoonn--uunniiqquueenneessss
       One more point, which is actually  an  important  one,  is
       that  hostnames  within  UUCP-zone  are not always unique.
       Just because you recognize a hostname on the end  of  path
       does  _n_o_t  mean  that it is the host that you think it is.
       To avoid conflicts arrising from non-unique  names  it  is
       best  to avoid rerouting for hostnames that are not quali-
       fied within a domain.

       The only safe way to reroute an address is to reroute from
       left  to  right  rather than right to left, and to stop as
       soon as a host is found which is not  a  rerouting  candi-
       date.   However,  such a policy greatly limits the useful-
       ness of rerouting or at least  it  greatly  increases  the
       number of entries in your rerouting database that are nec-
       essary for rerouting to be useful.

TTHHEE TTRRAANNSSPPOORRTT DDRRIIVVEERRSS
       This  section  details  the  usage   and   driver-specific
       attributes  for  all  of the transport drivers distributed
       with smail.  See the section TTHHEE TTRRAANNSSPPOORRTT FFIILLEE  for  more
       information on transports.

TThhee PPiippee DDrriivveerr
       The  pipe  driver  is  the most general form of transport.
       Its job is to send mail messages to another program,  such
       as _u_u_x(1) or _s_h(1).

       The driver attributes for the pipe driver are:

       _c_m_d
              type: _s_t_r_i_n_g
              The  program  to  be  run  and  the arguments to be
              passed.  This is string expanded.  To handle multi-
              ple  addresses  being given to a transport, the use
              of $$(( and $$)) can be used to bracket  a  section  of
              the command string which is to be repeated for each
              address given to the transport.  It is a configura-
              tion error for string expansion to fail.



Local                    1 February 1988                       62





SMAIL(5)                                                 SMAIL(5)


       _d_e_f_e_r___c_h_i_l_d___e_r_r_o_r_s
              type: _b_o_o_l_e_a_n
              Generally,  only  child  failures  from  the signal
              SIGTERM are reattempted at a later time.   If  this
              is  set, then retries are performed at a later time
              if the exit code  is  non-zero,  or  if  the  write
              failed  on  the  pipe.  This is useful for treating
              errors from UUCP as configuration or  as  temporary
              filespace problems.

       _g_r_o_u_p
              type: _s_t_r_i_n_g
              The  name  of  the group to _s_e_t_g_i_d(2) to within the
              child process.  Useful only if the mailer  is  run-
              ning as root.

       _i_g_n_o_r_e___s_t_a_t_u_s
              type: _b_o_o_l_e_a_n
              If  set,  the  exit  status of the child process is
              ignored.  If this is not set, an exit  value  other
              than  0 is noted and mail is sent to the postmaster
              stating this.

       _i_g_n_o_r_e___w_r_i_t_e___e_r_r_o_r_s
              type: _b_o_o_l_e_a_n
              If set, write errors are ignored.  This  is  useful
              for  running  programs  that  may not actually read
              their standard input.  If this is not set, a  write
              error will cause mail to be returned to the sender.

       _l_o_g___o_u_t_p_u_t
              type: _b_o_o_l_e_a_n
              The _s_t_d_o_u_t and _s_t_d_e_r_r of a command are  logged  and
              returned  to  the  sender in case of problems.  The
              current implementation is not very good as it actu-
              ally  returns  the  logs for all such transports in
              the event that any transports fail.  This attribute
              is on by default.

       _p_a_r_e_n_t___e_n_v
              type: _b_o_o_l_e_a_n
              Stuff the environment with data taken from the par-
              ent of the input address,  rather  than  the  input
              address  itself.   This is useful for the transport
              specifically named _p_i_p_e which is used by smail  for
              delivery  to  shell-command  addresses.   Here  the
              recipient address stored into the environment  will
              then be the address that produced the shell-command
              address,  rather  than  the  shell-command  address
              itself.

       _p_i_p_e___a_s___s_e_n_d_e_r
              type: _b_o_o_l_e_a_n
              If  set,  the  child process' uid is taken from the



Local                    1 February 1988                       63





SMAIL(5)                                                 SMAIL(5)


              real uid at the time the message was read by _s_m_a_i_l.
              This  does  not  affect the group id for the child.
              This  overrides   the   uid   obtained   from   the
              ppiippee__aass__uusseerr attribute.

       _p_i_p_e___a_s___u_s_e_r
              type: _b_o_o_l_e_a_n
              Obtain  a  _u_i_d  and,  if  `group'  attribute is not
              given, a _g_i_d associated with the address  (such  as
              the  user for a .forward file).  Then set these via
              _s_e_t_u_i_d(2) and _s_e_t_g_i_d(2) in the child process.

              NOTE:  This attribute is on by default.

       _u_m_a_s_k
              type: _n_u_m_b_e_r
              file creation mask for the child process.

       _u_s_e_r
              type: _s_t_r_i_n_g
              The name of the user to  _s_e_t_u_i_d(2)  to  within  the
              child  process.   Useful only if the mailer is run-
              ning as root.

       The environment of the child process is entirely  initial-
       ized  and  loaded  with  variables  which may be useful in
       shell scripts or  intelligent  mail  processing  programs.
       Exactly  one  environment  variable is passed through from
       the environment handed to the _s_m_a_i_l program:  the TTZZ vari-
       able  defining the timezone.  The following portion of the
       environment is independent of the recipient addresses:

       BASENAME       the basename for the spool file
       GRADE          the grade character
       MESSAGE_ID     the message ID as assigned by _s_m_a_i_l
       PATH           ``/bin:/usr/bin''
       PRIMARY_NAME   the official name for the host
       SENDER         the sender address
       SHELL          ``/bin/sh''
       SPOOL_FILE     the complete name for the spool file
       UUCP_NAME      the name for the host on the uucp network
       VISIBLE_NAME   the name for the host used in addresses

       The rest of the  environment  is  loaded  from  the  input
       address, or from the parent of the input address:


       ADDR         The  recipient address (or one of the recipi-
                    ent addresses, if more than one is  given  to
                    the driver).

       HOME         The  home  directory (or one of home directo-
                    ries, if more than one recipient  address  is
                    given  to  the driver).  If no home directory



Local                    1 February 1988                       64





SMAIL(5)                                                 SMAIL(5)


                    is associated with an address, ``/'' is used.

       HOST         The recipient hostname (or one of the recipi-
                    ent hosts, if more than one host is given  to
                    the driver).

       USER, and LOGNAME
                    These  two variables are loaded with the name
                    of a user on the local host, if one is  found
                    with some association to the address.

       Examples of the use of the pipe driver are:

            # transport used for delivery to shell-command addresses
            pipe:     from, local, return_path, unix_from_hack,
                 driver=pipe;
                 cmd="/bin/sh -c $user",
                 pipe_as_user, ignore_status,
                 ignore_write_errors, parent_env,
                 -log_output

            # delivery to a remote _r_m_a_i_l(8) program using _u_u_x(1)
            uux: max_addrs=5, max_chars=200, from, received,
                 driver=pipe;
                 cmd="/usr/bin/uux - -r -g$grade $host!rmail
                      $((${strip:user})$)",  # see ``String expansion'' above
                 pipe_as_sender

TThhee AAppppeennddffiillee DDrriivveerr
       The appendfile driver creates or appends to files.  It can
       either write to a  filename  derived  from  the  recipient
       address, or it write a unique file into a directory.  This
       latter capability can be used  to  implement  a  primitive
       output queue for some purposes.

       The driver-specific attributes are:

       _a_p_p_e_n_d___a_s___u_s_e_r
              type: _b_o_o_l_e_a_n
              Get  the _u_i_d and, perhaps, the _g_i_d from the user id
              and group id  associated  with  the  address.   For
              example,  the  user  associated with a forward file
              might be used.  This attribute is on by default.

       _c_h_e_c_k___p_a_t_h
              type: _b_o_o_l_e_a_n
              If set, then verify the permissions on  a  complete
              path  for  a  file or dir attribute.  This requires
              that all directories leading  to  a  file  must  be
              searchable  by  the  appending  user (see the _u_s_e_r,
              _g_r_o_u_p and _a_p_p_e_n_d___a_s___u_s_e_r attributes).  Under System
              V,  this requires a _s_t_a_t(2) call for each directory
              in the path, and is thus somewhat expensive.




Local                    1 February 1988                       65





SMAIL(5)                                                 SMAIL(5)


       _c_h_e_c_k___u_s_e_r
              type: _b_o_o_l_e_a_n
              Reject an address if the $$uusseerr would contain a `/'.
              This  prevents  a  $$uusseerr expansion from accessing a
              different directory.

       _d_i_r
              type: _s_t_r_i_n_g
              Defines a directory in which to write unique files.
              Files  written  to this directory always begin with
              the letter `q', while temporary files used  in  the
              creation  process begin with ``temp.''  This string
              is expanded similarly to the ffiillee attribute.  It is
              a  configuration error for this string expansion to
              fail.

       _e_x_p_a_n_d___u_s_e_r
              type: _b_o_o_l_e_a_n
              If set the value for $$uusseerr value is string expanded
              before  the  value for the ffiillee or ddiirr attribute is
              expanded.  This is useful if a  local-form  address
              may require `~' or `$' expansions.

       _f_i_l_e
              type: _s_t_r_i_n_g
              Defines  a file to append messages to.  This string
              is expanded, and the variables $$uusseerr and $$hhoosstt  are
              set from the recipient address.  It is a configura-
              tion error for this string expansion to fail.

       _g_r_o_u_p
              type: _s_t_r_i_n_g
              become this group.  Similar to the uusseerr  attribute.

       _m_o_d_e
              type: _n_u_m_b_e_r
              When  creating a file, _c_r_e_a_t(2) it with this access
              mode.  The default is 0666.

       _n_o_t_i_f_y___c_o_m_s_a_t
              type: _b_o_o_l_e_a_n
              Notify the COMSAT daemon of the  message  delivery,
              so  that  users  can be notified that they received
              mail.  This has no effect if your system  does  not
              support the COMSAT daemon.  This should be used for
              delivery to user mailbox files.

       _p_r_e_f_i_x
              type: _s_t_r_i_n_g
              This prefix is inserted in the file before the mes-
              sage.   This  string  is  expanded,  with $$uusseerr and
              $$hhoosstt being available from the  recipient  address.
              It  is a configuration error for this string expan-
              sion to fail.



Local                    1 February 1988                       66





SMAIL(5)                                                 SMAIL(5)


       _s_u_f_f_i_x
              type: _s_t_r_i_n_g
              This suffix is appended to the file after the  mes-
              sage.   This  string  is  expanded,  with $$uusseerr and
              $$hhoosstt being available from the  recipient  address.
              It  is a configuration error for this string expan-
              sion to fail.

       _u_s_e_r
              type: _s_t_r_i_n_g
              This become this user (effectively at  least)  when
              opening  or  creating the file.  Access permissions
              are checked relative to this  user,  and  the  user
              will own the file if it did not previously exist.

       To  better understand the use of some of these attributes,
       consider the transport file entry:

            file:     driver=appendfile, from, return_path, local;
                 file=$user, suffix="\n", check_path,
                 expand_user, append_as_user, mode=0664

       This transport will be called when a file address is  pro-
       duced  by  a director.  Such addresses should be expanded,
       because they may require `~' expansions.   Also,  to  keep
       standard  many  user  agents  happy,  an  extra newline is
       inserted after each message.  The aappppeenndd__aass__uusseerr attribute
       is set to ensure that addresses produced from, say, a for-
       ward file are only created or appended to if  the  associ-
       ated  user  has permissions to do so.  Because these file-
       names can be arbitrary, cchheecckk__ppaatthh is  set  to  make  sure
       that  an  otherwise  inaccessible directory is not written
       to.

       When given an address of ``~/Incoming,'' with  an  associ-
       ated  home  directory of ``/u/joe-user'' and an associated
       user of _j_o_e_-_u_s_e_r, the following steps occur:

       a. The   $$uusseerr   variable   is   expanded   to   ``/u/joe-
          user/Incoming.''

       b. The  ffiillee  attribute  is  also  expanded  to  ``/u/joe-
          user/Incoming.''

       c. The directories //, //uu and //uu//jjooee--uusseerr are  checked  for
          accessibility by the user _j_o_e_-_u_s_e_r.  If any of these is
          not searchable, then delivery fails.

       d. The file  //uu//jjooee--uusseerr//IInnccoommiinngg  is  opened  for  append
          access.   If  it does not exist, it is created, will be
          owned by _j_o_e_-_u_s_e_r and will have  mode  0664.   Creation
          will fail if _j_o_e_-_u_s_e_r cannot write the directory.

       e. The    message    is    written   with   a   local-form



Local                    1 February 1988                       67





SMAIL(5)                                                 SMAIL(5)


          ``From_<_s_p_a_c_e_>'' line.

       f. An extra newline is appended to  the  file,  after  the
          message.

       NOTE:  _s_m_a_i_l  will follow the local conventions on locking
              protocols for mailbox files, which may involve cre-
              ating  a  .lloocckk  file  or  using a file lock system
              call, such as _l_o_c_k_f(3) under System V  of  _f_l_o_c_k(2)
              under BSD.

       Next, lets examine:

            local:    driver=appendfile, local, from, return_path;
                 file=/usr/spool/mail/$user, append_as_user,
                 check_user, mode=0600, notify_comsat

       In  this  example,  the $$uusseerr value is not expanded before
       expanding the ffiillee attribute.  Also, just  to  make  sure,
       $$uusseerr  is  verified  to not contain a `/'.  Given an input
       address of ``jane-doe,'' associated with  the  user  _j_a_n_e_-
       _d_o_e,    mail    will    be    appended    to    the   file
       ``/usr/spool/mail/jane-doe.''  If it  did  not  previously
       exist,  it  will be owned by _j_a_n_e_-_d_o_e and will have a mode
       of 0600.

TThhee TTCCPPSSMMTTPP DDrriivveerr
       Simple support exists in _s_m_a_i_l  for  delivery  using  SMTP
       over TCP/IP, for systems that have BSD compatible network-
       ing.  It is intended that eventually  a  complete  backend
       will  exist  to  handle  SMTP  in a more efficient manner,
       though in the mean time a built-in SMTP  transport  driver
       is available.

       The  smtp driver can be used for delivery of any number of
       addresses to one remote host, where the remote host can be
       specified  either  in form of a hostname known by the net-
       working software or by an internet number in square brack-
       ets,  such  as  _[_1_9_2_._2_._1_2_._1_4_2_].   For example, the routing
       drivers ggeetthhoossttbbyyaaddddrr and ggeetthhoossttbbyynnaammee are  suitable  for
       matching  addresses to be delivered using the SMTP driver.

       The attributes for the tcpsmtp driver are:

       _s_h_o_r_t___t_i_m_e_o_u_t
              type: _i_n_t_e_r_v_a_l
              This defines the  response  timeout  for  oerations
              that  are  assumed  to  be  short, such as protocol
              startup and protocol exit.   This  can  use  suffix
              letters  of `s', `m', `h', and `d' to mean seconds,
              minutes, hours or days, with no  suffix  signifying
              seconds.   Times  can  be added through direct con-
              catenation.  For example, the value `5m30s'  signi-
              fies  5  minutes and 30 seconds.  The default value



Local                    1 February 1988                       68





SMAIL(5)                                                 SMAIL(5)


              is 5 minutes.

       _l_o_n_g___t_i_m_e_o_u_t
              type: _i_n_t_e_r_v_a_l
              This defines the response timeout for  long  opera-
              tions, i.e., those that are not short.  Suffix let-
              ters can  be  used  in  the  same  manner  as  with
              sshhoorrtt__ttiimmeeoouutt.  The default value is 2 hours.

       _s_e_r_v_i_c_e
              type: _s_t_r_i_n_g___o_r___n_u_m_b_e_r
              This  attribute  identifies  a  TCP/IP port number,
              either directly as a number, or as  a  name  to  be
              searched  for in the _/_e_t_c_/_s_e_r_v_i_c_e_s file.  This port
              number will be used in  connecting  to  the  remote
              host.  The default is _s_m_t_p.

       _u_s_e___b_i_n_d
              type: _b_o_o_l_e_a_n
              Use DNS resolution, if supported, to locate and use
              MX and A records associated with the  target  host;
              without  this  option, the _g_e_t_h_o_s_t_b_y_n_a_m_e() function
              is used to locate the address to use for  delivery.
              If the target host was matched with the bbiinndd router
              driver, then MX and A records  found  by  the  bbiinndd
              router  will  be  used  independent of the uussee__bbiinndd
              attribute.

       _d_e_f_e_r___n_o___c_o_n_n_e_c_t_,   _l_o_c_a_l___m_x___o_k_a_y_,   _d_e_f_n_a_m_e_s_,
              _i_g_n_o_r_e___d_o_m_a_i_n_s_, _d_o_m_a_i_n___r_e_q_u_i_r_e_d_, _m_x___o_n_l_y
              If uussee__bbiinndd is specified, these attributes vary the
              behavior of the ttccppssmmttpp transport's DNS resolution.
              See the documentation for the bbiinndd  router  for  an
              explanation of these attributes.

       The  smtp  driver  attempts  to  connect  immediately  and
       deliver a single message.  If access to the remote host is
       currently  not  possible,  the driver will tell smail that
       delivery should be attempted at a later time.

       An example of the use of the smtp driver is the entry:

            # deliver using SMTP over TCP/IP to the remote host
            tcpsmtp: -max_chars, -max_addrs, driver=smtp

       If your site is on the Internet and gateways from the UUCP
       zone,  it  may  be reasonable to set the ssttrriicctt attribute.
       Otherwise, this is probably not a good idea.

       If the llooccaall attribute is set (see the  generic  transport
       attributes),  then mail will be transmitted in a form that
       contains little reference to the transmitting host.   This
       can be used within a local network to make all mail trans-
       mitted within the network  look  like  local  mail  (i.e.,



Local                    1 February 1988                       69





SMAIL(5)                                                 SMAIL(5)


       local  addresses  will  not  be  qualified with the domain
       name).  This is often convenient in environments that  use
       a  central  host for processing all mailing lists and user
       addresses, but where mail can originate and  be  delivered
       anywhere  in the network, and where user names are consis-
       tent throughout the network.

       When mail is transmitted outside of the local network,  an
       smtp  transport  with  the llooccaall attribute turned off will
       qualify any mail sent from anywhere inside the network.

       The SMTP transport is also affected by the iinneett  and  uuuuccpp
       generic transport attributes.  If iinneett is set, then sender
       and recipient addresses transmitted in the protocol  enve-
       lope  will strictly conform to the RFC821 and RFC1123 pro-
       tocol specifications.  However, route-addr  addresses  may
       be  generated,  despite  the  recommendations  of  RFC1123
       against the practice.  Note that networks  connected  com-
       pletely  by domain name servers will not result in genera-
       tion of route-addr addresses, although they will  be  hon-
       ored if received.

       If  the  uuuuccpp  transport attribute is set, then sender and
       recipient addresses will conform to the envelope  specifi-
       cations  of  RFC976,  and  will  thus  use !-style routes.
       Addresses transmitted to the remote host will consist only
       of  !  and  % operators.  % operators will never be gener-
       ated, but may be included if  they  were  present  in  the
       original sender or recipient addresses.

       If neither the uuuuccpp nor the iinneett attributes are specified,
       then an intermediate form will be used that nearly  elimi-
       nates route-addr addresses.  This form uses RFC976 !-style
       addresses when routing is necessary, but  otherwise  stays
       within the formal SMTP specification.

       The  smtp  driver  always sets the ccrrllff and ddoottss transport
       attributes.

DDEEFFAAUULLTT CCOONNFFIIGGUURRAATTIIOONN
       NOTE:  A transports file,  unlike  routers  and  directors
              files, does not replace all compiled-in transports.
              Rather, entries in  the  transports  file  override
              existing  entries  of  the  same  name,  or add new
              entries.  Thus, if you wish to  add  new  transport
              definitions, you need only create a transports file
              containing the new defintion, and do  not  need  to
              duplicate all of the compiled-in entries.

       The  default  internal  configuration  is  defined  in the
       source files _c_o_n_f_i_g_._h and _d_e_f_a_u_l_t_._c.  The default director
       configuration uses:





Local                    1 February 1988                       70





SMAIL(5)                                                 SMAIL(5)


       _a_l_i_a_s_e_s
              an  alias  database stored as an ASCII text file in
              _/_u_s_r_/_l_i_b_/_m_a_i_l_/_a_l_i_a_s_e_s

       _d_o_t_f_o_r_w_a_r_d
              forward files stored in user  home  directories  in
              the file _._f_o_r_w_a_r_d

       _f_o_r_w_a_r_d_t_o
              forwarding information stored in user mailbox files
              preceded by the string ``Forward to ''

       _u_s_e_r   matches local users with delivery using  the  _l_o_c_a_l
              transport

       _r_e_a_l___u_s_e_r
              matches local users with a prefix of ``real-'' with
              delivery  (bypassing forwarding)  using  the  _l_o_c_a_l
              transport

       _l_i_s_t_s  mailing    lists    stored    in    the   directory
              _/_u_s_r_/_l_i_b_/_m_a_i_l_/_l_i_s_t_s_/

       _s_m_a_r_t___u_s_e_r
              a smart-user director may also be defined.

       The default router configuration uses:

       _i_n_e_t___a_d_d_r_s
              match   domain   literals   forming   IP   internet
              addresses, deliver with the transport _s_m_t_p; config-
              ured in if BSD style internet networking is  avail-
              able

       _i_n_e_t___h_o_s_t_s
              call _g_e_t_h_o_s_t_b_y_n_a_m_e to match hosts on an IP network,
              deliver with the transport _s_m_t_p; configured  in  if
              BSD style internet networking is available

       _p_a_t_h_s  a  pathalias database stored as a sorted ASCII file
              in _/_u_s_r_/_l_i_b_/_m_a_i_l_/_p_a_t_h_s

       _u_u_c_p___n_e_i_g_h_b_o_r_s
              resolution of neighboring hosts on a  UUCP  network
              by calling the program _u_u_n_a_m_e _(_1_)

       _s_m_a_r_t___h_o_s_t
              a smarthost router may also be defined.

       The default transport configuration defines:

       _l_o_c_a_l  deliver  mail to local users.  Usually, delivery is
              accomplished by writing directly  to  user  mailbox
              files  (either in _/_u_s_r_/_m_a_i_l or in _/_u_s_r_/_s_p_o_o_l_/_m_a_i_l).



Local                    1 February 1988                       71





SMAIL(5)                                                 SMAIL(5)


              Alternately, mail may be  delivered  by  calling  a
              program, such as _/_b_i_n_/_m_a_i_l or _/_b_i_n_/_l_m_a_i_l to perform
              delivery using system-dependent conventions.

       _p_i_p_e   deliver mail to shell  command  addresses.   Shell-
              command  addresses begin with a pipe character (|).
              The pipe character is stripped from the address and
              the remainder of the address is passed as a command
              to _/_b_i_n_/_s_h.  Shell-command addresses can be  gener-
              ated by mailing lists or forwarding files, but can-
              not be specified as input to smail.

       _f_i_l_e   deliver mail to  file  addresses.   File  addresses
              begin  with  a / or ~ character.  If a file address
              begins with the ~ character followed by the name of
              a  local  user, then the ~ and username is replaced
              by the user's home directory.  If  a  file  address
              begins with ~/, then the ~/ sequence is replaced by
              a home directory that is appropriate to the context
              of  the  address.   Normally, ~/ is used within the
              context of addresses specified in a user's .forward
              file.

       _u_u_x    invoke  _u_u_x  to deliver mail to a remote _r_m_a_i_l pro-
              gram.  The --rr option is given to _u_u_x to prevent  an
              immediate poll.

       _d_e_m_a_n_d this  is  similar to the _u_u_x transport, except that
              the --rr is not supplied.   This  will  request  that
              UUCP attempt to poll the remote site immediately.

       _u_u_s_m_t_p
       _d_e_m_a_n_d___u_u_s_m_t_p
              invoke  _u_u_x  to deliver mail to a remote _r_s_m_t_p pro-
              gram (supplied in the Smail3.1 distribution).   The
              transmitted  message  will  be  encapsulated  in an
              envelope of SMTP directives, with addresses  passed
              in  through  the  SMTP  envelope rather than in the
              argument list to _u_u_x.  This works better  than  the
              standard  _r_m_a_i_l  protocol, because quoted addresses
              can pass through unscathed, and because  no  limits
              are  given  on  the number of addresses that can be
              given in a single transfer.  This  last  point  can
              significantly  reduce  the  number of uux transfers
              needed for large mailing lists,  since  the  normal
              method  of using _r_m_a_i_l is limited by _u_u_x's internal
              limit of (usually) 300 characters of worth of argu-
              ments.

              Note  that  the _u_u_s_m_t_p transports are not likely to
              be useful unless both the receiving host also  uses
              Smail 3.1.

              The  _u_u_s_m_t_p  transport passes the --rr option to uux,



Local                    1 February 1988                       72





SMAIL(5)                                                 SMAIL(5)


              while the _d_e_m_a_n_d___u_u_s_m_t_p transport does not.   Also,
              the  uuuuccpp  generic  transport  attribute is used by
              _u_u_s_m_t_p and _d_e_m_a_n_d___u_u_s_m_t_p to transfer  addresses  in
              accordance  with  the  RFC976  specification.  This
              violates the RFC821 and RFC1123 specifications, but
              is  none-the-less useful between sites operating in
              the UUCP zone.

       _i_n_e_t___u_u_s_m_t_p
       _i_n_e_t___d_e_m_a_n_d___u_u_s_m_t_p
              These transports are identical to  the  _u_u_s_m_t_p  and
              _d_e_m_a_n_d___u_u_s_m_t_p  transports,  except  that  the  iinneett
              transport  attribute  is  enabled,  and  the   uuuuccpp
              attribute  is disabled.  This causes mail addresses
              to be transferred in accordance with the SMTP spec-
              ification.   If routing is required to reach a des-
              tination, then route-addr addresses  are  generated
              (e.g., <@host1,@host2:user@destination>).

       _s_m_t_p
       _u_u_c_p___z_o_n_e___s_m_t_p
       _i_n_e_t___z_o_n_e___s_m_t_p
              deliver  mail  to  a  remote host by using the SMTP
              protocol over a TCP/IP connection.  If used in con-
              junction  with  the _b_i_n_d router, MX records will be
              handled in accordance with RFC974 and  the  RFC1123
              updates to RFC974.

              The _u_u_c_p___z_o_n_e___s_m_t_p attribute has the uuuuccpp transport
              attribute set, causing transferred addresses to use
              !-style  addresses,  as  specified in RFC976.  This
              can often be useful when using SMTP within the UUCP
              zone, but is otherwise inappropriate.

              The _i_n_e_t___z_o_n_e___s_m_t_p attribute has the iinneett transport
              attribute set,  causing  transferred  addresses  to
              conform  to  the  RFC821 and RFC1123 specifications
              for SMTP.  This is necessary for correct  operation
              with  arbitrary  nodes  on  the Internet.  Both the
              _u_u_c_p___z_o_n_e___s_m_t_p and _i_n_e_t___z_o_n_e___s_m_t_p  attributes  will
              handle  generated  routes  (from  paths files) cor-
              rectly  between  nodes   running   Smail3.1.    The
              _i_n_e_t___z_o_n_e___s_m_t_p   transport   will   use  route-addr
              addresses for routing despite RFC1123's recommenda-
              tions  against such a practice.  However, generated
              routes should never be necessary on the Internet.

              The _s_m_t_p  transport  is  identical  to  either  the
              _u_u_c_p___z_o_n_e___s_m_t_p   transport  or  the  _i_n_e_t___z_o_n_e___s_m_t_p
              transport,  depending  upon   local   configuration
              information  specified  when  the  smail program is
              compiled.  This depends upon  the  setting  of  the
              UUCP_ZONE attribute in the _c_o_n_f_/_E_D_I_T_M_E file.




Local                    1 February 1988                       73





SMAIL(5)                                                 SMAIL(5)


       _l_o_c_a_l___u_u_x
       _l_o_c_a_l___d_e_m_a_n_d
       _l_o_c_a_l___u_u_s_m_t_p
       _l_o_c_a_l___d_e_m_a_n_d___u_u_s_m_t_p
       _l_o_c_a_l___s_m_t_p
              These  transports are identical to the _u_u_x, _d_e_m_a_n_d,
              _u_u_s_m_t_p, _d_e_m_a_n_d___u_u_s_m_t_p, and _s_m_t_p transports,  except
              that  they  have  the llooccaall__xxffoorrmm generic transport
              attribute enabled, and the uuuuccpp and iinneett attributes
              disabled.   This  causes  mail to be transferred to
              the remote site as if the mail were  local  to  the
              remote site.  This is useful within closely coordi-
              nated networks where usernames and central  mailing
              lists  are kept consistent or are processed by cen-
              tral nodes.

FFIILLEESS
       The following files and directories  are  from  a  typical
       _s_m_a_i_l configuration:

       _/_u_s_r_/_l_i_b_/_m_a_i_l_/_c_o_n_f_i_g Optional general _s_m_a_i_l configuration.
                            This file  can  override  compiled-in
                            configuration.
       _/_u_s_r_/_l_i_b_/_m_a_i_l_/_t_r_a_n_s_p_o_r_t_s
                            Optional   configuration   for  _s_m_a_i_l
                            transports; i.e., configured  methods
                            of mail delivery.  This file replaces
                            the compiled-in transport  configura-
                            tion.
       _/_u_s_r_/_l_i_b_/_m_a_i_l_/_d_i_r_e_c_t_o_r_s
                            Optional   configuration   for  _s_m_a_i_l
                            directors, i.e.,  configured  methods
                            for  resolving local addresses.  This
                            file replaces the compiled-in  direc-
                            tor configuration.
       _/_u_s_r_/_l_i_b_/_m_a_i_l_/_r_o_u_t_e_r_s
                            Optional   configuration   for  _s_m_a_i_l
                            routers, i.e., configured methods for
                            resolving or routing to remote hosts.
                            This file  replaces  the  compiled-in
                            router configuration.
       _/_u_s_r_/_l_i_b_/_m_a_i_l_/_a_l_i_a_s_e_s
                            A   file   of   aliases   for   local
                            addresses.
       _/_u_s_r_/_l_i_b_/_m_a_i_l_/_p_a_t_h_s  A file of paths to remote hosts.
       _/_u_s_r_/_l_i_b_/_m_a_i_l_/_l_i_s_t_s_/ A directory of mailing list files.
       _~_/_._f_o_r_w_a_r_d           Lists  of  forwarding  addresses  for
                            local users.
       _/_u_s_r_/_s_p_o_o_l_/_s_m_a_i_l     The  top of the spool directory hier-
                            archy.
       _/_u_s_r_/_s_p_o_o_l_/_s_m_a_i_l_/_i_n_p_u_t
                            The directory containing messages  to
                            be processed and delivered.




Local                    1 February 1988                       74





SMAIL(5)                                                 SMAIL(5)


       _/_u_s_r_/_s_p_o_o_l_/_s_m_a_i_l_/_m_s_g_l_o_g
                            A  directory  of transaction logs for
                            individual messages.
       _/_u_s_r_/_s_p_o_o_l_/_s_m_a_i_l_/_l_o_c_k
                            A directory used in _s_m_a_i_l input spool
                            files.
       _/_u_s_r_/_s_p_o_o_l_/_s_m_a_i_l_/_l_o_g_/_l_o_g_f_i_l_e
                            A log of smail transactions.
       _/_u_s_r_/_s_p_o_o_l_/_s_m_a_i_l_/_l_o_g_/_p_a_n_i_c_l_o_g
                            A  log  of  configuration  or  system
                            errors encountered by _s_m_a_i_l.
       _/_u_s_r_/_s_p_o_o_l_/_s_m_a_i_l_/_e_r_r_o_r
                            Messages that failed due to  a  small
                            set of fatal error such as a configu-
                            ration  error  are  placed  in   this
                            directory.  Currently the site admin-
                            istrator must move  these  back  into
                            _/_u_s_r_/_s_p_o_o_l_/_s_m_a_i_l_/_i_n_p_u_t when the error
                            condition is resolved.
       _/_u_s_r_/_s_p_o_o_l_/_m_a_i_l      The directory for user mailbox files.

SSEEEE AALLSSOO
       _b_i_n_m_a_i_l(1),  _m_a_i_l_x(1)  under  System V, _M_a_i_l(1) under BSD,
       _r_e_s_o_l_v_e_r(3), _n_a_m_e_d(8), _p_a_t_h_t_o(1), _s_m_a_i_l(8).
       _S_m_a_i_l _A_d_m_i_n_i_s_t_r_a_t_i_o_n _a_n_d _I_n_s_t_a_l_l_a_t_i_o_n _G_u_i_d_e.
       DARPA  Internet  Requests  for  Comments  RFC821,  RFC822,
       RFC974, RFC976, and RFC1123.

BBUUGGSS
       Colons  cannot be included in the value of a list element.

       There should be a way of specifying that different  errors
       encountered  by  smail  should result in different actions
       (i.e., mailing a message  to  the  postmaster,  storing  a
       detailed error message in a file).

CCOOPPYYRRIIGGHHTT
       Copyright(C)1987, 1988 Ronald S. Karr and Landon Curt Noll
       Copyright(C)1992 Ronald S. Karr
       See a file COPYING, distributed with the source  code,  or
       type  _s_m_a_i_l  _-_b_c  for distribution rights and restrictions
       associated with this software.















Local                    1 February 1988                       75


