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