|
Appendix E A sendmail Reference
|
|
The syntax of the
sendmail
command is deceptively simple:
sendmail
[
arguments
] [
address
...]
The syntax is deceptive because it hides the fact that there are a very
large number of command-line arguments.
Table 13.5
lists all of them.
Table E.2: sendmail Command-Line Arguments
Argument |
Function |
-U
|
Indicate initial user submission. |
-V
envid
|
Set the envelope ID to
envid
. |
-N
dsn
|
Set delivery status notification to
dsn
. |
-M
xvalue
|
Set macro
x
to
value
. |
-R
return
|
Set the part of the message returned with an error. |
-B
type
|
Set the MIME body type. |
-p
protocol
|
Set the receiving protocol and hostname. |
-X
logfile
|
Log all traffic in the indicated log file. |
-f
addr
|
Sender's machine address is
addr
. |
-r
addr
|
Obsolete form of
-f
. |
-h
cnt
|
Drop mail if forwarded
cnt
times. |
-F
name
|
Set the full name of this user to
name
. |
-n
|
Don't do aliasing or forwarding. |
-t
|
Send to everyone listed in To:, Cc:, and Bcc:. |
-bm
|
Deliver mail (default). |
-ba
|
Run in arpanet mode. |
-bs
|
Speak SMTP on input side. |
-bd
|
Run as a daemon. |
-bt
|
Run in test mode. |
-bv
|
Verify addresses; don't collect or deliver mail. |
-bi
|
Initialize the alias database. |
-bp
|
Print the mail queue. |
-q
[
time
] |
Process queued mail. Repeat at interval
time
. |
-C
file
|
Use
file
as the configuration file. |
-d
level
|
Set debugging level. |
-o
xvalue
|
Set option
x
to the specified
value
. |
-i
|
Ignore dots in incoming messages. |
-m
|
Send to me, too. |
-v
|
Run in verbose mode. |
-s
addr
|
Alternate form of
-f
. |
Several of the command-line arguments are covered in
Chapter 10
.
These are:
-
-f
-
Allows trusted users to override the sender address on outgoing
messages. For security reasons, it is disabled on some systems.
Obsolete alternative forms of this argument are
-r
and
-s
.
-
-t
-
Reads the To:, Cc: and Bcc: headers from standard input. Used to send
a file that contains these headers or when typing in a test message,
as in
Chapter 10
.
-
-bd
-
Runs sendmail in background mode, causing it to collect incoming
mail. Use this argument on the
sendmail
command in the boot
script.
-
-bt
-
Used to test sendmail address rewrite rules.
-
-bi
-
Initializes the aliases database. This is the same as the
newaliases
command covered in
Chapter 10
.
-
-q
-
Sets the time interval at which the mail queue is processed. Use on the
sendmail
command in the boot script.
-
-C
-
Loads an alternative sendmail configuration file. Use this to test
the configuration before moving the new file to
sendmail.cf
.
-
-v
-
Permits you to view the exchange of SMTP commands in real time.
-
-bv
-
Verifies address processing without actually sending mail.
Other than the two arguments (
-bd
and
-q
) used on the
sendmail
command line in the boot script to process incoming mail,
the most common use for
sendmail
arguments is debugging. From the
list above,
-bt
,
-C
,
-bv
,
-v
, and
-t
are all used in
Chapter 10
in debugging examples. Other debugging
arguments are:
-
-bp
-
Prints a list of mail that is queued for delivery. It is the same as
the
mailq
command. Mail is queued when it cannot be delivered
immediately because the remote host is temporarily unable to accept
the mail. sendmail periodically processes the queue, based on the
time interval you set with the
-q
argument, and attempts to
deliver the mail in the queue. The queue can grow large enough to
impede sendmail's performance if an important remote host is down.
mailq
shows how many items are queued as well as the source and
destination of each piece of mail.
When the queue requires immediate processing, invoke
sendmail
using
-q
with no time interval. This processes the entire queue. Some
variations of the
-q
argument allow you to selectively process
the queue. Use
-qI
queue-id
to process only those queue entries
with the specified queue identifier;
-qR
recipient
to process
only items being sent to the specified recipient; or
-qS
sender
to process only mail sent from the specified sender. The
mailq
command displays the queue identifier, sender address, and recipient
address for every item in the queue.
-
-o
-
Sets a sendmail option for this one instantiation of sendmail, e.g.,
-oA/tmp/test-aliases
. Use this argument to test alternative
option settings without editing the
sendmail.cf
file.
-o
uses the old sendmail option syntax. An alternate form of the argument
is
-O
, which uses the new option syntax, e.g.,
-OAilasFile=/tmp/test-aliases
. See
sendmail Options
later
in this Appendix.
-
-d
-
Sets the level of detail displayed when debugging sendmail code.
Can be used to debug rewrite rules, e.g.,
sendmail -bt -d21.12
.
Otherwise
-d
is only useful for sendmail source code
debugging.
-
-h
-
Sets the counter used to determine if mail is looping. By default,
it is set to 30, which is a good operational value. When you are
debugging a mail loop problem, set the hop count lower, e.g., -h10,
to reduce the number of times a piece of mail is handled by the system.
Otherwise, leave this value alone.
The remaining arguments are rarely used on the command line:
-
-B
-
Indicates the MIME message body type. Acceptable values are either 7BIT
or 8BITMIME.
-
-N
-
Requests that the sender be notified of the delivery status of the mail.
The default value is FAILURE, DELAY, which notifies the sender when mail
delivery fails or is delayed in the queue. Other acceptable values are
NEVER, to request that no status notifications be returned to the sender,
and SUCCESS, to request notification of successful mail delivery.
-
-M
-
Sets a macro value for this instantiation of sendmail.
For example,
-MMnuts.com
sets macro M to
nuts.com
.
-
-p
-
Sets the sending protocol and the sending host. This is equivalent to
setting the internal
s
and
r
macros. If a system has more than one
external mail protocol, for example, UUCP and SMTP, this
forces the system to use a specific protocol for this piece of mail.
-
-R
-
Sets the amount of information returned to the sender when a message
cannot be delivered. This can be either HDRS for headers-only or FULL
for the headers and the full message body.
-
-U
-
Indicates that this mail comes directly from a user interface and was
not forwarded from a remote mail handler. At this writing this argument
is not yet used, but in the future user agent programs may include it
when they pass mail to sendmail.
-
-V
-
Inserts an "envelop id" into the outbound message that is returned if
message delivery fails.
-
-X
-
Logs all mail messages to the specified log file. This rapidly produces
an enormous log file.
-
-n
-
Disables the processing of aliases and mail forwarding.
-
-bm
-
Tells sendmail to deliver mail, which it will do anyway.
-
-ba
-
Reads the header From: line to find the sender. Uses three digit reply
codes, and ends error lines with <CRLF>. This is an obsolete argument.
-
-bs
-
Tells sendmail to use SMTP for incoming mail. When appropriate,
sendmail will do this even without the
-bs
argument.
-
-i
-
Normally, an SMTP message terminates when a line containing only a dot
is encountered. This argument tells sendmail to ignore the dots
in incoming messages.
-
-m
-
Sends a copy of the mail to the person sending the mail. Normally this
is done with a CC: or BCC: header in the message, not with the
-m
argument.
This is a complete list of sendmail command-line arguments at this
writing. Some of these arguments were introduced in sendmail 8.
Others are considered obsolete in sendmail V8. Check the manpage for
your system to find out exactly what arguments are available on your
system.
When the
sendmail
command is executed, it reads its configuration
from the
sendmail.cf
file. A basic
sendmail.cf
file can
be built from
m4
macros that come with the sendmail source code.
Chapter 10
provides examples of how this is done. The next section
provides a complete list of the
m4
macros that come with the
sendmail distribution.
|