-
Prior to V8
sendmail
,
if the list of recipients contained an address that began with
any of the prescanned switches,
sendmail
would wrongly
view that recipient as a switch during its prescan phase. For
example, mail to
joe, bill, -Cool
caused
sendmail
to try to use a file named
ool
as its configuration file.
-
Command-line switches must precede recipient addresses.
Switches that are mixed in with recipient names are treated as recipient
addresses.
-
Most versions of
sendmail
(including IDA and some
versions of BSD but excluding SunOS and V8)
syslog
(3) a warning if the frozen configuration file doesn't
exist. This can be annoying at sites that intentionally choose
not to use a frozen configuration file.
-
Prior to V8
sendmail
, unknown command-line switches
were silently ignored. Therefore sending
mail from a shell script could fail for reasons that were difficult
to find.
For example, specifying the preliminary hop count
wrongly with
-j
, instead of correctly with
-h
,
caused your presetting of the hop count to be silently ignored.
-
Some old BSD and SunOS versions of sendmail set the default sender's full
name from the environmental variable NAME even when running
as a daemon or when processing the queue. This can lead to
the superuser's full name occasionally showing up wrongly as a sender's
full name. IDA and V8
sendmail
clear the full name in
-bd
and
-q
modes but use different methods.
To prevent this problem under other versions of
sendmail
,
the
env
(1) program can be used to clean up the environment
passed to
sendmail
:
%
env - /usr/lib/sendmail -bd -q1h
-
V8
sendmail
uses
getopt
(3) to parse its command-line arguments
so that a switch and its argument may have whitespace between them
without harm:
-C configfile
But for bizarre historical reasons the
-d
switch differs. There
may never be space between the
-d
and its arguments:
-d 0.4
If there is space between them, the argument (here,
0.4
) is taken
to be a recipient name.