Mail can fail for a wide variety of reasons. The way that
sendmail handles errors is determined by the
setting of the ErrorMode option (ErrorMode) in the configuration file. The
-d6.1 (a.k.a. -d6) debugging
switch causes sendmail to print the
error-handling mode that is in effect at the time it first begins to
handle failed mail:
savemail, errorMode = char, id = qid, ExitStat = errornum
e_from= output of printaddr( ) here (Section 16.3)
Here, char is either: p for
print errors; m for mail-back errors;
w for write-back errors; e for
special BERKnet processing; or q for
"don't print
anything" (all of which are described under the
ErrorMode option in ErrorMode).
The qid is the queue identifier (such as
g7PEf0Bv027517). The errornum is the number of
the error that caused the message to fail (as defined in
<sysexits.h>). And
e_from= uses printaddr( ) to
print details about the sender's address.
If the error-processing mode is m (for mail back)
and the -d6.1 debugging switch is in effect,
sendmail prints details about how the message is
being returned to the sender:
***Return To Sender: msg=reason, depth=number, e=addr, returnq=
output of printaddr( ) here (Section 16.3)
Here, reason is a quoted string of text that
explains why the mail failed. This can be an SMTP reply string. The
number is zero for normal delivery and one for
error delivery. The addr is the location in
memory of the information about the current envelope. Finally,
sendmail calls printaddr( )
to print the details of the queue of recipients
(returnq=) for the current message.