Interpreting the Output

Some debugging output references C language structures that are internal to sendmail. For those it will help if you have access to sendmail source. One subroutine, called printaddr(), is used to dump complete details about all the recipients for a given mail message. This subroutine is used by many categories of debugging output, but rather than describe it repeatedly, we describe it once here and reference this description as needed.

The Output Produced by printaddr()

The sendmail program's internal printaddr() subroutine prints details about addresses. The sendmail program views an address as more than just an expression like wc@bcx.com. Internally, it represents every address with a C language structure. The printaddr() routine prints the values stored in most of the items of that structure. Its output looks like this:

ra=addr: mailer mnum (mname), host hname user `uname', ruser `rname' next=link, alias aname, uid uid, gid gid flags=fhex<names here> owner=owner, home="home", fullname="fname" orcpt="oparam", statmta=mta, status=status rstatus="rstatus" specificity=spec, statdate=statdate

First, sendmail prints the address in memory, ra, of the C language struct that contains the information necessary to deliver a mail message. It then prints the information in that structure: