


SENDMAIL(8)                                           SENDMAIL(8)


NAME
       sendmail - an electronic mail transport agent

SYNOPSIS
       sendmail [flags] [address ...]
       newaliases
       mailq [-v]
       hoststat
       purgestat
       smtpd

DESCRIPTION
       Sendmail  sends a message to one or more recipients, rout-
       ing the message  over  whatever  networks  are  necessary.
       Sendmail  does  internetwork  forwarding  as  necessary to
       deliver the message to the correct place.

       Sendmail is not intended  as  a  user  interface  routine;
       other  programs provide user-friendly front ends; sendmail
       is used only to deliver pre-formatted messages.

       With no flags, sendmail reads its standard input up to  an
       end-of-file  or a line consisting only of a single dot and
       sends a copy of the message found  there  to  all  of  the
       addresses  listed.   It  determines  the network(s) to use
       based on the syntax and contents of the addresses.

       Local addresses are looked up in a file and aliased appro-
       priately.   Aliasing  can  be  prevented  by preceding the
       address with a backslash.  Beginning with 8.10, the sender
       is included in any alias expansions, e.g., if `john' sends
       to `group', and `group' includes `john' in the  expansion,
       then the letter will also be delivered to `john'.

   Parameters
       -Ac    Use  submit.cf  even if the operation mode does not
              indicate an initial mail submission.

       -Am    Use sendmail.cf even if the  operation  mode  indi-
              cates an initial mail submission.

       -Btype Set  the  body  type to type.  Current legal values
              are 7BIT or 8BITMIME.

       -ba    Go into ARPANET mode.  All  input  lines  must  end
              with  a  CR-LF,  and all messages will be generated
              with a CR-LF at the end.  Also, the  ``From:''  and
              ``Sender:'' fields are examined for the name of the
              sender.

       -bd    Run as a daemon.  Sendmail will  fork  and  run  in
              background listening on socket 25 for incoming SMTP
              connections.  This is normally run from /etc/rc.




                   $Date: 2002/10/15 02:38:33 $                 1





SENDMAIL(8)                                           SENDMAIL(8)


       -bD    Same as -bd except runs in foreground.

       -bh    Print the persistent host status database.

       -bH    Purge expired entries from the persistent host sta-
              tus database.

       -bi    Initialize the alias database.

       -bm    Deliver mail in the usual way (default).

       -bp    Print a listing of the queue(s).

       -bP    Print  number  of  entries  in  the  queue(s); only
              available with shared memory support.

       -bs    Use the SMTP protocol as  described  in  RFC821  on
              standard  input  and output.  This flag implies all
              the operations of the -ba flag that are  compatible
              with SMTP.

       -bt    Run   in   address  test  mode.   This  mode  reads
              addresses and shows the steps  in  parsing;  it  is
              used for debugging configuration tables.

       -bv    Verify  names  only  -  do  not  try  to collect or
              deliver a message.  Verify mode  is  normally  used
              for validating users or mailing lists.

       -Cfile Use alternate configuration file.  Sendmail refuses
              to run as root if an alternate  configuration  file
              is specified.

       -dX    Set debugging value to X.

       -Ffullname
              Set the full name of the sender.

       -fname Sets  the  name  of  the ``from'' person (i.e., the
              envelope sender of the  mail).   This  address  may
              also  be used in the From: header if that header is
              missing during initial  submission.   The  envelope
              sender  address is used as the recipient for deliv-
              ery status notifications and may also appear  in  a
              Return-Path:  header.   -f  should  only be used by
              ``trusted'' users (normally root, daemon, and  net-
              work)  or if the person you are trying to become is
              the same as the person you are.  Otherwise,  an  X-
              Authentication-Warning  header will be added to the
              message.

       -G     Relay (gateway) submission of a message, e.g., when
              rmail calls sendmail .




                   $Date: 2002/10/15 02:38:33 $                 2





