Exim Internet Mailer


XWARNING: This documentation is for an old version of Exim (latest)

Chapter 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


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 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 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.

ignore_quota Use: lmtp Type: boolean Default: false

If this option is set true, the string IGNOREQUOTA is added to RCPT commands, provided that the LMTP server has advertised support for IGNOREQUOTA in its response to the LHLO command.

socket Use: lmtp Type: string 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. Delivery is deferred, and will be tried again later. Here is an example of a typical LMTP transport:

  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.

<-previousTable of Contentsnext->