


SMAIL(8)                                                 SMAIL(8)


NAME
       smail,   sendmail,   mailq,  runq,  rmail,  rsmtp,  smtpd,
       newaliases - mail delivery system

SYNOPSIS
       smail [ flags ] address...
       /bin/smail [ flags ] address ...
       mailq
       runq
       rmail address ...
       rsmtp
       smtpd
       newaliases

DESCRIPTION
       Smail is a program used for receiving and delivering mail.
       Its  job  is  to take mail from sources on the local or on
       remote hosts and deliver to the appropriate  destinations.
       This  may  be  either  on  remote  hosts  or  on the local
       machine.  It is not intended to be a  user  interface  for
       reading  and  submitting  mail.  See mailx(1) on System V,
       Mail(1) on BSD systems, or mail(1) on  other  systems  for
       information on user interfaces.

       Smail  is  invoked  under  a  wide variety of names, which
       serve to isolate some of its major uses:  receiving  local
       mail,  receiving remote mail, attempting delivery of unde-
       livered mail and displaying information about  undelivered
       mail.

OPTIONS
       All  of  these commands accept the same set of flags, dif-
       fering mainly in their default  mode  of  operation.   Two
       exceptions  are the rmail and rsmtp commands which support
       only a subset of the possible flags.  These  two  commands
       are  intended  to be used from remote hosts through remote
       execution over UUCP (see uux(1)) and are thus  limited  in
       how much they can do.

       The flags which are recognized by smail are:

       -bc    Display  the  file  COPYING,  distributed  with the
              source, which details your rights and  restrictions
              for distributing this software.

       -bd    Listen for connection requests on a socket bound in
              the internet domain.   When  a  connection  occurs,
              conduct  an  SMTP  (Simple  Mail Transfer Protocol)
              conversation with the peer process.  Listening will
              only  occur  if BSD style internet networking func-
              tionality is available.

       -bm    Deliver mail to the recipient addresses.   This  is
              the   default  mode  of  operation  if  invoked  as



Local                    31 January 1988                        1





SMAIL(8)                                                 SMAIL(8)


              sendmail, smail, rmail or send-mail.

       -bp    List information about the  messages  currently  in
              smail's  input  spool  directories.   This  is  the
              default mode of  operation  if  invoked  as  mailq.
              With  the  -v or -d flag, a per-message transaction
              log is displayed for each message which shows  what
              has happened to the message so far.

       -bi    Initialize  the aliases file, or a YP aliases file.
              The specific behavior of this command depends  upon
              whether an aliases file is specified in the command
              with -oA file.  If such an aliases file  is  speci-
              fied, the file specifies input that will be used to
              build a DBM database with the same  basename.   The
              resulting  DBM database is intended to be usable as
              a YP database.  If smail was compiled with the sdbm
              package, distributed with smail, then the resulting
              database  will  not  be  usable  by  YP.   The  DBM
              database is rebuilt by calling mkdbm (see mkdbm(8))
              with the -y option.

              If an aliases file was not specified with -oA, then
              the system default aliases file is rebuilt by call-
              ing the mkaliases  program  (see  mkaliases(8)  for
              more information).

              Both  the mkdbm and mkaliases programs are executed
              from the directory indicated by the  smail_util_dir
              attribute (by default /usr/lib/mail).

       -bP    Take  the  addresses  given  on the command line as
              config file variables (see smail(5) for more infor-
              mation)  and  write the values for each variable on
              the standard output.  References to variables, such
              as  hostnames or uucp_name which may be computed at
              run time, will yield the values  that  smail  would
              compute  normally.  For example, on my workstation,
              the command:

                   smail -bP hostnames max_message_size

              produces the output:

                   futatsu.uts.amdahl.com:futatsu.amdahl.com
                   102400

              With  the -v or -d flag the variable names are dis-
              played as well, so that the command:

                   smail -bP -v max_message_size

              produces the output:




Local                    31 January 1988                        2