SENDMAIL(8)                                           SENDMAIL(8)


       -hN    Set  the  hop  count to N.  The hop count is incre-
              mented every time the mail is processed.   When  it
              reaches a limit, the mail is returned with an error
              message, the victim of an aliasing  loop.   If  not
              specified,  ``Received:''  lines in the message are
              counted.

       -i     Ignore dots alone on lines by themselves in  incom-
              ing  messages.  This should be set if you are read-
              ing data from a file.

       -L tag Set the identifier used in syslog messages  to  the
              supplied tag.

       -N dsn Set delivery status notification conditions to dsn,
              which can be `never'  for  no  notifications  or  a
              comma  separated list of the values `failure' to be
              notified if delivery failed, `delay' to be notified
              if  delivery  is delayed, and `success' to be noti-
              fied when the message is successfully delivered.

       -n     Don't do aliasing.

       -O option=value
              Set option option to  the  specified  value.   This
              form  uses long names.  See below for more details.

       -ox value
              Set option x to the  specified  value.   This  form
              uses  single character names only.  The short names
              are not described in  this  manual  page;  see  the
              Sendmail   Installation  and  Operation  Guide  for
              details.

       -pprotocol
              Set the name of the protocol used  to  receive  the
              message.   This  can be a simple protocol name such
              as ``UUCP'' or a protocol  and  hostname,  such  as
              ``UUCP:ucbvax''.

       -q[time]
              Process saved messages in the queue at given inter-
              vals.  If time is omitted, process the queue  once.
              Time  is  given  as a tagged number, with `s' being
              seconds, `m' being  minutes  (default),  `h'  being
              hours,  `d'  being  days, and `w' being weeks.  For
              example, `-q1h30m' or `-q90m' would  both  set  the
              timeout  to  one  hour thirty minutes.  By default,
              sendmail will run in the background.   This  option
              can be used safely with -bd.

       -qp[time]
              Similar  to -qtime, except that instead of periodi-
              cally  forking  a  child  to  process  the   queue,



                   $Date: 2002/10/15 02:38:33 $                 3





SENDMAIL(8)                                           SENDMAIL(8)


              sendmail  forks  a single persistent child for each
              queue that alternates between processing the  queue
              and sleeping.  The sleep time is given as the argu-
              ment; it defaults to 1 second.   The  process  will
              always  sleep  at  least 5 seconds if the queue was
              empty in the previous queue run.

       -qf    Process saved messages in the queue once and do not
              fork(), but run in the foreground.

       -qG name
              Process jobs in queue group called name only.

       -q[!]I substr
              Limit  processed jobs to those containing substr as
              a substring of the queue id or not when !  is spec-
              ified.

       -q[!]R substr
              Limit  processed jobs to those containing substr as
              a substring of one of the recipients or not when  !
              is specified.

       -q[!]S substr
              Limit  processed jobs to those containing substr as
              a substring of the sender or not when !  is  speci-
              fied.

       -R return
              Set the amount of the message to be returned if the
              message  bounces.   The  return  parameter  can  be
              `full'  to  return  the entire message or `hdrs' to
              return only the headers.  In the latter  case  also
              local bounces return only the headers.

       -rname An alternate and obsolete form of the -f flag.

       -t     Read  message  for  recipients.  To:, Cc:, and Bcc:
              lines will be scanned for recipient addresses.  The
              Bcc: line will be deleted before transmission.

       -V envid
              Set  the  original envelope id.  This is propagated
              across SMTP to servers that  support  DSNs  and  is
              returned in DSN-compliant error messages.

       -v     Go  into  verbose  mode.   Alias expansions will be
              announced, etc.

       -X logfile
              Log all traffic in and out of mailers in the  indi-
              cated log file.  This should only be used as a last
              resort for debugging mailer bugs.  It  will  log  a
              lot of data very quickly.



                   $Date: 2002/10/15 02:38:33 $                 4





