Software Consulting Tornado Icon Software Consulting Tornado Icon

Chapter 1: Basic Qmail

Previous: Preface Book Review: Qmail Quickstarter Next: Chapter 2

Expanding on introductory material in the Preface, Chapter 1 starts by outlining qmail's modular architecture, then describes how to compile, install, and configure qmail to achieve a "minimal", or basic, configuration.

Starting on Page 15, under "Administrative Conveniences", the author introduces common ways qmail and its operating environment are modified to provide a more full-featured system. The writeup under "Patches" does a good job tackling a difficult issue for any source code that is widely used for disparate purposes, especially a barely-moving target such as qmail. (That writeup is expanded upon somewhat in Chapter 7, Page 108, under "Patch vs. Wrapper".)

(I was surprised to see no mention of the netqmail distribution, or patch set, which has been popular among qmail adherents for years.)

A section titled "The Overall Structure of Qmail", starting on Page 21, further expands on the architectural design of qmail, underscoring the security implications, as well as flexibility, of that design. This section is an example of material that even Windows-only sysadmins and network security analysts might find particularly enlightening.

Under "ucspi-tcp and daemontools" on Page 16, there's no mention of how to obtain and install third-party man pages for these products, which are not provided in the source tarballs. (Documentation is maintained by the author on his web site, but that doesn't work when connectivity is down.)

Under "Logging", on Page 20, I spotted a bit of trouble starting at the top of the page, where the author introduces what a log/run file for the qmail-send service directory might look like: the final subdirectory name used is qmail-send/, whereas, elsewhere in the book, send/ is used, which makes more sense, given that the parent directory is named qmail/.

Indeed, the subdirectory name suggested by the author for containing qmail-smtpd log files is smtpd/, not qmail-smtpd/ as one might have expected from the earlier example.

(In a "Life with Qmail" installation, qmail-send's logs are typically put in the parent qmail/ directory. Over the years, sysadmins and "toaster" developers have found it more elegant to put them in a subdirectory, as is done with qmail-smtpd's log files, as well as those for other similar services, such as qmail-pop3d.)

Commands to create and set ownership and permissions on the log directories seem to be missing, e.g.:

mkdir -p /var/log/qmail/qmail-send
mkdir -p /var/log/qmail/smtpd
chown -R qmaill /var/log/qmail

Page 23 provides a sample use of qmail-remote that starts with the echo command where I would expect cat (or similar), because the string "message", piped into qmail-remote, is not by itself an RFC2822-conforming SMTP message. (The sample command would work nevertheless, due to the fact that qmail-remote does not, and need not, require the messages it delivers to be fully conformant. The SMTP server on the receiving end might object to the incoming message, however.)

Nits: Under "Summary" on Page 25, the last line at the end of the first paragraph seems redundant, given how the second (and final) paragraph begins.


Previous: Preface Book Review: Qmail Quickstarter Next: Chapter 2

More Reviews

Copyright (C) 2007 James Craig Burley, Software Craftsperson
Last modified on 2007-07-10.