Previous   Next   Contents       (Exim 4.50 Specification)

28. The lmtp transport

The lmtp transport runs the LMTP protocol (RFC 2033) over a pipe to a specified command or by interacting with a Unix domain socket. This transport 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

Use:  lmtp
Type:  string, expanded
Default:  unset

See the description of local delivery batching in chapter 25.


batch_max

Use:  lmtp
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 25.


command

Use:  lmtp
Type:  string, expanded
Default:  unset

This option must be set if socket is not 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.


socket

Use:  lmtp
Type:  string, expanded
Default:  unset

This option must be set if command is not set. The result of expansion must be the name of a Unix domain socket. The transport connects to the socket and delivers the message to it using the LMTP protocol.


timeout

Use:  lmtp
Type:  time
Default:  5m

The transport is aborted if the created process or Unix domain socket 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.50 Specification)