Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
SENDMAIL(8)					      SENDMAIL(8)

       sendmail - an electronic mail transport agent

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

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

       -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

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

       -bD    Same as -bd except runs in foreground.

       -bh    Print the persistent host status database.

       -bH    Purge  expired  entries  from  the  persistent host

		   $Date: 2000/09/07 21:14:00 $ 		1

SENDMAIL(8)					      SENDMAIL(8)

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

	      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

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

       -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

       -i     Ignore  dots  alone  on  lines  by  themselves   in

		   $Date: 2000/09/07 21:14:00 $ 		2

SENDMAIL(8)					      SENDMAIL(8)

	      incoming	messages.   This should be set if you are
	      reading 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

	      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

	      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 example,
	      `-q1h30m' or `-q90m' would both set the timeout  to
	      one  hour  thirty  minutes.   If time is specified,
	      sendmail will run in the background.   This  option
	      can be used safely with -bd.

	      Limit  processed jobs to those containing substr as
	      a substring of the queue id.

	      Limit processed jobs to those containing substr  as
	      a substring of one of the recipients.

	      Limit  processed jobs to those containing substr as
	      a substring of the sender.

		   $Date: 2000/09/07 21:14:00 $ 		3

SENDMAIL(8)					      SENDMAIL(8)

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

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

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

       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:

	      Use alternate alias file.

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

		   $Date: 2000/09/07 21:14:00 $ 		4

SENDMAIL(8)					      SENDMAIL(8)

	      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.

	      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  mes­

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

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

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

	      Set connection cache timeout.

	      Set connection cache size.

	      The log level.

		   $Date: 2000/09/07 21:14:00 $ 		5

SENDMAIL(8)					      SENDMAIL(8)

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

	      Validate the right hand side of  aliases	during	a
	      newaliases(1) 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 for­
	      warding information.   You  can  consider  this  an
	      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.

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

	      Strip incoming messages to seven bits.

	      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.

	      Sets how long a  job  must  ferment  in  the  queue

		   $Date: 2000/09/07 21:14:00 $ 		6

SENDMAIL(8)					      SENDMAIL(8)

	      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

	      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:;'.

	      Sets  the maximum number of children that an incom­
	      ing SMTP daemon will allow to spawn at any time  to

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

		   $Date: 2000/09/07 21:14:00 $ 		7

SENDMAIL(8)					      SENDMAIL(8)

	      User name not recognized.

	      Catchall	 meaning  necessary  resources	were  not

	      Syntax error in address.

	      Internal software error, including bad arguments.

	      Temporary operating system error, such as  ``cannot

	      Host name not recognized.

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

       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:

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

	      raw data for alias names

		   $Date: 2000/09/07 21:14:00 $ 		8

SENDMAIL(8)					      SENDMAIL(8)

	      data base of alias names

	      configuration file

	      help file

	      collected statistics

	      temp files

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

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

       The sendmail command appeared in 4.2BSD.

		   $Date: 2000/09/07 21:14:00 $ 		9


Want to link to this manual page? Use this URL:

home | help