The source for the sendmail program comes with two documents by Eric Allman that are required reading. Sendmail - An Internetwork Mail Router provides an overview of sendmail, including its underlying theory. Sendmail Installation and Operations Guide provides installation instructions and a succinct description of the configuration file. Many vendors also provide online manuals which may reveal vendor-specific customizations not documented in this book. Also, if you have the source, see the files RELEASE_NOTES, src/READ_ME, and cf/README.
A complete understanding of sendmail is not possible without at least some exposure to Request for Comments (RFC) issued by the Internet Engineering Task Force (IETF) at the Network Information Center (NIC). These numbered documents define (among other things) the protocols and operational requirements of the Internet. RFCs are available via anonymous FTP. See the Bibliography for information about how to retrieve individual RFCs.
When sendmail transports mail from one machine to another over a TCP/IP network, it does so using a protocol called the Simple Mail Transfer Protocol, or SMTP for short. SMTP is documented in RFC821.
The division of mail messages into a header and a body, as well as the syntax and order of header lines are all defined in RFC822, titled Standard for the Format of ARPA Internet Text Messages. It also describes the syntax of addresses.
RFC819 is entitled Domain Naming Convention for Internet User Applications and describes the hierarchical form of host naming used today. This document defines the form a hostname must take.
RFC976 is entitled UUCP Mail Interchange Format Standard and describes the format of mail messages transported between machines using UUCP.
RFC1123 is an extension to RFC821 and RFC822. It makes several amendments to the original documents and cleans up some previously ambiguous information.
RFC1521 introduces and describes the standards for Multipurpose Internet Mail Extensions (MIME). MIME provides ways to embed non-text data (such as images, sounds, and movies) inside ordinary email messages.
RFC1651 describes a general extension mechanism for SMTP, called ESMTP. RFC1652 describes an extension for transport of 8-bit data, called the 8BITMIME extension. RFC1653 describes an extension for message size declaration (see Section 34.8.22, EightBitMode (8)).
RFC1891, SMTP Service Extension for Delivery Status Notifications
(DSN), describes the ESMTP RCPT command's NOTIFY, RET,
and ORCPT extensions. It also describes the ESMTP MAIL
command's ENVID extension.
RFC1892, The Multipart/Report Content Type for the Reporting of
Mail System Administrative Messages, describes the Content-Type:
header requirements for DSN. It also describes the order and
requirements for multipart/report MIME parts of a mail status
report's mail message.
RFC1893, Enhanced Mail System Status Codes,
describes the meaning of the DSN status number
fields.
RFC1894, An Extensible Message Format for Delivery Status Notifications,
describes the machine readable part's header-style keywords, for the
machine readable part of the DSN return message described in RFC1892.
Two topics that are only touched upon in this book are The Domain Name System (DNS) and TCP/IP network communications. At a typical site, a significant number of problems with mail turn out to be problems with one of these other areas, rather than with sendmail.
The Domain Name System is well documented in the book DNS and BIND, Second Edition by Paul Albitz and Cricket Liu (O'Reilly & Associates, Inc., 1997).
The protocols used to communicate over the Internet are well documented in the book TCP/IP Network Administration by Craig Hunt (O'Reilly & Associates, Inc., 1992).
Finally, many mail problems can only be solved by the system administrator. The sendmail program runs as root and can only be installed and managed by root. The art of functioning effectively as root is superbly covered in the UNIX System Administration Handbook by Evi Nemeth, Garth Snyder, Scott Seebass, and Trent R. Hein (Prentice Hall, 2nd edition 1995).