sendmail - send mail over the Internet
/usr/sbin/sendmail [mode] [flags] [address ...]
sendmail sends a message to one or more recipients or addresses,
routing 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
With no flags specified in the command line, 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 in the command line. It determines the
network(s) to use based on the syntax and contents of the addresses,
according to information in the sendmail configuration file. The
default configuration file is /etc/mail/sendmail.cf.
Local addresses are looked up in a file and aliased appropriately, and
sendmail also supports the use of NIS and LDAP for address lookup.
Aliasing can be prevented by preceding the address with a backslash
(\). Normally the sender is not included in any alias expansions.
For example, if `john' sends to `group', and `group' includes `john'
in the expansion, then the letter will not be delivered to `john'.
If newaliases is invoked, sendmail will rebuild the alias database.
newaliases is identical to sendmail -bi. See newaliases(1M). Mail
that is temporarily undeliverable is saved in a mail queue. If mailq
is invoked, sendmail will print the contents of the mail queue. The
mail queue files are in the directory /var/spool/mqueue. mailq is
identical to sendmail -bp. See mailq(1).
sendmail recognizes the following arguments:
mode A mode selected from those described in the "Modes"
subsection below. Only one mode can be specified. The
default is -bm.
address The address of a recipient. Several addresses can be
flags A flag selected from those described in the "Flags"
subsection below. Several flags can be specified.
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000
sendmail operates in one of the following modes. The default is -bm,
deliver mail in the usual way.
-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.
-bD Run as a daemon, but run in foreground.
-bh Print the persistent host status database.
-bH Purge the persistent host status database.
-bi Initialize the alias database for the mail aliases file.
newaliases is identical to sendmail -bi. See
-bm Deliver mail in the usual way (default).
-bp Print a listing of the mail queue. mailq is identical to
sendmail -bp. See mailq(1).
-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
-bv Verify names only - do not try to collect or deliver a
message. Verify mode is normally used for validating users
or mailing lists.
sendmail recognizes the following flags:
-Btype Set the body type, 7BIT or 8BITMIME.
-Cfile Use alternate configuration file. sendmail refuses
to run as root if an alternate configuration file is
-dX Set debugging value to X.
Hewlett-Packard Company - 2 - HP-UX Release 11i: November 2000
-Ffullname Set the full name of the sender.
-fname Sets the name of the ``from'' person (i.e., the
sender of the mail) to name. If the user of the -f
option is not a ``trusted'' user (normally root,
daemon, and network) and if the name set using the -f
option and the login name of the person actually
sending the mail are not the same, it results in an
X-Authentication-Warning in the mail header.
-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 from
-n Do not do aliasing.
-Ndsn Set delivery status notification conditions. The
valid conditions with which dsn can be set are as
never For no notifications.
failure If delivery failed.
delay If delivery is delayed.
success When message is successfully
Set option option to a specified value. Options are
described below in ""Processing Options."
-ox=value Set option x to the specified value. Options are
described below in "Processing Options."
-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
-qtime 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, h being hours, d being
Hewlett-Packard Company - 3 - HP-UX Release 11i: November 2000
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
background. This option can be used safely with bd.
-qIsubstr Limit processed jobs to those containing substr as a
substring of the queue id.
-qRsubstr Limit processed jobs to those containing substr as a
substring of one of the recipients.
-qSsubstr Limit processed jobs to those containing substr as a
substring of the sender.
-rname An alternate and obsolete form of the f flag.
-Rreturn Set the amount of the message to be returned if the
message bounces. The values that can be set for
return are as follows:
full To return the entire message
hdrs To return only the headers.
-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 flag should always be
set when sendmail is called from a user agent such as
mail or elm. This flag should never be set when
called from a network delivery agent such as rmail.
-v Go into verbose mode. Alias expansions will be
-Venvid Set the original envelope identification. This is
propagated across SMTP to servers that support DSN's
(delivery status notification) and is returned in
DSN-compliant error messages.
-Xlogfile 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.
There are also a number of processing options that may be set.
Hewlett-Packard Company - 4 - HP-UX Release 11i: November 2000
Normally these will only be used by a system administrator. Options
may be set either on the command line using the -o flag or in the
configuration file, /etc/mail/sendmail.cf. The options are:
Use alternate alias file.
On mailers that are considered ``expensive'' to
connect to, do not initiate immediate connection.
This requires queuing.
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 interactive (synchronous) delivery.
b background (asynchronous) delivery.
q queue only; expect the messages to be delivered
the next time that the queue is run.
d deferred; the same as q except that database
lookups (DNS and NIS lookups) are avoided.
ErrorMode=x Set error processing to mode x. Valid modes are
m mail back the error message.
w ``write'' back the error message (or mail it
back if the sender is not logged in).
p print the errors on the terminal (default).
q throw away error messages (only exit status is
e 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.
Hewlett-Packard Company - 5 - HP-UX Release 11i: November 2000
Save UNIX -style From lines at the front of messages.
The maximum number of times a message is allowed to
``hop'' before it is considered in a loop.
IgnoreDots Do not take dots on a line by themselves as a message
Send error messages in MIME format.
Set connection cache timeout.
Set connection cache size.
Loglevel=n The log level.
MeToo Send to ``me'' (the sender) also if the sender is in
an alias expansion.
Validate the right hand side of aliases during a
newaliases command. See newaliases(1M).
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
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, the failed messages will be returned to the
sender. The default is three days.
If set, a user database is consulted to get
Hewlett-Packard Company - 6 - HP-UX Release 11i: November 2000
forwarding 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.
ForkEachJob 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. Mode can be set to the following values
m Convert to seven-bit MIME format.
p Pass it as eight bits.
s Bounce the mail.
Sets how long a job must ferment in the queue in
between attempts to send it.
Sets the default character set used to label 8-bit
data that is not otherwise labeled.
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 headers
(To:, Cc: or Bcc:) in message to action. The
different values that can be set for action are
none Leaves the message unchanged.
add-to Adds a To: header with the envelope
Adds an Apparently-To: header with the
add-bcc Adds an empty Bcc:
Hewlett-Packard Company - 7 - HP-UX Release 11i: November 2000
Adds a header reading To:undisclosed-
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.
If set, causes sendmail to rebuild the alias database
when needed. Setting this option may cause excessive
overhead and is not recommended.
If set, this option is to turn off the inclusion of
all the interface names in $=w on startup. In
particular, if you have lots of virtual interfaces,
this option will speed up startup. However, unless
you make other arrangements, mail sent to those
addresses will be bounced. This is useful for
sending mail to hosts which have dynamically assigned
This options allows you to bypass some of sendmail
file security checks at the expense of system
security. This should only be used if you are
absolutely sure you know the consequences. The
available options for DontBlameSendmail are as
Hewlett-Packard Company - 8 - HP-UX Release 11i: November 2000
This can be set to true to prevent program deliveries
from picking up extra group privileges.
This option limits the number of recipients,
no_of_recipients that will be accepted in a single
SMTP transaction. After this number is reached,
sendmail starts returning "452 Too many recipients"
to all RCPT commands. This can be used to limit the
number of recipients per envelope (in particular, to
discourage use of the server for spamming). Note: a
better approach is to restrict relaying entirely.
This option allows to specify a maximum length of the
sum of all headers, max_header_length . This can be
used to prevent a Denial-of-Service(DoS) attack.
If set, causes sendmail to do a setuid to that user
early in processing to avoid potential security
problems. However, this means that /var/spool/mqueue
directory owned by the user and all .forward and
:include: files must be readable by that user, and
all files to be written must be writable by that
user, and all programs will be executed by that user.
It is also incompatible with the SafeFileEnvironment
option. In other words, it may not actually add much
to security. However, it should be useful on
firewalls and other places where users do not have
accounts and the aliases file is well constrained.
Hewlett-Packard Company - 9 - HP-UX Release 11i: November 2000
If set, files named as delivery targets must be
regular files in addition to the regular checks.
Also, if the option is non-null, then it is used as
the name of a directory that is used as a chroot(2)
environment for the delivery; the file names listed
in an alias or forward should include the name of
This option can take two values (host or priority and
time ). Based on that, the queue will be sorted.
host This makes better use of the connection
cache, but may delay more ``interactive''
messages behind large backlogs under some
circumstances. This is a good option if
you have high speed links or do not do
lots of ``batch'' messages, but less good
if you are using something like PPP on a
time This option causes the queue to be sorted
strictly on the time of submission. This
may cause a bad behaviour over slow lines
and on nodes with heavy traffic. Also,
this does not guarantee that jobs will be
delivered in submission order unless you
also set DeliveryMode=queue. In general,
it should probably only be used on the
command line, and only in conjunction
The available values for flag are
public Allow open access.
needmailhelo Insist on HELO (or EHLO) before
the MAIL command.
needexpnhelo Insist on HELO (or EHLO) before
the EXPN command.
noexpn Disallow EXPN command totally.
needvrfyhelo Insist on HELO (or EHLO) before
the VRFY command.
novrfy Disallow VRFY command totally.
Hewlett-Packard Company - 10 - HP-UX Release 11i: November 2000
restrictmailq Restrict mailq command.
restrictqrun Restrict -q command-line flag.
noreceipts Don't return success DSN's.
goaway Disallow essentially all SMTP
authwarnings Put X-Authentication-Warning
headers in messages if HELO was
not used inside SMTP transaction.
noverb flag to disable the SMTP VERB
noetrn flag to disable the SMTP ETRN
You can set up system aliases and user forwarding. The alias and
.forward files are described in the aliases(5) manpage.
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
EX_SYNTAX Syntax error in address.
EX_SOFTWARE Internal software error, including bad
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
The sendmail command was developed by the University of California,
Berkeley, and originally appeared in BSD 4.2. This version of HP-UX
sendmail originally came from sendmail 8.9.3.
Hewlett-Packard Company - 11 - HP-UX Release 11i: November 2000
$HOME/.forward User's mail forwarding file
$HOME/dead.letter User's failed message file
Except for the /etc/mail/sendmail.cf file and the daemon process ID
file, the below mentioned default pathnames are all specified in the
configuration file, /etc/mail/sendmail.cf. These default file names
can be overridden in the configuration file.
/etc/mail/aliases raw data for alias names
/etc/mail/aliases.db data base of alias names
/etc/mail/sendmail.cf configuration file
/usr/share/lib/sendmail.hf help file
/etc/mail/sendmail.st collected statistics
/var/spool/mqueue/* mail queue files
/etc/mail/sendmail.pid The process id of the daemon
/etc/mail/sendmail.cw The list of all hostnames that are
recognized as local, which causes
sendmail to accept mail for these
hosts and attempt local delivery
/etc/nsswitch.conf configuration file for the name-
aliases(5), convert_awk(1M), elm(1), expand_alias(1), identd(1M),
idlookup(1), killsm(1M), mail(1), mailq(1), mailstats(1), mailx(1),
mtail(1M), newaliases(1M), praliases(1), smrsh(1M).
Hewlett-Packard Company - 12 - HP-UX Release 11i: November 2000