*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> sendmail (8)              



NAME    [Toc]    [Back]

     sendmail - an electronic mail transport agent

SYNOPSIS    [Toc]    [Back]

     sendmail [flags] [address ...] [-v]

DESCRIPTION    [Toc]    [Back]

     Sendmail sends a message to one or more recipients,  routing
the message
     over  whatever networks are necessary.  Sendmail does internetwork forwarding
 as necessary to deliver the message to  the  correct

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

     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  appropriately.
     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    [Toc]    [Back]

     -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 indicates an initial
 mail submission.

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

     -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
the background
  listening on socket 25 for incoming SMTP
                 By default, Sendmail will also listen on  socket
587 for RFC
                 2476  message  submission.  This is normally run
from /etc/rc.

     -bD         Same as -bd except runs in foreground.

     -bh         Print the persistent host status database.

     -bH         Purge expired entries from the  persistent  host

     -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 RFC 821 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

     -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
gives up any enhanced
  (set-user-ID or set-group-ID) privileges
if an alternate
 configuration file is specified.

     -D logfile  Send debugging output to the indicated log  file
instead of

                 Set  the  debugging  flag for category to level.
The category
                 is either an integer or a  name  specifying  the
topic; the
                 level  is an integer specifying the level of debugging output
                 desired.  Higher levels generally mean more output.  More
                 than  one  flag  may  be specified by separating
flags with commas.
  A list of numeric debugging categories can
be found in
                 the  TRACEFLAGS file in the sendmail source distribution.
                 The option -d0.1 prints the version of  sendmail
and the options
 it was compiled with.
                 Most  other categories are only useful with, and
                 in, sendmail 's source code.

     -Ffullname  Set the full name of the sender.

     -fname      Sets the name of the ``from'' person (i.e.,  the
                 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 delivery status notifications and  may  also
appear in a
                 Return-Path:  header.  -f should only be used by
                 users (normally root, daemon, and network) 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.

     -hN         Set the hop count to N.  The hop count is incremented 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  incoming messages.
   This  should  be set if you are reading
data from a

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

     -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
                 `delay' to be notified if delivery  is  delayed,
and `success'
                 to  be notified when the message is successfully

     -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
                 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 intervals.  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 periodically forking
 a child to process the queue, sendmail forks
a single
                 persistent  child for each queue that alternates
between processing
 the queue and sleeping.  The sleep  time
is given as
                 the argument; 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.

                 Limit processed jobs to those containing  substr
as a substring
  of  the queue ID or not when ! is specified.

                 Limit processed jobs to  quarantined  jobs  containing substr as
                 a substring of the quarantine reason or not when
! is specified.

                 Limit processed jobs to those containing  substr
as a substring
 of one of the recipients or not when ! is

                 Limit processed jobs to those containing  substr
as a substring
 of the sender or not when ! is specified.

     -Q [reason]
                 Quarantine a normal queue items with  the  given
reason or unquarantine
  quarantined queue items if no reason
is given.
                 This should only be used with some sort of  item
matching using
 as described above.

     -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

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

     -v           Go into verbose mode.  Alias expansions will be

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

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

   Options    [Toc]    [Back]
     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
     consult the Sendmail Installation and Operation Guide.   The
options are:

                 Use alternate alias file.

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

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

                 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.

                 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.

                 Save  UNIX-style From lines at the front of messages.

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

                 Send error messages in MIME format.  If not set,
the DSN (Delivery
  Status  Notification)  SMTP extension is

                 Set connection cache timeout.

                 Set connection cache size.

     LogLevel=n  The log level.

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

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

                 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.

                 Select the directory in which to queue messages.

                 Save statistics in the named file.

                 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.

                 If set, a user database is consulted to get forwarding information.
  You can consider this an adjunct to the
                 mechanism,  except that the database is intended
to be distributed;
 aliases  are  local  to  a  particular
host.  This may
                 not  be available if your sendmail does not have
                 option compiled in.

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

                 Strip incoming messages to seven bits.

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

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

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

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

                 Set the behaviour when there  are  no  recipient
headers (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-apparently-to adds an Apparently-To: header
                 with the envelope recipients,  add-bcc  adds  an
empty Bcc:
                 header,  and  add-to-undisclosed  adds  a header
reading `To:

                 Sets the maximum number of children that an  incoming SMTP
                 daemon will allow to spawn at any time to 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  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
     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

           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
           EX_SYNTAX       Syntax error in address.
           EX_SOFTWARE     Internal software error, including bad
           EX_OSERR        Temporary operating system error, such
as ``cannot
           EX_NOHOST       Host name not recognized.
           EX_TEMPFAIL     Message could not be sent immediately,
but was

     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, sendmail will print the persistent host
     database.  If invoked as purgestat, sendmail will purge  expired entries
     from the persistent host status database.

NOTES    [Toc]    [Back]

     sendmail  often gets blamed for many problems that are actually the result
     of other problems, such as overly permissive modes on directories.  For
     this reason, sendmail checks the modes on system directories
and files to
     determine 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,


FILES    [Toc]    [Back]

     Except for the file /etc/mail/sendmail.cf itself the following pathnames
     are all specified  in  /etc/mail/sendmail.cf.   Thus,  these
values are only

     /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/sendmail.hf  help file
     /var/log/sendmail.st   collected statistics
     /var/spool/mqueue/*    temp files

SEE ALSO    [Toc]    [Back]

     mail(1), syslog(3), aliases(5), mailer.conf(5), mailaddr(7),
     mail.local(8), mailq(8), newaliases(8), rc(8), rmail(8)

     DARPA Internet Request For Comments RFC 819,  RFC  821,  RFC

     "Sendmail Installation and Operation Guide",

     "Sendmail - An Internetwork Mail Router",

     "Filtering Mail with Sendmail",


HISTORY    [Toc]    [Back]

     The sendmail command appeared in 4.2BSD.

OpenBSD      3.6                         December     1,     2003
[ Back ]
 Similar pages
Name OS Title
elm HP-UX process electronic mail through a screen-oriented interface
exim Linux Mail Transfer Agent
pathalias HP-UX electronic address router
readmail HP-UX read mail from a mail folder or incoming mailbox
mail HP-UX send mail to users or read mail
mail_att IRIX send mail to users or read mail
rmail HP-UX send mail to users or read mail
ssh-agent FreeBSD authentication agent
ssh-agent OpenBSD authentication agent
bsnmpagent FreeBSD SNMP agent library
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service