1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
|
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52
from spec on 25 November 2000 -->
<TITLE>Exim Specification - 17. The lmtp transport</TITLE>
</HEAD>
<body bgcolor="#FFFFFF" text="#00005A" link="#FF6600" alink="#FF9933" vlink="#990000">
Go to the <A HREF="spec_1.html">first</A>, <A HREF="spec_16.html">previous</A>, <A HREF="spec_18.html">next</A>, <A HREF="spec_59.html">last</A> section, <A HREF="spec_toc.html">table of contents</A>.
<P><HR><P>
<H1><A NAME="SEC494" HREF="spec_toc.html#TOC494">17. The lmtp transport</A></H1>
<P>
<A NAME="IDX1203"></A>
<A NAME="IDX1204"></A>
<font color=green>
The <EM>lmtp</EM> transport runs the LMTP protocol (RFC 2033) over a pipe to a
specified command. It is something of a cross between <EM>pipe</EM> and <EM>smtp</EM>. Exim
also has support for using LMTP over TCP/IP; this is implemented as an option
for the <EM>smtp</EM> transport. Because LMTP is expected to be of minority interest,
the default built-time configure in <TT>`src/EDITME'</TT> has it commented out. You need
to ensure that
<PRE>
TRANSPORT_LMTP=yes
</PRE>
<P>
is present in your Local/Makefile in order to have the <EM>lmtp</EM> transport
included in the Exim binary.
</P>
<P>
The private options of the <EM>lmtp</EM> transport are as follows:
</P>
<P>
<P>
<A NAME="IDX1205"></A>
<H3><A NAME="SEC495" HREF="spec_toc.html#TOC495">batch (lmtp)</A></H3>
<P>
Type: string<BR>
Default: "none"
</P>
<P>
<A NAME="IDX1206"></A>
<A NAME="IDX1207"></A>
As for other local transports, by default each address that is directed or
routed to an <EM>lmtp</EM> transport is handled separately. However, the whole point
of <EM>lmtp</EM> is to be able to pass a single copy of a message with more than one
recipient, so <EM>batch</EM> should normally be set to something other than the
default.
</P>
<P>
If it is set to the string `domain', all addresses with the same domain that
are directed or routed to the transport are handled in a single delivery. If it
is set to `all', multiple domains are batched. The list of addresses is
included in the <EM>Envelope-to:</EM> header
<A NAME="IDX1208"></A>
if <EM>envelope_to_add</EM> is set. When more than one address is being delivered,
$<EM>local_part</EM> is not set, and $<EM>domain</EM> is set only if they all have the
same domain.
</P>
<P>
<A NAME="IDX1209"></A>
<H3><A NAME="SEC496" HREF="spec_toc.html#TOC496">batch_max (lmtp)</A></H3>
<P>
Type: integer<BR>
Default: 100
</P>
<P>
This limits the number of addresses that can be handled in a batch.
</P>
<P>
<A NAME="IDX1210"></A>
<H3><A NAME="SEC497" HREF="spec_toc.html#TOC497">command (lmtp)</A></H3>
<P>
Type: string<BR>
Default: unset
</P>
<P>
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.
</P>
<P>
<A NAME="IDX1211"></A>
<H3><A NAME="SEC498" HREF="spec_toc.html#TOC498">group (lmtp)</A></H3>
<P>
Type: string<BR>
Default: unset
</P>
<P>
<A NAME="IDX1212"></A>
If this option is set, it specifies the group under whose gid the delivery
process is to be run. If it is not set, a value associated with a user may be
used (see below); otherwise a value must have been associated with the address
by the director which handled it. If the string contains no $ characters, it
is resolved when Exim starts up. Otherwise, the string is expanded at the time
the transport is run, and must yield either a digit string or a name which can
be looked up using <EM>getgrnam()</EM>.
</P>
<P>
<A NAME="IDX1213"></A>
<H3><A NAME="SEC499" HREF="spec_toc.html#TOC499">timeout (lmtp)</A></H3>
<P>
Type: time<BR>
Default: 5m
</P>
<P>
The transport is aborted if the created process does not respond to SMTP
commands or message input within this timeout.
</P>
<P>
<A NAME="IDX1214"></A>
<H3><A NAME="SEC500" HREF="spec_toc.html#TOC500">user (lmtp)</A></H3>
<P>
Type: string<BR>
Default: unset
</P>
<P>
<A NAME="IDX1215"></A>
If this option is set, it specifies the user under whose uid the delivery
process is to be run. If it is not set, a value must have been associated with
the address by the director that handled it. If the string contains no $
characters, it is resolved when Exim starts up. Otherwise, the string is
expanded at the time the transport is run, and must yield either a digit string
or a name which can be looked up using <EM>getpwnam()</EM>. When <EM>getpwnam()</EM> is used,
either at start-up time or later, the group id value associated with the user
is taken as the value to be used if the <EM>group</EM> option is not set.
Here is an example of a typical LMTP transport:
<PRE>
lmtp:
driver = lmtp
command = /some/local/lmtp/delivery/program
batch = all
batch_max = 20
user = exim
</PRE>
<P>
This delivers up to 20 addresses at time, in a mixture of domains if necessary,
running as the user <EM>exim</EM>.
</font>
</P>
<P><HR><P>
Go to the <A HREF="spec_1.html">first</A>, <A HREF="spec_16.html">previous</A>, <A HREF="spec_18.html">next</A>, <A HREF="spec_59.html">last</A> section, <A HREF="spec_toc.html">table of contents</A>.
</BODY>
</HTML>
|