Problem configuring lmtp on cyrus backend

Dan White dwhite at olp.net
Wed Mar 16 11:50:38 EDT 2011


On 16/03/11 14:12 +0100, Michael Menge wrote:
>Hi,
>
>i have a problem configuring cyrus backend in a almost traditional
>murder setup.
>
>I have one master process which starts the forntend and backend services.
>The forntend services use /etc/imapd_fe.conf as config file and listen
>on the external network interface and  the backend services listen to
>the internal network interfaces and use /etc/imapd_be.conf
>
>The lmtpdproxy delivers the mail to the backend using lmtp over tcp.
>The backend lmtpd asks the mupdate server where the mailbox is,
>which results in the "wrong" answer that the mailbox is remote.
>The backend tries to proxies the mail to an other lmtpd
>on the same backend. This results in an infinite loop.
>I tried this with 2.4.6 and 2.3.16.
>
>AFAIK the backend config must contain the mupdate_server
>because create mailbox, rename mailbox and delete mailbox
>information must be send to the mupdate master.
>But if mupdate_server is configured lmtpd will ask
>the mupdate_server where the mailbox is, which will always
>result in an "remote mailbox" as answer
>
>What do i need to change?
>
>Regards
>
>    Michael Menge
>
>---------- cyrus.conf -------------------------------
>
>START {
>   fe_recover cmd="ctl_cyrusdb -r -C /etc/imapd_fe.conf"
>   be_recover cmd="ctl_cyrusdb -r -C /etc/imapd_be.conf"
>   be_mupdatepush cmd="ctl_mboxlist -m -C /etc/imapd_be.conf"
>}
>
>SERVICES {
>   imap          cmd="imapd -C /etc/imapd_fe.conf" 
>listen="localhost:imap" prefork=1 maxfds=1024
>   imaps         cmd="imapd -U 50 -s -C /etc/imapd_fe.conf" 
>listen="mailserv05.uni-tuebingen.de:imaps" prefork=1 maxfds=1024
>   feimaps       cmd="imapd -U 50 -s -C /etc/imapd_fe.conf" 
>listen="mailserv.uni-tuebingen.de:imaps" prefork=1 maxfds=1024

Shouldn't these be 'proxyd' instead of 'imapd'?

>   pop3s         cmd="pop3d -s -C /etc/imapd_fe.conf" 
>listen="mailserv05.uni-tuebingen.de:pop3s" prefork=1 maxfds=1024
>   fepop3s       cmd="pop3d -s -C /etc/imapd_fe.conf" 
>listen="mailserv.uni-tuebingen.de:pop3s" prefork=1 maxfds=1024
>   sieve         cmd="timsieved -C /etc/imapd_fe.conf" 
>listen="mailserv05.uni-tuebingen.de:sieve" prefork=0 maxfds=1024
>   lmtpunix      cmd="lmtpd -U 5 -C /etc/imapd_fe.conf" 
>listen="/var/spool/postfix/public/lmtp" prefork=1 maxfds=1024

And I think this should be lmtpproxyd.

>   lomupdate     cmd="mupdate -C /etc/imapd_fe.conf" 
>listen="mailserv05.uni-tuebingen.de:mupdate" prefork=1

Is the mupdate master on another server? If not (and you intend for
imapd_fe.conf to be the mudpate master), you need to specify a -m parameter
to mupdate here.

>   beimap        cmd="imapd -U 50 -C /etc/imapd_be.conf" 
>listen="be05.mail.localhost:imap" prefork=1 maxfds=1024
>   beimaps       cmd="imapd -U 50 -s -C /etc/imapd_be.conf" 
>listen="be05.mail.localhost:imaps" prefork=1 maxfds=1024
>   bepop3s       cmd="pop3d -s -C /etc/imapd_be.conf" 
>listen="be05.mail.localhost:pop3s" prefork=1 maxfds=1024
>   besieve       cmd="timsieved -C /etc/imapd_be.conf" 
>listen="be05.mail.localhost:sieve" prefork=0 maxfds=1024
>   belmtp        cmd="lmtpd -U 5 -C /etc/imapd_be.conf" 
>listen="be05.mail.localhost:lmtp" prefork=1 maxfds=1024
>}
>
>EVENTS {
>   fecheckpoint    cmd="ctl_cyrusdb -c -C /etc/imapd_fe.conf" period=30
>   becheckpoint    cmd="ctl_cyrusdb -c -C /etc/imapd_be.conf" period=30
>
>   bedelprune     cmd="cyr_expire -E 3 -X 4 -D 4 -C 
>/etc/imapd_be.conf" at=0100
>
>   fetlsprune      cmd="tls_prune -C /etc/imapd_fe.conf" at=0400
>   betlsprune      cmd="tls_prune -C /etc/imapd_be.conf" at=0430
>
>   besquatter      cmd="squatter -C /etc/imapd_be.conf -s -r -i user" at=2200
>}
>
>--------------- imapd_be.conf ------------------------------
>servername: be05.mail.localhost
>configdirectory: /home/cyrus-be
>partition-default: /home/cyrus-be
>defaultpartition: default
>admins: xxxxx xxxxx-xxxxxxx
>
>mupdate_server: mupdate.mail.localhost
>mupdate_port: 3905
>mupdate_authname: xxxxx-xxxxxxx
>mupdate_password: xxxxxxxx
>proxy_authname: xxxxx-xxxxxxx
>proxy_password: xxxxxxxx
>
>allowusermoves: 1
>allowallsubscribe: 1
>
>sievedir: /home/cyrus-be/sieve
>sieve_extensions: fileinto reject vacation imapflags notify include 
>envelope body relational regex subaddress copy
>sieve_maxscriptsize: 150
>
>sasl_pwcheck_method: saslauthd
>sasl_mech_list: plain login
>
>---------------------------------------------------------

What does your imapd_fe.conf look like?

Do:

ctl_mboxlist -C /etc/imapd_fe.conf -d
ctl_mboxlist -C /etc/imapd_be.conf -d

and see if the output is sensible. The output of the backend should
reference a local partition for the location of your mailboxes ('default'),
and should not reference a remote server.

In the frontend mailbox list output, you should see the location of the
mailbox list pointing to <backend>!default, or something that resolves
(uniquely) to the backend.

-- 
Dan White


More information about the Info-cyrus mailing list