David L. Nicol
Fri, 17 Aug 2001 15:51:49 -0700
_Exim, the MTA_ would be an appropriate book for someone who does not know anything about e-mail and suddenly needs to manage a server, and EXIM would be a good e-mail server for this person to use. EXIM is the default MTA in Debian and other Unix distributions too. Exim, the MTA, has been written entirely, except for contributed patches, by Philip Hazel, who continues to maintain it. His book http://www.amazon.com/exec/obidos/ASIN/0596000987/tipjartransactioA is a history-of and tutorial document meant to accompany the comprehensive and accurate reference materials that come with the source code releases of the software. Exim is a comprehensive, modern MTA, with all the features that made sense to Mr. Hazel to include in it, and the expandability of a mature open-source project. The second chapter, "how internet mail works," is a very nice introduction to SMTP, RFCs, DNS, and other general technical background, without introducing detail irrelevant to the task of operating a mail server. The third chapter, Exim Overview, which introduces us to Routing, Directing, and the exim queue, is structured as a list of the general problems facing any MTA developer and how Exim handles each one. Chapter 4, Exim Operations Overview, provides more details, suggests we run the eximon GUI to see everything as it happens, decribes the configuration files, describes the configuration options, mentions the motivations for choosing each, includes nit-picky footnotes such as an aside about MailDir format locking the delivery directory being the responsbility of the file system, which is certainly up to the task, and finishes with a suggested design for a very high volume EXIM installation suitable for the complete in- and out-bound e-mail needs of a medium-sized island nation, for instance. Chapter 5, Extending The Delivery Configuration, is concerned with having multiple domains handled by your exim box, virtual domains, mailing lists, piping to external programs, complex real-world delivery scenarios, virus scanning, and, if you are a lawyer or "marketroid" who wants to add disclaimers or advertisements to every message that goes through your server, Hazel reluctantly tells you how. Chapters 6, 7, 8, 9 : various details such as message size, retry policy, -- store-and-forward is not the ideal way to deliver mail to a machine with a dynamic IP address (store-and-fetch is) but Exim provides features that make it possible -- are discussed in these chapters. All the mailbox formats I had ever heard of, and some new ones, such as writing to BSMTP files for later processing by something else, are mentioned. Exim supports quota warnings when user mailboxes are getting nearly full. An interval for autoreplies can be set to prevent sending vacation notices in response to every incoming e-mail, by only sending one to each unique recipient per interval. Chapter 10: message filtering Exim provides an extensive filtering language for use by the users receiving the mail, so they can learn it instead of installing something like procmail or multinet "Deliver" or using the message rules features of their MUA. It is described. Chapter 11: Shared Data and Exim Processes an introduction to Exim internals. Chapter 12: Delivery errors and retrying discusses the exim retry rules, and the settable fallback times, and issues with infrequently accessed hosts and intermittently up hosts and dynamic hosts. Chapter 13: Message Reception and Policy Controls Spam, like rain, is a fact of life, and Exim attempts to be your umbrella. Configuration options are available to do EHLO verification, even though this practice is contrary to the relevant RFC, to use RBL services, to do sender verifiy callbacks, to do a wide range of sender verify features, to allow relaying under a wide variety of conditions, including, for example, only over secure encrypted links. Chapter 14: Rewriting addresses These are simpler and more powerful than sendmail's. Taking the existence of "rewriting" within the table of contents of this book to indicate anything negative would be an error. Chapter 15: Authentication, Encryption and other SMTP processing Recent years have seen a variety of methods for securing mail servers while still providing access to the proper in-crowd. Exim supports them all, and any others you can devise. Chapter 16: File and database lookups Data may be stored in files or databases or remote databases. Exim supports SQL, NIS, NIS+, LDAP, et cetera, and robustly handles the possible problems with each. Data is cached to avoid overworking the servers. PAM services, curiously, are dealt with in chapter 17. Chapter 17: String Expansion Exim configuration files have their own expansion language, which is very powerful, and can be extended so far as to embed a Perl interpreter into it, in the unlikely event that what you want to set up cannot be done with Exim's configuration language, with its ability to query a variety of data sources, directly. Chapter 18: Domain, Host and Address Lists Lists can be considered a language for defining membership predicates. "Is this item in the list?" is the question we set up a list with the expectation of later answering. Hazel clearly defines the syntax and semantics of Lists, for exim's purposes. Negative entries, that is, explicit declaration of items not in a list, is available. Speed/size/maintainability tradeoffs are discussed. Identd lookups are discussed, as is the configuration option for limiting the client hosts against which rfc1413 queries are performed. Certain items in certain lists may be made case-sensitive. Chapter 19: Miscellany Starts with a discussion of security, which starts with background on the Unix EUID/RUID distinction, then moves to the various security modes Exim can operate in and the arguments for each. Then there is a section on RFC conformance, including discussions on 8-bit messages, address syntax stricture, domain literals, source routing, canonicalization, broken MX records, about which EXIM agrees with qmail in not allowing their use but differs in that exim provides a clear description of the problem in the report of delivery failure, time zones for logging, disk space checks, bounce (and warning) message copy and content configuration and customization, initial connection banner, and client inactivity timout. Chap 20: command line interface to Exim Rich, full-featured, mostly sendmail-compatible. Queued messages can be worked with by message handle, to do neat tricks like adding recipients to an already-queued message. The queue can be queried. Chap 21: Administering EXIM The fact that if you're running a server, you're going to have to cycle the logs, is not left implicit. I like that. Tools to cook the exim logs come with the distribution and are discussed in this chapter, as are tools to query Exim's state at any given moment. The "eximon" GUI is discussed. Exim comes with a GUI wrapper for the command line utilities that also shows impressive-looking continuous load histograms. Chap 22: Building and Installing Exim Discussion of how to download, build and install the package. And upgrade to newer releases, if you're not already using a packaging system such as BSD ports or RPM or Debian. In conclusion, if I wasn't already in the habit of setting up qmail on new machines that appear within my aegis, a habit that, once I got the hang of it, has reduced the care and feeding of my e-mail servers to an absolute minimum, I might select exim as an MTA to specialize in. To restate, it's too late for me, but save yourself! -- David Nicol 816.235.1187 "... raised indoors and tested by certified technicians"