SENDMAIL(8)                                           SENDMAIL(8)


       --     Stop  processing  command flags and use the rest of
              the arguments as addresses.

   Options
       There are also a number of processing options that may  be
       set.   Normally these will only be used by a system admin-
       istrator.  Options may be set either on the  command  line
       using the -o flag (for short names), the -O flag (for long
       names), or in the configuration file.  This is  a  partial
       list limited to those options that are likely to be useful
       on the command line and only shows the long names;  for  a
       complete  list (and details), consult the Sendmail Instal-
       lation and Operation Guide.  The options are:

       AliasFile=file
              Use alternate alias file.

       HoldExpensive
              On mailers that  are  considered  ``expensive''  to
              connect  to,  don't  initiate immediate connection.
              This requires queueing.

       CheckpointInterval=N
              Checkpoint the queue file after every N  successful
              deliveries  (default  10).   This  avoids excessive
              duplicate deliveries when sending to  long  mailing
              lists interrupted by system crashes.

       DeliveryMode=x
              Set the delivery mode to x.  Delivery modes are `i'
              for interactive  (synchronous)  delivery,  `b'  for
              background  (asynchronous)  delivery, `q' for queue
              only - i.e., actual delivery is done the next  time
              the  queue  is run, and `d' for deferred - the same
              as `q' except that database lookups for maps  which
              have  set  the -D option (default for the host map)
              are avoided.

       ErrorMode=x
              Set error processing to mode x.   Valid  modes  are
              `m'   to  mail  back  the  error  message,  `w'  to
              ``write'' back the error message (or mail  it  back
              if  the  sender is not logged in), `p' to print the
              errors on the terminal (default), `q' to throw away
              error  messages (only exit status is returned), and
              `e' to do special processing for the  BerkNet.   If
              the text of the message is not mailed back by modes
              `m' or `w' and if  the  sender  is  local  to  this
              machine,  a  copy of the message is appended to the
              file dead.letter in the sender's home directory.

       SaveFromLine
              Save UNIX-style From lines at  the  front  of  mes-
              sages.



                   $Date: 2002/10/15 02:38:33 $                 5





SENDMAIL(8)                                           SENDMAIL(8)


       MaxHopCount=N
              The maximum number of times a message is allowed to
              ``hop'' before we decide it is in a loop.

       IgnoreDots
              Do not take dots on a line by themselves as a  mes-
              sage terminator.

       SendMimeErrors
              Send  error  messages  in MIME format.  If not set,
              the DSN (Delivery Status Notification) SMTP  exten-
              sion is disabled.

       ConnectionCacheTimeout=timeout
              Set connection cache timeout.

       ConnectionCacheSize=N
              Set connection cache size.

       LogLevel=n
              The log level.

       MeToo=False
              Don't  send  to  ``me''  (the sender) if I am in an
              alias expansion.

       CheckAliases
              Validate the right hand side of  aliases  during  a
              newaliases(1) command.

       OldStyleHeaders
              If  set,  this  message may have old style headers.
              If not set, this message is guaranteed to have  new
              style  headers  (i.e.,  commas  instead  of  spaces
              between addresses).  If set, an adaptive  algorithm
              is  used  that  will correctly determine the header
              format in most cases.

       QueueDirectory=queuedir
              Select the directory in which to queue messages.

       StatusFile=file
              Save statistics in the named file.

       Timeout.queuereturn=time
              Set the timeout  on  undelivered  messages  in  the
              queue  to  the  specified time.  After delivery has
              failed (e.g., because of a  host  being  down)  for
              this  amount  of  time,  failed  messages  will  be
              returned to the sender.  The default is five  days.

       UserDatabaseSpec=userdatabase
              If  set,  a  user database is consulted to get for-
              warding information.   You  can  consider  this  an



                   $Date: 2002/10/15 02:38:33 $                 6





