Interpret 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 sendmail program’s internal printaddr( ) subroutine prints details about addresses. The sendmail program views an address as more than just an expression such as gw@wash.dc.gov. 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:
subroutine: ra= addr: mailermnum
(mname
), hosthname
user `uname
', ruser `rname
' state=state
, next=link
, aliasaname
, uid user-id, gid group-id flags=fhex
<names here> owner=owner
, home="home
", fullname="fname
" orcpt="oparam
", statmta=mta
, status=status
finalrcpt="finalrcpt
" rstatus="rstatus
" 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:
- addr
The mail address as text—e.g., you@uofa.edu.
- mnum
Number of the delivery agent to be used (an index into the array of delivery agents).
- mname
Symbolic name of that ...
Get Sendmail, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.