The Book of IMAP: Building a Mail Server with Courier and Cyrus, by Peer Heinlein and Peer Hartleben, is a quality resource for any serious mail administrator. The approach taken is direct, but at the same time it’s very expansive, setting this book apart from most others I have read. It’s packed full of rich examples which are used to solidify the topic being covered. At several places the authors reach out to explain when the subject is addressing ambiguous or otherwise undocumented information which is to great advantage to the reader and worthy of recognition.
The technology covered mainly pertains to the Courier and Cyrus daemons, hence the title, but the book also provides many general tips along the way to squeeze out every ounce of performance possible including file system particulars and kernel tweaks. Various file systems are discussed and the advantages provided by them are weighed out. Common bottlenecks are identified which can streamline the performance yielding more efficiency. Each server and the constituent parts are broken down and thoroughly described as well as the respective tools distributed. This makes for a great comparative analysis of each server with specific emphasis given to the their individual distinctive qualities.
The range covered is broad and sweeping including basic topics like web-mail clients and basic protocol structure, up to more advanced subjects such as load balancing, proxy configurations, and clustered configurations. The protocols POP3 and IMAP are articulated in the appendix and also used frequently throughout the text affording a transparent depiction of the underlying mechanics involved. The book discusses at great length additional setups which extend the native functionality by use of NFS and relational databases including MySQL and PostgreSQL especially as related to authentication. Security is consistently addressed and each authentication method is explained adequately. Utilizing encrypted tunnels is covered sufficiently all the way down to the generation of the SSL certificate itself.
The focal point is building a server from the ground up so each configuration file directive is explored exhaustively. The structure of each server is comprehensively covered as well as associated modules that extend its capabilities. Invaluable information is dispensed when this book explains situations and issues that can arise when migrating an existing server in a production setup to a new server. General administrative tips are expounded upon including quotas, virtual domains, and mail filtering techniques by use of Sieve. All angles are addressed equally well.
One drawback is the frequent examples given use a SuSE Linux architecture which the authors seem to be most familiar with. While there is some coverage for Debian and Red Hat, more would have been better, along with other UNIX flavors. Some topics such as subscriptions and a few other implementation details tended to be a bit drawn out and could have been made to be more concise in my opinion. There were a few syntax and typographical flaws, but very minor ones.
One aspect I enjoyed most about this book is how often real world scenarios are put forth. The overall content is great actionable information mostly gained by first-hand experience. I will definitely be seeking out more titles from No Starch Press to add to my bookshelf in the near future.
(Reviewer Ryan Masters is a system administrator and web developer.)