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


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. A transport is invoked only after being passed an address by a director or a router.

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


<driver 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, or all routers, or all transports). 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 previous 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 is no longer the case. For backwards compatibility, commas and semicolons are still permitted at the ends of options, but they are ignored.

Each instance of a driver is given an identifying 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
  service = 1234
  command_timeout = 10s

The names `remote_smtp' and `special_smtp' would be used to reference these drivers 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 "The Exim command line").

The order of driver specifications in the configuration file matters for the directors and the routers, since an address is passed to each of them in turn until one is able to handle it. The order of transport specifications does not matter.

The next chapter discusses default transports, and the following one 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 "Common generic options for directors and routers" before the descriptions of the generic options that are specific to each type of driver, and the drivers themselves.


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