cyrus + postfix + lmtpd questions

Andrew Morgan morgan at
Sun Mar 14 04:25:28 EDT 2010

On Sun, 14 Mar 2010, Diego V wrote:

> Id really appreciate if someone could explain a couple of things im 
> confused about.
> As far as I can see lmtpd is in cyrus.conf, its spawned by cyrus master 
> and is part of cyrus. But, what is it for ?
> For example, if cyrus is set as the local delivery agent on Postfix 
>, does cyrus use its lmtpd anyway ? Does not cyrus have its own 
> delivery agent ? why the need to use lmtpd ?
> In short, Im confused about the differences between Postfix lmtp and 
> Cyrus lmtpd and how they interact.

In reality, Cyrus only accepts mail into its message store via the LMTP 
port (unix socket or tcp socket).  The program "cyrdeliver", which is 
commonly used by Sendmail's delivery rules, is really just a wrapper 
program which talks LMTP to Cyrus.  It is more efficient, by avoiding 
spawning a new cyrdeliver process for each delivered message, to configure 
your MTA to deliver mail to Cyrus' LMTP socket.

You probably see something like this in cyrus.conf:

   # at least one LMTP is required for delivery
   lmtp          cmd="/usr/local/cyrus/bin/lmtpd" listen="lmtp" prefork=1 maxchild=100
   lmtpunix      cmd="/usr/local/cyrus/bin/lmtpd" listen="/var/run/cyrus/socket/lmtp" prefork=1

This provides an lmtpd listening on a local unix socket and an lmtpd 
listening on the lmtp tcp socket.  You can also specify that lmtpd listen 
on a tcp socket on localhost only.

Depending on your mail architecture, you may be running an MTA (Postfix, 
Sendmail, etc) on 1 or more remote hosts to spread the load and provide 
redundancy.  That's how we do it at OSU.  Those MTAs then make LMTP 
connections to the Cyrus server(s) to deliver mail to the message store. 
By the way, lmtpd is also responsible for Sieve mail filter processing on 
message delivery.

I hope this helps!


More information about the Info-cyrus mailing list