SMAIL(8)                                                 SMAIL(8)


                   max_message_size=102400

              In addition to other  config  file  variables,  the
              name  primary_name  will  output  the  primary  (or
              canonical) name for the local host  which  will  be
              used by smail, and config_file will output the name
              of the primary configuration file.  Also, the  name
              help  will  produce  a verbose listing of all vari-
              ables associated with their type, one variable  per
              line, and the name all will produce a verbose list-
              ing of all variables along with their  values.   It
              is equivalent to smail -bP -v followed by a list of
              the names of all configuration variables.

       -bR    Enter the hostile mail domain of  giant  mail  mes-
              sages,  and  RFC standard scrolls.  Attempt to make
              it down to protocol level 26 and back.

       -bS    Read SMTP commands on standard input,  but  do  not
              produce SMTP replies on standard output.  All fail-
              ures are  reported  by  return  mail,  rather  than
              through  reply codes.  This is suitable for setting
              up a batched form of SMTP between machines  over  a
              remote  execution  service  like UUCP.  This is the
              default mode of operation if invoked as rsmtp.

       -bs    Read SMTP commands on standard  input  and  produce
              SMTP  replies  on  standard  output.  The currently
              implemented SMTP commands are HELO, MAIL FROM, RCPT
              TO, DATA, RSET, NOOP, VRFY, EXPN and QUIT.  This is
              the default mode of operation if invoked as  smtpd.
              For  compatibility  with  some  implementations  of
              inetd(8N), if smtpd is  started  with  no  standard
              output, standard input will be dup(2)'d to standard
              output.

       -bt    Enter address test mode.  Read addresses  on  stan-
              dard  input  and produce the parse results and host
              routing/resolving information on  standard  output.
              This  is  primarily  useful  for debugging smail or
              debugging new smail routers.

       -bv    Verify a list of addresses by producing the list of
              addresses   produced  by  aliasing  and  forwarding
              expansions  and  by  host  routing  or   resolving.
              Addresses  which  cannot  be resolved are also dis-
              played, along with the reasons why.

       -C filename or -oC filename
              Sets the pathname of the primary config file to use
              in  reading global attribute values.  If specified,
              then smail sets the effective uid and gid  back  to
              the  real  uid  and  gid,  to  avoid  problems when
              installations allow smail to  be  set  uid  to  the



Local                    31 January 1988                        3





SMAIL(8)                                                 SMAIL(8)


              superuser.   If  the  filename is - then no primary
              config file is read.  This should only be used  for
              debugging purposes.

       -d[number] or -v[number]
              turn  on  debugging.  If a number is given, set the
              debugging level to that value, otherwise the debug-
              ging  level is set to 1.  No white space is allowed
              before the optional number.  There is no  differen-
              tiation between use of -d and -v.

       -D file
              Redirect  debugging  output  to the indicated file.
              Normally, debugging output will disable  background
              delivery  because  programs  should not continue to
              write to standard  error  after  the  mail  process
              exits.   However,  if a debug output file is speci-
              fied, then background delivery can occur.

       -em or -oem
              Mail errors back to the sender (default).

       -ee or -oee
              These forms refer to a  berkenet  error  processing
              style which is not supported.  If used, errors will
              be mailed back to the sender.

       -ep or -oep
              Write errors to the standard error output.

       -eq or -oeq
              Do not send notification of errors to  the  sender.
              This only works for mail delivered locally.  Errors
              encountered on remote hosts mail  still  result  in
              returned  mail.   Supply  a Precedence: junk header
              field to set this  behavior  on  local  and  remote
              hosts.

       -ew or -oew
              Write  errors  to  the  sender's terminal using the
              write(1) command, if he is logged  in.   Otherwise,
              mail errors back to the sender.  (This is currently
              not supported and is treated in the same manner  as
              -oem)

       -F fullname
              Explicitly  set  the  full  name  of the sender for
              incoming mail, used only if the operation  mode  is
              reception  of  a  single  mail  message on standard
              input.

       -f sender or -r sender
              Explicitly set  the  sender  address  for  incoming
              mail,  used only if the operation mode is reception



Local                    31 January 1988                        4





