Specification of the Exim Mail Transfer Agent
Total Page:16
File Type:pdf, Size:1020Kb
Specification of the Exim Mail Transfer Agent Philip Hazel University of Cambridge Computing Service Specification of the Exim Mail Transfer Agent Author: Philip Hazel University of Cambridge Computing Service New Museums Site, Pembroke Street, Cambridge CB2 3QH, England Copyright © 2007 University of Cambridge Revision 4.68 23 August 2007 Contents 1. Introduction .................................................................................................................................. 1 1.1 Exim documentation .............................................................................................................. 1 1.2 FTP and web sites ................................................................................................................. 2 1.3 Mailing lists .............................................................................................................................. 2 1.4 Exim training ........................................................................................................................... 3 1.5 Bug reports .............................................................................................................................. 3 1.6 Where to find the Exim distribution ...................................................................................... 3 1.7 Limitations ............................................................................................................................... 3 1.8 Run time configuration ........................................................................................................... 4 1.9 Calling interface ...................................................................................................................... 4 1.10 Terminology ........................................................................................................................... 4 2. Incorporated code ...................................................................................................................... 6 3. How Exim receives and delivers mail ................................................................................... 8 3.1 Overall philosophy .................................................................................................................. 8 3.2 Policy control ........................................................................................................................... 8 3.3 User filters ............................................................................................................................... 8 3.4 Message identification ........................................................................................................... 9 3.5 Receiving mail ........................................................................................................................ 9 3.6 Handling an incoming message ........................................................................................ 10 3.7 Life of a message ................................................................................................................. 10 3.8 Processing an address for delivery ................................................................................... 11 3.9 Processing an address for verification .............................................................................. 12 3.10 Running an individual router ............................................................................................ 12 3.11 Duplicate addresses .......................................................................................................... 13 3.12 Router preconditions ......................................................................................................... 13 3.13 Delivery in detail ................................................................................................................. 14 3.14 Retry mechanism ............................................................................................................... 15 3.15 Temporary delivery failure ................................................................................................ 15 3.16 Permanent delivery failure ................................................................................................ 15 3.17 Failures to deliver bounce messages ............................................................................. 16 4. Building and installing Exim ................................................................................................. 17 4.1 Unpacking ............................................................................................................................. 17 4.2 Multiple machine architectures and operating systems ................................................. 17 4.3 DBM libraries ........................................................................................................................ 17 4.4 Pre-building configuration ................................................................................................... 18 4.5 Support for iconv() ............................................................................................................... 19 4.6 Including TLS/SSL encryption support ............................................................................. 19 4.7 Use of tcpwrappers .............................................................................................................. 20 4.8 Including support for IPv6 ................................................................................................... 20 4.9 The building process ........................................................................................................... 20 4.10 Output from “make” ........................................................................................................... 21 4.11 Overriding build-time options for Exim ............................................................................ 21 4.12 OS-specific header files .................................................................................................... 22 4.13 Overriding build-time options for the monitor ................................................................ 23 4.14 Installing Exim binaries and scripts ................................................................................. 23 4.15 Installing info documentation ........................................................................................... 24 4.16 Setting up the spool directory .......................................................................................... 24 4.17 Testing ................................................................................................................................. 24 4.18 Replacing another MTA with Exim .................................................................................. 25 iii 4.19 Upgrading Exim .................................................................................................................. 26 4.20 Stopping the Exim daemon on Solaris ........................................................................... 26 5. The Exim command line ......................................................................................................... 27 5.1 Setting options by program name ...................................................................................... 27 5.2 Trusted and admin users .................................................................................................... 27 5.3 Command line options ........................................................................................................ 28 6. The Exim run time configuration file ................................................................................... 48 6.1 Using a different configuration file ..................................................................................... 48 6.2 Configuration file format ...................................................................................................... 49 6.3 File inclusions in the configuration file .............................................................................. 49 6.4 Macros in the configuration file .......................................................................................... 50 6.5 Macro substitution ................................................................................................................ 50 6.6 Redefining macros ............................................................................................................... 50 6.7 Overriding macro values ..................................................................................................... 51 6.8 Example of macro usage .................................................................................................... 51 6.9 Conditional skips in the configuration file ......................................................................... 51 6.10 Common option syntax ..................................................................................................... 51 6.11 Boolean options ................................................................................................................. 52 6.12 Integer values ..................................................................................................................... 52 6.13 Octal integer values ........................................................................................................... 52 6.14 Fixed