Every local area network needs a mail transport agent (MTA), and any multi-user system needs one to deliver local mail after it reaches the system. Exim, qmail, and sendmail are examples of MTAs. Exim's features include sophisticated rules for routing mail to individual users or sets of users, information lookups in a variety of formats, spam filtering, virus or attach-ment checking, and mailing list management. Exim: The Mail Transport Agent, written by the developer of Exim, fleshes out its features with clear explanations and illuminating examples. The author's lucid writing style and understanding of Exim users' needs are unmatched. Anyone who wants to understand Exim will need this book.
Preface
Chapter 1. Introduction
Chapter 2. How Internet Mail Works Different Types of MTA Internet Message Standards RFC 822 Message Format The Message ''On the Wire'''' Summary of the SMTP Protocol Forgery Authentication and Encryption Routing a Message Checking Incoming Mail Overview of the DNS DNS Records Used for Mail Routing Related DNS Records Common DNS Errors Role of the Postmaster
Chapter 3. Exim Overview Exim Philosophy Exim''s Queue Receiving and Delivering Messages Exim Processes Coordination Between Processes How Exim Is Configured How Exim Delivers Messages Local and Remote Addresses Processing an Address A Simple Example Complications While Directing and Routing Complications During Delivery Complications After Delivery Use of Transports by Directors and Routers
Chapter 4. Exim Operations Overview How Exim Identifies Messages Watching Exim at Work The Runtime Configuration File The Default Qualification Domain Handling Frozen Bounce Messages Reducing Activity at High Load Limiting Message Sizes Parallel Remote Delivery Controlling the Number of Delivery Processes Large Message Queues Large Installations
Chapter 5. Extending the Delivery Configuration Multiple Local Domains Virtual Domains Mailing Lists Using an External Local Delivery Agent Multiple User Addresses Mixed Local/Remote Domains Delivering to UUCP Ignoring the Local Part in Local Deliveries Handling Local Parts in a Case-Sensitive Manner Scanning Messages for Viruses Modifying Message Bodies
Chapter 6. Options Common to Directors and Routers Conditional Running of Routers and Directors Changing a Driver''s Successful Outcome Adding Data for Use by Transports Debugging Directors and Routers Summary of Director/Router Generic Options
Chapter 7. The Directors Conditional Running of Directors Optimizing Single-Level Aliasing Adding Data for Use by Transports The aliasfile and forwardfile Directors The aliasfile Director The forwardfile Director The localuser Director The smartuser Director
Chapter 8. The Routers Timeouts While Routing Domains That Route to the Local Host The lookuphost Router The domainlist Router The ipliteral Router The queryprogram Router
Chapter 9. The Transports Options Common to All Transports The smtp Transport Environment for Local Transports Options Common to the appendfile and pipe Transports The appendfile Transport The pipe Transport The lmtp Transport The autoreply Transport
Chapter 10. Message Filtering Examples of Filter Commands Filtering Compared with an External Delivery Agent Setting Up a User Filter Setting Up a System Filter Testing Filter Files Format of Filter Files Significant Actions Filter Commands The add Command Delivery Commands Mail Commands Logging Commands The testprint Command The finish Command Obeying Filter Commands Conditionally Additional Features for System Filters
Chapter 11. Shared Data and Exim Processes Message Files Locking Message Files Hints Files Log Files User and Group IDs for Exim Processes Process Relationships The Daemon Process Reception Processes Queue Runner Processes Delivery Processes Summary of Message Handling Process Types Other Types of Process
Chapter 12. Delivery Errors and Retrying Retrying After Errors Remote Delivery Errors Local Delivery Errors Routing and Directing Errors Retry Rules Computing Retry Times Using Retry Times Retry Rule Examples Timeout of Retry Data Long-Term Failures Ultimate Address Timeout Intermittently Connected Hosts
Chapter 13. Message Reception and Policy Controls Message Sources Message Size Control Messages from Local Processes Unqualified Addresses from Remote Hosts Checking a Remote Host Checking Remote Sender Addresses Checking Recipient Addresses Checking Header Line Syntax Relay Control Customizing Prohibition Messages Incoming Message Processing
Chapter 14. Rewriting Addresses Automatic Rewriting Configured Rewriting Rewriting Rules Rewriting Patterns Rewriting Flags A Further Rewriting Example Testing Rewriting Rules
Chapter 15. Authentication, Encryption, and Other SMTP Processing SMTP Authentication Encrypted SMTP Connections SMTP over TCP/IP Local SMTP Batched SMTP
Chapter 16. File and Database Lookups Single-Key Lookup Types Query-Style Lookup Types Quoting Lookup Data NIS+ LDAP MySQL and PostgreSQL DNS Lookups Implicit Keys in Query-Style Lookups Temporary Errors in Lookups Default Values in Single-Key Lookups Partial Matching in Single-Key Lookups Lookup Caching
Chapter 17. String Expansion Variable Substitution Header Insertion Operations on Substrings Character Translation Text Substitution Conditional Expansion Lookups in Expansion Strings Extracting Fields from Substrings IP Address Masking Quoting Reexpansion Running Embedded Perl Testing String Expansions
Chapter 18. Domain, Host, and Address Lists Negative Items in Lists List Items in Files Lookup Items in Lists Domain Lists Host Lists Address Lists
Chapter 19. Miscellany Security Issues Privileged Users RFC Conformance Timestamps Checking Spool Space Control of DNS Lookups Bounce Message Handling Miscellaneous Controls
Chapter 20. Command-Line Interface to Exim Input Mode Control Additional Message Data Immediate Delivery Control Error Routing Queue Runner Processes Configuration Overrides Watching Exim''s Queue Message Control Testing Options Options for Debugging Terminating the Options Embedded Perl Options Compatibility with Sendmail Calling Exim by Different Names
Chapter 21. Administering Exim Log Files Log Destination Control Format of Main Log Entries Cycling Log Files Extracting Information from Log Files Watching What Exim is Doing The Exim Monitor Maintaining Alias and Other Datafiles Hints Database Maintenance Mailbox Maintenance
Chapter 22. Building and Installing Exim Prerequisites Fetching and Unpacking the Source Configuration for Building The Building Process Installing Exim Testing Before Turning On Turning Exim On Installing Documentation in Info Format Upgrading to a New Release
Appendix A. Summary of String Expansion
Appendix B. Regular Expressions
Index