Review of Sendmail, 2nd ed.

Sendmail, 2nd ed.
Bryan Costales with Eric Allman
O'Reilly & Associates

Reviewed by Nick Christenson,

February 25, 1998

I remember when the first edition of the "Bat Book", as it is called, was released in the fall of 1993. It caused an immediate sensation for two reasons. First, there were considerable security problems with sendmail that had been made public at that time, nearly every vendor supplied version had a major security hole, and the brand new publically available version 8.6 was the only way to go. Second, despite being one of the most important pieces of software holding the Internet together, there was almost no information publically available on this enigmatic program. Now, over three and a half years later, the release of the second edition of the book barely caused a stir. It's worth reflecting on what the state of knowledge on sendmail was before and after this book was originally published, it's effect on the Internet community has been nothing short of astounding.

By any metric, this is a large book. The first edition was on the order of 800 pages, the second edition tips the scales at over 1000. Frankly, to go over it chapter by chapter would take more time than I care to devote to a book review, so I'll give an outline by section. The first section is titled "A Tutorial". This is a complete run though of the workings of sendmail, covering everything from its origins, to the roles the program performs, to how it interacts with other programs, to how it handles email addresses, to it's own internal rule sets. This is nearly 200 pages itself, and we've only just begun.

The second section is on building and installing the latest version, sendmail 8.8. The reader is told where to get the latest version and how to configure, build, and install it. This is a much expanded section from the first edition, and the extra space is put to good use. In addition to new features added since sendmail 8.6, there are a lot of expansions and clarifications that makes this section easier to use by someone new to building their own sendmail.

Section 3, which was formerly part of section 2, is on administration of sendmail. Sendmail is a very complicated program. There's a lot one might want to tweak and a lot that can go wrong. Even though about 150 pages are devoted just to this topic, there's a lot that has been left out. Nonetheless, this section is invaluable and its content is much improved over the first edition.

Section 4, although the majority of the book, is not so much meant to be read as it is a reference to look up the lists of command line options, how to use the debugging options, rule set testing, standard macro definitions, and email headers. There's a lot of information here, and at least skimming over it will pay significant dividends. Feel free, though, to skip it on the first read through and come back to it when the specific information becomes necessary.

The book ends with several appendices, covering the file built throughout the book to illustrate several points, mail queue status files, understanding the Berkeley DB database, and Sun's sendmail enhancements. Again, it's hard to overstate how valuable this information can be, although the sheer volume of it is overwhelming. I highly recommend reading through the section on status files, though, as having this information at hand can be very useful in a pinch.

In fact, after reading this book cover to cover, the thing I'm most amazed at is that the book is this small. There's a lot of additional information, and many opportunities for providing examples that was omitted. This is an immensely complicated piece of software, and every site wants it to do different things and puts different demands on it.

Trying to find what you're looking for in this book can be daunting at best. Despite a good table of contents and a reasonably good index, it can take a long time to find the section that answers one's question and still more time to gather enough context to determine if the answer is present. In a lot of cases, there aren't very many examples on how to use very flexible rule sets or options, which can make it hard to figure out a quick answer to one's dilemma, but what could the authors do? Expand the book even further? I think Costales and Allman did a remarkably good job given the circumstances, and I congratulate them on it. I can only imagine that if there is another release of this book it will have to be in two volumes.

It's hard for me to remember days of customizing sendmail before this book was released. For a site running sendmail, this reference is nothing short of a godsend. Having this book around is nothing short of a necessity. The first time one's mail system gets really messed up, having the book nearby will easily pay for itself in terms of saved time and reduced frustration.

Similarly, there have been a lot of very significant changes to the software since the first edition of the book has come out, and I know many of these will be very useful at many sites. Therefore, if one received any benefit from the first edition at all, upgrade to the second edition and don't give it another thought. You'll be glad you did.


If one might ever make changes to the way sendmail runs at one's site, this book is invaluable. If one has the first edition, get a copy of the second edition and upgrade to sendmail 8.8 (or whatever is the latest version) ASAP. If one runs sendmail, own the second edition of this book. If a third edition ever gets released, don't wait for me to write a review, buy it immediately. It's that simple.