Hi,
I'm trying to get exim 4.41 to work with cyrus-imapd 2.2.3 on a FC2
machine, but I'm having problems, and they're all revolving around
the various different db4 handling methods.
Since the machine onto which this is being deployed has virtual
domains and multiple local users, we need a way to work out when
to deliver mail to the cyrus imap subsystem, and when to use local
mailboxes.
I found this (modified) fragment in the exim C045 configuration sample:
cyrus_local_router:
driver = accept
domains = +local_domains
local_part_suffix = +*
local_part_suffix_optional
condition = ${lookup{user.${local_part}} dbmnz {/var/lib/imap/mailboxes.db} {yes}{no}}
transport = cyrus_delivery
cyrus_virtual_router:
driver = accept
# domains = +local_domains
local_part_suffix = +*
local_part_suffix_optional
condition = ${lookup{${domain}!user.${local_part}} dbmnz {/var/lib/imap/mailboxes.db} {yes}{no}}
transport = cyrus_delivery
The problem is that merely accessing /var/lib/imap/mailboxes.db does
not give something that works - cyrus-imapd keeps DB4 log files
in /var/lib/imap/db, and exim's dbmnz lookup doesn't seem to know
about this. Any changes to the cyrus-imapd configuration results
in the changes appearing in the database log files, but not the
database file itself.
Naturally, if you use db_dump and tell it that the "home directory"
is /var/lib/imap/db, it's able to dump the database.
Unfortunately, there seems to be no way to tell exim's dbmnz lookup
to use these log files / where the home directory is, which kind'a
makes it hard to use cyrus-imapd with exim.
Has anyone else come across this problem, and if so how did they
solve it?
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core