Go to the first, previous, next, last section, table of contents.


12. Driver specifications

The second, third, and fourth parts of Exim's configuration file specify which transport, director, and router drivers are to be used. Directors and routers are similar, in that an address is passed to a list of them in the order in which they are defined, whereas the order in which transports are specified is immaterial, because a transport is invoked only after being passed an address by a director or a router. Section 3.4 discusses how the different kinds of delivery driver interact.

The seventh part of the configuration file (if present) specifies the authenticators that are to be used for SMTP connections (see chapter 35). These are a somewhat different kind of `driver' to the others, but they are configured in a similar way.

The format of the configuration data is the same for all four types of driver, and is as follows:

<instance name>:
  <option>
  ...
  <option>

There are two kinds of option: generic and private. The generic options are those that apply to all drivers of the same type (that is, all directors, all routers, all transports or all authenticators). There is always at least one generic option, called driver, which specifies which particular driver is being used. The private options are particular to each driver, and none need appear.

The options may appear in any order, except that the driver option must precede any private options, since these depend on the particular driver. For this reason, it is recommended that driver always be the first option.

In earlier versions of Exim, commas were used between options, and the generic options had to precede the private ones and be terminated by a semicolon. This has not been the case for some time, and at release 3.00 the backwards-compatibility code for ignoring commas and semicolons was removed.

Each instance of a driver is given an identifying instance name name for reference in logging and elsewhere. The name can be any sequence of letters, digits, and underscores (starting with a letter) and must be unique among drivers of the same type. A router and a transport (for example) can each have the same name, but no two router instances can have the same name. The name of a driver instance should not be confused with the name of the underlying driver. The configuration lines

remote_smtp:
  driver = smtp

create an instance of the smtp transport driver whose name is remote_smtp. The same driver code can be used more than once, with different instance names and different option settings each time. A second instance of the smtp transport, with different options, might be defined thus:

special_smtp:
  driver = smtp
  port = 1234
  command_timeout = 10s

The names remote_smtp and special_smtp would be used to reference these driver instances from directors or routers, and would appear in log lines.

Comment lines may appear in the middle of driver specifications. The full list of option settings for any particular driver instance, including all the defaults, can be extracted by making use of the -bP command line option (see chapter 5).

The next chapter describes the environment in which local deliveries are done, and how this is affected by the configurations of the relevant directors, routers, and transports. Then there is a chapter describing the generic options for transports, followed by descriptions of the available transport drivers. Directors and routers have some generic options in common, and these are covered in chapter 20 before the descriptions of the generic options that are specific to each type of driver, and the drivers themselves. The SMTP AUTH mechanism for client authentication is described in chapter 35, which is followed by descriptions of the available authenticators.


Go to the first, previous, next, last section, table of contents.