


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.   This  requires  Berkeley  IPC.
              Sendmail  will fork and run in background listening
              on socket 25 for incoming SMTP  connections.   This
              is normally run from /etc/rc.



                   $Date: 2002/03/12 18:00:39 $                 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/03/12 18:00:39 $                 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/03/12 18:00:39 $                 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/03/12 18:00:39 $                 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/03/12 18:00:39 $                 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/03/12 18:00:39 $                 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/03/12 18:00:39 $                 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/03/12 18:00:39 $                 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/03/12 18:00:39 $                 9


