If the option letter
is one that is unknown to
sendmail
, it
silently
accepts
the line but doesn't use it. For example, entering
O1
when you
really mean
OI
causes the unknown option
1
to be defined
and the intended option
I
to remain undefined. Because no error
message is printed, this kind of mistake is difficult to find.
Note that, when you are in doubt, a debugging level of
-d37.1
can be used
to produce warnings (see
Section 37.5.126, -d37.1
).

Under versions of
sendmail
prior to V8.7,
accidentally placing a space character between the
O
and the option
letter wrongly causes
sendmail
to silently
accept the space character as the option name. For example, the space in
"
O A/etc/aliases
" gives to the option "space" the argument
A/etc/aliases
.
Beginning with V8.7, a space option causes a multicharacter option name
to be recognized (see
Section 34.2.2, "V8.7 Configuration File Declarations"
).

Options are parsed from the top of the
sendmail.cf
file down.
Later declarations of an option supersede earlier declarations.
For example, if you try to change the location of the queue directory
by placing the line
OQ/mail/spool/mqueue
at the top of your
sendmail.cf
file, that change is masked (ignored) by the existence of
OQ/var/spool/mqueue
later in the file.

Command-line options always supersede the
sendmail.cf
file options,
because the command line is parsed after the
sendmail.cf
file
is parsed.
One way to change the location of the
aliases
file (perhaps
for testing) is with a command-line argument such as
-oA/tmp/aliases
.
For security reasons, however, not all command-line options are
available to the ordinary user. (See
Table 34.2
in
Section 34.1.4, "Options that Are Safe"
for a list of those that are available.)