SMAIL(8)                                                 SMAIL(8)


              of a single mail message on standard input.

       -h number
              Sets the hopcount for a single message.  If this is
              not  specified,  the hop count is computed from the
              number of Received: fields in the  message  header.
              The  hopcount is used for a primitive form of infi-
              nite loop detection: a sufficiently large hop count
              will cause mail to be rejected.

       -I or -oI
              Use  the  hidden  dot algorithm in reading the mes-
              sage.  Lines with one or more dots at the beginning
              have the leading dot removed, while a line contain-
              ing only a single dot ends the input message.  This
              is always set for messages received using SMTP.

       -i or -oi
              Do  not  allow a single `.' to end an incoming mes-
              sage.  Otherwise, a dot on a line  by  itself  will
              end  a  message.   This  is the default if smail is
              invoked as rmail.

       -m or -om
              Allow retention of the sender as  a  recipient  for
              alias  and mailing list expansions that include the
              sender.  If this is Not set, the  sender  will  not
              receive  a  copy of the message only as a result of
              being in an alias or mailing list.

       -N     Disable delivery of this message.  All  other  pro-
              cessing  is  performed, and transports are expected
              to go through most of the steps involved in  deliv-
              ery.   This  is useful for debugging smail when you
              do not actually wish to have messages delivered.

       -n     Do not perform alias processing.   This  only  pre-
              vents expansion of entries in alias files.  Mailing
              list files and forward files may still be expanded.

       -odb   Deliver  mail in background, if mail delivery is to
              be performed.  Background delivery is not currently
              supported in the SMTP modes; foreground delivery is
              used instead.

       -odf   Deliver mail in foreground, if mail delivery is  to
              be performed.

       -oD filename
              Sets the pathname of the director file.  This over-
              rides the default name of the director file as well
              as  any  name  set in a config file.  If specified,
              then smail sets the effective uid and gid  back  to
              the  real  uid  and  gid,  to  avoid  problems when



Local                    31 January 1988                        5





SMAIL(8)                                                 SMAIL(8)


              installations allow smail to  be  set  uid  to  the
              superuser.   If  the filename is - then no director
              file is read.  This should only be used for  debug-
              ging purposes.

       -oE filename
              Sets  the  pathname  of  the delivery retry control
              file.  This overrides the default name of the retry
              file  as well as any name set in a config file.  If
              specified, then smail sets the  effective  uid  and
              gid back to the real uid and gid, to avoid problems
              when installations allows smail to be  set  uid  to
              the  superuser  (the normal case).  If the filename
              is - then no retry file is read.  This should  only
              be used for debugging purposes.

       -oL directory name
              Sets  the  pathname of the smail library directory.
              This overrides the default value  of  smail_lib_dir
              compiled into the smail binary, as well as any name
              set in a config file.  This string may be  used  to
              locate  configuration  files, such as the director,
              router and transport files, alias and  path  files,
              and mailing list directories.

       -oQ filename
              Sets  the  pathname  of  the hostname qualification
              file.  This overrides the default name of the qual-
              ify  file as well as any name set in a config file.
              If specified, then smail sets the effective uid and
              gid back to the real uid and gid, to avoid problems
              when installations allows smail to be  set  uid  to
              the  superuser  (the normal case).  If the filename
              is - then no qualify file  is  read.   This  should
              only be used for debugging purposes.

       -oR filename
              Sets  the  pathname of the router file.  This over-
              rides the default name of the router file  as  well
              as  any  name  set in a config file.  If specified,
              then smail sets the effective uid and gid  back  to
              the  real  uid  and  gid,  to  avoid  problems when
              installations allows smail to be  set  uid  to  the
              superuser  (the normal case).  If the filename is -
              then no router file is read.  This should  only  be
              used for debugging purposes.

       -oT filename
              Sets  the  pathname  of  the  transport file.  This
              overrides the default name of the transport file as
              well  as  any name set in a config file.  If speci-
              fied, then smail sets the  effective  uid  and  gid
              back  to  the  real  uid and gid, to avoid problems
              when installations allow smail to be set uid to the



Local                    31 January 1988                        6





SMAIL(8)                                                 SMAIL(8)


              superuser.   If the filename is - then no transport
              file is read.  This should only be used for  debug-
              ging purposes.

       -Q or -odq
              Spool incoming messages but do not actually perform
              delivery until a later queue.  This mode of  opera-
              tion  is  somewhat  more  efficient in terms of CPU
              usage, though it does slow down the flow of mail.

       -q[interval]
              Cause smail to process its input  spool  directory.
              If  an  interval  is  given,  smail will repeatedly
              check its input spool directory, sleeping  for  the
              given  interval between checks.  The interval is in
              seconds, though it can be defined 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, -q2h30m specifies
              an interval of two hours and 30 minutes.  This flag
              is useful in conjunction with the -bd mode of oper-
              ation and will cause the daemon process to wake  up
              on  these  intervals  and perform queue processing.
              Performing a single queue run is the  default  mode
              of operation if smail is invoked as runq.

       -t     Extract addresses from the To:, Cc: and Bcc: fields
              of the message header.  This  is  useful  for  user
              agents  that  do  not wish to compute the recipient
              addresses themselves.  In this mode, any  addresses
              given  on  the  command  line  are  addresses  that
              explicitly will NOT receive mail, even as a  result
              of  aliasing or forwarding expansions.  This option
              is ignored unless smail is in the mode set  by  the
              -bm flag (which is the default mode).

       -V or -bV
              Print the smail version on the standard output.

       -oU    Report memory usage when smail exits.

       -oX mail-service
              Set  the  TCP/IP  service name or port number to be
              used for listening for  SMTP  requests.   This  can
              used  in  conjunction  with  the -bd mode to define
              alternate debugging versions of the smail SMTP lis-
              tening daemon, which may be useful in testing a new
              installation.

       -oMs sender_host
              Specify the name of the system that send  the  mail
              message.   This  value can be included in expansion
              strings through the variable $sender_host.




Local                    31 January 1988                        7





SMAIL(8)                                                 SMAIL(8)


       -oMr sender_proto
              Specify the protocol that was used by  the  sending
              host  to  deliver the mail message.  This value can
              be included in expansion strings through the  vari-
              able $sender_proto.

NORMAL USAGE
       Under normal usage, one smail daemon exists which receives
       requests from remote hosts and processes the  input  spool
       directory at intervals.  Such a daemon can be started from
       /etc/rc with a command such as

            smail -bd -q1h

       which will cause queue runs at one hour intervals.

       New mail can be submitted  from  user  agents  by  calling
       smail  directly  and  passing a message on standard input.
       Mailers such as BSD Mail(1) and  some  System  V  mailx(1)
       programs submit mail by invoking smail with a command such
       as

            smail -em -i recipient-address ...

       Because smail also works correctly if invoked as  sendmail
       it is common to install smail as /usr/lib/sendmail so that
       existing binaries on BSD systems, or  other  systems  that
       current  run  sendmail,  do not need to be modified to run
       smail instead.

       Some user agents, such as GNU Emacs may wish to have smail
       decipher  the  recipient list from the header.  These pro-
       grams may invoke smail with a command such as

            smail -em -t -i

       To receive mail over UUCP, smail can be  invoked  directly
       from  uuxqt as /bin/rmail.  Alternately, /bin/rmail can be
       another program that invokes smail directly as

            smail -em -i -fsender-address recipient address ...

       It is common for the System V based /bin/rmail program  to
       perform  delivery  by  itself, resulting in mail bypassing
       smail altogether.  Such systems should replace  /bin/rmail
       with  a copy of smail or modify /bin/rmail so that it exe-
       cutes a copy of smail with the arguments as given above.


       NOTE:  In the future,  a  separate  program  may  be  dis-
              tributed  with smail to serve the function of rmail
              at a lower cost.  This program will only write  the
              input  spool file, while allowing a smail daemon to
              process messages at a later time.  This  will  save



Local                    31 January 1988                        8





SMAIL(8)                                                 SMAIL(8)


              the  cost  of  a complete exec(2) of smail for each
              incoming message.

       An alternative method  of  receiving  mail  over  UUCP  is
       through  the  rsmtp  command,  which receives batched SMTP
       requests.  This can be  used  between  two  sites  running
       smail  to  gain many of the benefits of the SMTP protocol,
       such as the ability to use recipient addresses  which  UUX
       cannot  correctly  pass  to  a  remote rmail program.  For
       example, addresses containing quotes or spaces  cannot  be
       expected  to  pass correctly over an uux/rmail link.  How-
       ever a uux/rsmtp link can handle such cases.

SENDMAIL COMPATIBILITY
       Smail was designed to be a plug-in replacement for the BSD
       sendmail program, in that external programs can call smail
       in the same manner that they  previously  called  sendmail
       and  expect similar results.  However, smail is completely
       different internally and has entirely different configura-
       tion files.  As a result, the -o option to smail only sets
       a few configuration parameters which were felt to be  com-
       monly used by other programs.  Also, for convenience, some
       new (upper case  only)  parameters  are  defined  only  in
       smail.   Attempts to set other options using this flag are
       ignored.  See the OPTIONS section for the complete list of
       supported -o options.

       Because  smail  can  be called in a manner very similar to
       sendmail   it   is   common   to    install    smail    as
       /usr/lib/sendmail  so  that no other program need be modi-
       fied to use the new mailer.  Thus, once  properly  config-
       ured, smail can be installed into a current sendmail-based
       environment, including an environment  without  access  to
       source, with minimal effort.

SMAIL UNDER SYSTEM V
       The  easiest way to install smail on a System V host is to
       install  it  as  /bin/rmail.   An  alternative  is   cause
       mailx(1)   to   call  /usr/lib/sendmail  by  changine  the
       mailx(1)  configuration  file  /usr/lib/mailx/mailx.rc  to
       include a line such as:

            sendmail=/usr/lib/sendmail


       System V's mail(1) command attempts to perform delivery by
       itself.  Use of mail(1) to send mail should thus  be  dis-
       couraged  unless mail(1) is modified to call smail to per-
       form delivery.

FILES
       For many sites, the compiled in configuration of smail  is
       sufficient  and  thus  no  configuration files are needed.
       The following files and directories are from  the  default



Local                    31 January 1988                        9





SMAIL(8)                                                 SMAIL(8)


       smail configuration:

       /usr/lib/mail/config     Optional general smail configura-
                                tion.   This  file  can  override
                                compiled-in configuration.
       /usr/lib/mail/qualify    Optional  hostname  qualification
                                configuration file.
       /usr/lib/mail/directors  Optional configuration for  smail
                                directors, i.e., configured meth-
                                ods    for    resolving     local
                                addresses.   This  file  replaces
                                the compiled-in director configu-
                                ration.
       /usr/lib/mail/routers    Optional  configuration for smail
                                routers, i.e., configured methods
                                for   resolving   or  routing  to
                                remote hosts.  This file replaces
                                the compiled-in router configura-
                                tion.
       /usr/lib/mail/transports Optional configuration for  smail
                                transports;    i.e.,   configured
                                methods of mail  delivery.   This
                                file   replaces  the  compiled-in
                                transport configuration.
       /usr/lib/mail/retry      Optional delivery retry  configu-
                                ration  file;  i.e., minimum time
                                between retries, and maximum time
                                to retry before giving up.
       The  following files are commonly used to locally redirect
       mail and to give paths to remote sites.
       /usr/lib/mail/aliases    A  file  of  aliases  for   local
                                addresses.
       /usr/lib/mail/paths      A  file of paths to remote hosts.
       /usr/lib/mail/lists      A  directory  of   mailing   list
                                files.
       /usr/spool/mail          The  directory  for  user mailbox
                                files.
       ~/.forward               Lists of forwarding addresses for
                                local users.
       The  smail mailer typically uses the following directories
       for working storage, and to hold incoming mail messages.
       /usr/spool/smail         The top of  the  spool  directory
                                hierarchy.
       /usr/spool/smail/input   Smail's   spool   directory   for
                                incoming messages.
       /usr/spool/smail/error   A directory  for  messages  which
                                failed  for  some reason that the
                                site administrator should  inves-
                                tigate.
       /usr/spool/smail/msglog  A  directory  of transaction logs
                                for individual messages.
       /usr/spool/smail/lock    A directory used in  smail  input
                                spool files.
       The  following files log the activity of the smail mailer.



Local                    31 January 1988                       10





SMAIL(8)                                                 SMAIL(8)


       The system administrator should check and  truncate  these
       files from time.
       /usr/spool/smail/log/logfile
                                A log of smail transactions.
       /usr/spool/smail/log/paniclog
                                A  log of configuration or system
                                errors encountered by smail.

DIAGNOSTICS
       Exits  with  0  if  no  errors,  non-0   otherwise.    See
       /usr/include/sysexits.h  or  src/exitcodes.h  in the smail
       source for the list of possible exit codes.

       If the -bd option was used, then  bind()  failed:  Address
       already  in  use  implies  that another process is already
       listening on the SMTP socket.

SEE ALSO
       binmail(1), mailx(1) under System V,  Mail(1)  under  BSD,
       pathto(1), smail(5), Smail Administration and Installation
       Guide, Smail Design Document, DARPA Internet Requests  for
       Comments, RFC821, RFC822 and RFC976.

BUGS
       Many mail bugs are not smail bugs.  Smail can't help it if
       remote sites trash your mail messages.

       If you find any bugs, please mail  a  description  to  the
       address  smail-bugs@veritas.com, along with any code fixes
       that you may have.

       Setting the input spool directory processing interval to a
       period  of  more than 2147483647 seconds is silly and will
       result in an incorrectly calculated processing interval.

       Route-addrs on protocol level 1 are too strong.

COPYRIGHT
       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 smail -bc for distribution  rights  and  restrictions
       associated with this software.














Local                    31 January 1988                       11


