When
sendmail
is given the
-d
debugging switch, it internally performs three distinct actions. First, if the
category.level
is omitted,
sendmail
presets all categories 0-99 inclusively to a level of 1. It then sets the categories in the command line (if any) to the corresponding levels specified (or to 1 if no level is specified). Finally, it calls
setbuf
(3) to place the standard output in unbuffered mode.
Setting categories 0-99 to a level of 1 has two side effects:
Usually, certain errors are not reported because they are tolerable, but a level of 1 generally causes those otherwise missing error messages to be printed. For example, if the aliases file is missing, sendmail does not perform aliasing but is silent about it. A category 27 level of 1, on the other hand, causes sendmail to print the reason it could not open the aliases file.
Since sendmail is usually silent about what it is doing, any debugging at all causes it to print a great deal of information about what it is trying to do and what it has done.