Re: [Exim] Cyrus 2.1.x "deliver" configuration - lmtp, pipes…

Página superior
Eliminar este mensaje
Responder a este mensaje
Autor: Phil Brutsche
Fecha:  
A: Matt Sealey
Cc: exim-users
Asunto: Re: [Exim] Cyrus 2.1.x "deliver" configuration - lmtp, pipes, huh? :)
Matt Sealey wrote:
> I've seen many examples using pipe and smtp as drivers.. using lmtp
> and deliver and some specifying the lmtp socket in the Exim config
> (which requires a patch?), but none seem to actually work.


No special patches are required for Exim 4.x to deliver to Cyrus via the
"deliver" program, or via LMTP over TCP sockets.

As of Exim 4.12, delivering to Cyrus via a unix socket (using the LMTP
protocol) is supported.

Exim 3.3x has similar capabilities.

> I got a few hints from this list but put them by the wayside until I
> had more time to devote to it, but now I try to finalise the setup
> this is my stumbling block :)
>
> Unfortunately the documentation for Cyrus is archaic,


The Cyrus documentation isn't as archaic as you think, just
sendmail-specific, as that's what CMU (the people who wrote Cyrus) use
as their MTA.

The Debian package for Cyrus 2.1.x is a great source for documentation.

> and the Exim docs are puzzling at best in that I have no idea out of
> all the options I *should* be using, given I have seen examples using
> them all.


This is the Exim transport I'm using (works with 4.10 and 4.12) to
deliver via LMTP over TCP:

local_delivery:
driver = smtp
protocol = lmtp
hosts_override
hosts = localhost
allow_localhost
return_path_add

For the above to work, you will need to tell lmtpd to pre-authenticate
any LMTP connections, otherwise you'll also need to configure Exim to be
an SMTP AUTH client. The first (pre-authenticated lmtp connections) is
quite a bit simpler.

These two commands should get you started:

"man lmtpd"
"vi /path/to/cyrus.conf"  <- feel free to substitute for your editor of
                              choice


This is what I've used to deliver via Cyrus's "deliver" program (works
with 4.10, should work fine with 4.12):

local_delivery:
driver = pipe
command = "/usr/sbin/cyrdeliver ${local_part}"
return_path_add
return_output
message_prefix =
user = cyrus

Note the Debian specific /usr/sbin/cyrdeliver and the Debian specific
user cyrus. You may need to specify a different user and command line
for that transport to work under FreeBSD.

The deliver program is also used for Cyrus "plus" addressing - where a
message to "phil+exim.users@???" will be delivered to the Cyrus
mailbox "user.phil.exim.users" rather than my INBOX.

> Anyone know the "official" way to interact Exim 4 and Cyrus 2.1.x?


IME there isn't one. The CMU folks recommend using LMTP over TCP or
unix sockets - no matter what MTA you use - on general principle, mostly
for perfomance reasons.

--

Phil Brutsche
phil@???