Previous   Next   Contents       (Exim 4.10 Specification)

27. The lmtp transport

The lmtp transport runs the LMTP protocol (RFC 2033) over a pipe to a specified command. It is something of a cross between the pipe and smtp transports. Exim also has support for using LMTP over TCP/IP; this is implemented as an option for the smtp transport. Because LMTP is expected to be of minority interest, the default build-time configure in src/EDITME has it commented out. You need to ensure that

  TRANSPORT_LMTP=yes

is present in your Local/Makefile in order to have the lmtp transport included in the Exim binary.

The private options of the lmtp transport are as follows:


batch_id

Type:  string, expanded
Default:  unset

See the description of local delivery batching in chapter 24.


batch_max

Type:  integer
Default:  1

This limits the number of addresses that can be handled in a single delivery. Most LMTP servers can handle several addresses at once, so it is normally a good idea to increase this value. See the description of local delivery batching in chapter 24.


command

Type:  string, expanded
Default:  unset

This is a mandatory option, which must be set. The string is a command which is run in a separate process. It is split up into a command name and list of arguments, each of which is separately expanded (so expansion cannot change the number of arguments). The command is run directly, not via a shell. The message is passed to the new process using the standard input and output to operate the LMTP protocol.


timeout

Type:  time
Default:  5m

The transport is aborted if the created process does not respond to LMTP commands or message input within this timeout.



Here is an example of a typical LMTP transport:

  lmtp:
    driver = lmtp
    command = /some/local/lmtp/delivery/program
    batch_max = 20
    user = exim

This delivers up to 20 addresses at a time, in a mixture of domains if necessary, running as the user exim.


Previous  Next  Contents       (Exim 4.10 Specification)