SENDMAIL(8)                                           SENDMAIL(8)


              adjunct  to the aliasing mechanism, except that the
              database is intended to be distributed; aliases are
              local to a particular host.  This may not be avail-
              able if your sendmail  does  not  have  the  USERDB
              option compiled in.

       ForkEachJob
              Fork each job during queue runs.  May be convenient
              on memory-poor machines.

       SevenBitInput
              Strip incoming messages to seven bits.

       EightBitMode=mode
              Set the handling of eight bit input  to  seven  bit
              destinations  to  mode:  m (mimefy) will convert to
              seven-bit MIME format, p (pass)  will  pass  it  as
              eight bits (but violates protocols), and s (strict)
              will bounce the message.

       MinQueueAge=timeout
              Sets how long a  job  must  ferment  in  the  queue
              between attempts to send it.

       DefaultCharSet=charset
              Sets  the default character set used to label 8-bit
              data that is not otherwise labelled.

       DialDelay=sleeptime
              If opening a connection fails, sleep for  sleeptime
              seconds  and  try  again.  Useful on dial-on-demand
              sites.

       NoRecipientAction=action
              Set the behaviour when there are no recipient head-
              ers  (To:,  Cc:  or Bcc:) in the message to action:
              none leaves the message unchanged,  add-to  adds  a
              To: header with the envelope recipients, add-appar-
              ently-to adds an  Apparently-To:  header  with  the
              envelope  recipients,  add-bcc  adds  an empty Bcc:
              header, and add-to-undisclosed adds a header  read-
              ing `To: undisclosed-recipients:;'.

       MaxDaemonChildren=N
              Sets  the maximum number of children that an incom-
              ing SMTP daemon will allow to spawn at any time  to
              N.

       ConnectionRateThrottle=N
              Sets  the  maximum number of connections per second
              to the SMTP port to N.

       In aliases, the first character of a name may be a  verti-
       cal bar to cause interpretation of the rest of the name as



                   $Date: 2002/10/15 02:38:33 $                 7





SENDMAIL(8)                                           SENDMAIL(8)


       a command to pipe the mail to.  It  may  be  necessary  to
       quote  the  name  to  keep  sendmail  from suppressing the
       blanks from between  arguments.   For  example,  a  common
       alias is:

              msgs: "|/usr/bin/msgs -s"

       Aliases  may also have the syntax ``:include:filename'' to
       ask sendmail to read the named file for a list of  recipi-
       ents.  For example, an alias such as:

              poets: ":include:/usr/local/lib/poets.list"

       would  read  /usr/local/lib/poets.list  for  the  list  of
       addresses making up the group.

       Sendmail returns an exit status describing  what  it  did.
       The codes are defined in <sysexits.h>:

       EX_OK  Successful completion on all addresses.

       EX_NOUSER
              User name not recognized.

       EX_UNAVAILABLE
              Catchall   meaning  necessary  resources  were  not
              available.

       EX_SYNTAX
              Syntax error in address.

       EX_SOFTWARE
              Internal software error, including bad arguments.

       EX_OSERR
              Temporary operating system error, such as  ``cannot
              fork''.

       EX_NOHOST
              Host name not recognized.

       EX_TEMPFAIL
              Message  could  not  be  sent  immediately, but was
              queued.

       If invoked as newaliases, sendmail will rebuild the  alias
       database.   If  invoked  as mailq, sendmail will print the
       contents of the mail queue.  If invoked as hoststat, send-
       mail  will  print the persistent host status database.  If
       invoked as purgestat, sendmail will purge expired  entries
       from  the  persistent host status database.  If invoked as
       smtpd, sendmail will act as a daemon, as if the -bd option
       were specified.




                   $Date: 2002/10/15 02:38:33 $                 8





SENDMAIL(8)                                           SENDMAIL(8)


NOTES
       sendmail  often  gets  blamed  for  many problems that are
       actually the result of other problems, such as overly per-
       missive  modes  on directories.  For this reason, sendmail
       checks the modes on system directories and files to deter-
       mine if they can be trusted.  Although these checks can be
       turned off and your system security reduced by setting the
       DontBlameSendmail  option,  the permission problems should
       be fixed.  For more information, see:

       http://www.sendmail.org/tips/DontBlameSendmail.html

FILES
       Except for the file /etc/mail/sendmail.cf itself the  fol-
       lowing  pathnames  are  all  specified  in /etc/mail/send-
       mail.cf.  Thus, these values are only approximations.


        /etc/mail/aliases
              raw data for alias names

        /etc/mail/aliases.db
              data base of alias names

        /etc/mail/sendmail.cf
              configuration file

        /etc/mail/helpfile
              help file

        /etc/mail/statistics
              collected statistics

        /var/spool/mqueue/*
              temp files

SEE ALSO
       binmail(1),  mail(1),  rmail(1),  syslog(3),   aliases(5),
       mailaddr(7), rc(8)

       DARPA   Internet  Request  For  Comments  RFC819,  RFC821,
       RFC822.  Sendmail Installation and Operation Guide, No. 8,
       SMM.

       http://www.sendmail.org/

HISTORY
       The sendmail command appeared in 4.2BSD.









                   $Date: 2002/10/15 02:38:33 $                 9


