SENDMAIL(8)                 UNIX    System    Manager's    Manual
SENDMAIL(8)

NAME
     sendmail - an electronic mail transport agent

SYNOPSIS
     sendmail [flags] [address ...]
     newaliases
     mailq [-v]

DESCRIPTION
     Sendmail sends a message to one or more recipients,  routing
the message
     over  whatever networks are necessary.  Sendmail does inter-
network for-
     warding as necessary to deliver the message to  the  correct
place.

     Sendmail  is not intended as a user interface routine; other
programs pro-
     vide user-friendly front ends; sendmail is used only to  de-
liver pre-for-
     matted 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.
     Normally the sender is not included in any alias expansions,
e.g., if
     `john'  sends to `group', and `group' includes `john' in the
expansion,
     then the letter will not be delivered to `john'.

   Parameters

     -Btype      Set the body type to type. Current legal  values
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 incom-
                 ing SMTP connections.  This is normally run from
/etc/rc.

     -bD         Same as -bd except runs in foreground.

     -bh         Print the persistent host status database.

     -bH         Purge the persistent host status database.

     -bi         Initialize the alias database.

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

     -bp         Print a listing of the queue.

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

     -bt          Run  in address test mode.  This mode reads ad-
dresses and
                 shows the steps in parsing; it is used  for  de-
bugging configu-

                 ration tables.

     -bv         Verify names only - do not try to collect or de-
liver a mes-
                 sage.  Verify mode is normally used for validat-
ing users or
                 mailing lists.

     -Cfile       Use alternate configuration file.  Sendmail re-
fuses to run as
                 root if an alternate configuration file is spec-
ified.

     -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
sender of the
                 mail).  -f can only be used by ``trusted'' users
(normally
                 root,  daemon, and network) or if the person you
are trying to
                 become is the same as the person you are.

     -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 vic-
tim of an
                 aliasing  loop.  If not specified, ``Received:''
lines in the
                 message are counted.

     -i          Ignore dots alone on lines by themselves in  in-
coming mes-
                 sages.   This  should  be set if you are reading
data from a
                 file.

     -N dsn      Set delivery status notification  conditions  to
dsn, which can
                 be `never' for no notifications or a comma sepa-
rated list of
                 the values `failure' to be notified if  delivery
failed,
                 `delay'  to  be notified if delivery is delayed,
and `success'
                 to be notified 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 pro-
                 tocol and hostname, such as ``UUCP:ucbvax''.

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

     -qIsubstr   Limit processed jobs to those containing  substr
as a sub-
                 string of the queue id.

     -qRsubstr    Limit processed jobs to those containing substr
as a sub-
                 string of one of the recipients.

     -qSsubstr   Limit processed jobs to those containing  substr
as a sub-

                 string of the sender.

     -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.

     -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.

     -U          Initial (user) submission.  This  should  always
be set when
                 called  from  a  user agent such as Mail or exmh
and never be
                 set when called by a network delivery agent such
as rmail.

     -V envid    Set the original envelope id.  This is propagat-
ed 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 in-
dicated log
                 file.  This should only be used as a last resort
for debug-
                 ging mailer bugs.  It will log  a  lot  of  data
very quickly.

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

   Options
     There are also a number of processing options  that  may  be
set.  Normally
     these  will only be used by a system administrator.  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 Installation 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  re-
quires queueing.

     CheckpointInterval=N
                 Checkpoint the queue file after every N success-
ful 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 inter-
                 active  (synchronous)  delivery,  `b'  for back-
ground (asyn-
                 chronous) delivery, `q' for queue only  -  i.e.,
actual deliv-
                 ery  is done the next time the queue is run, and
`d' for de-
                 ferred - the same as `q'  except  that  database
lookups (no-
                 tably DNS and NIS lookups) 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 mes-
                 sage  (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 mes-
                 sage  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 di-
rectory.

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

     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
message termi-
                 nator.

     SendMimeErrors
                 Send error messages in MIME format.  If not set,
the DSN (De-
                 livery Status Notification)  SMTP  extension  is
disabled.

     ConnectionCacheTimeout=timeout
                 Set connection cache timeout.

     ConnectionCacheSize=N
                 Set connection cache size.

     LogLevel=n  The log level.

     MeToo        Send  to ``me'' (the sender) also if I am in an
alias expan-
                 sion.

     CheckAliases
                 Validate the right hand side of aliases during a
newalias-
                 es(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 infor-
                 mation.  You can consider this an adjunct to the
aliasing
                 mechanism, except that the database is  intended
to be dis-
                 tributed;  aliases  are  local  to  a particular
host.  This may
                 not be available if your sendmail does not  have
the USERDB
                 option compiled in.

     ForkEachJob
                 Fork  each job during queue runs.  May be conve-
nient on memo-
                 ry-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 at-
                 tempts 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
headers (To:,
                 Cc: or Bcc:) in  the  message  to  action:  none
leaves the mes-
                 sage  unchanged,  add-to  adds a To: header with
the envelope
                 recipients, add-apparently-to adds an  Apparent-
ly-To: header
                 with  the  envelope  recipients, add-bcc adds an
empty Bcc:
                 header, and  add-to-undisclosed  adds  a  header
reading `To:
                 undisclosed-recipients:;'.

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

     ConnectionRateThrottle=N
                 Sets the maximum number of connections per  sec-
ond to the SMTP
                 port to N.

     In  aliases, the first character of a name may be a vertical
bar to cause
     interpretation of the rest of the name as 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 recipients.  For  example,
an alias such
     as:

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

     would  read  /usr/local/lib/poets.list  for  the list of ad-
dresses 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 address-
es.
           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.

FILES
     Except for the file /etc/sendmail.cf itself and  the  daemon
process ID
     file,   the   following   pathnames  are  all  specified  in
/etc/sendmail.cf.
     Thus, these values are only approximations.

     /etc/aliases          raw data for alias names
     /etc/aliases.db       data base of alias names
     /etc/sendmail.cf      configuration file
     /etc/sendmail.hf      help file
     /var/log/sendmail.st  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 - An Internetwork Mail Router, No. 9, SMM.

     Sendmail Installation and Operation Guide, No. 8, SMM.

HISTORY
     The sendmail command appeared in 4.2BSD.

4th    Berkeley     Distribution           August     2,     1998
6