[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Cyrus-imap question

Sasa Stupar wrote:
I am running on FC3 with Sendmail and uw-imap/pop3. I want to change to
cyrus-imap which comes with FC3 but when I do that then I can't see my
messages in inbox anymore with imap access. If I change back to uw then
I can see my inbox messages. POP3 is working fine. Is there anything
that I need to configure so that I can see my inbox?

Well, I'm preatty much new to this Cyrus thing too. But some advice anyhow.

You need to configure your MTA properly. For sendmail, remove MAILER(procmail) from sendmail.mc, and add this three lines:

define(`confLOCAL_MAILER', `cyrusv2')
define(`CYRUSV2_MAILER_ARGS', `FILE /var/lib/imap/socket/lmtp')

The second line is needed since Sendmail RPM defaults to different location than Cyrus RPM package is configured for on Fedora. Would be nice if it was consolidated between Sendmail and Cyrus RPMs to default to same location.

If you are using Postfix, check Cyrus documentation, there's an example on how to do it.

The reason for this is that uw-imap and Cyrus are using different mail box formats. uw-imap uses "standard" Unix mbox (/var/spool/mail/username) for INBOX folder, and files in user's home directory for all other folders (one file per folder). Hence you need to have real user accounts on the machine.

Cyrus on the other hand uses one file per message and stores everything (INBOX folder and all other folders that you have) in /var/spool/imap directory. There's also database with email indexes. This means that you don't have to create Unix accounts, user's can be authenticated using separate user's database that can be stored in file, or be remote one (for example LDAP), which is good from security point of view. Of course, if you want to, you can still have Unix accounts and have Cyrus use those to authenticate users.

To convert your old email, there are some tools out there, that I never had much luck with. Basically, it is not enough to simply split your existing mbox and save each message to separate numbered file. You would need to rebuild Cyrus database too. Plus you probably want to preserve message flags when converting (read, replied, deleted, and so on).

Another possiblity is to run uw-imapd on non-standard port from inetd (or xinted), and than to use your favorite mail client to simply copy mails from uw-imapd to Cyrus.

The one problem I had with this was that uw-imapd is much more liberal to garbage. Cyrus is not. uw-imapd will accept mall-formed mail (containing null characters, bare newlines, and all other sorts of RFC violations) and it will send it to your mail client as is (theoretically, some of that stuff can crash badly written mail client, cause it not to display message correctly, or even be abused by virus to trick mail client into doing things it is not supposed to do). Cyrus will simply refuse such kind of email.

uw-imapd is really bad about that. It is OK that it is liberal in what it accepts, but it is also way too liberal in what it sends out. This is very bad for security. Cyrus will never send garbage to the client (as uw-imapd will), but it is not liberal in what it accepts either.

At the end, I wrote small and simple Perl script (can't find where I put it anymore) that connects to both uw-imapd and Cyrus and copies all emails using IMAP protocol (using Mail::IMAPClient module), and while doing so it was also doing sanity checks and was fixing corrupted emails before feeding them to Cyrus (most of which appeared to be either spam, or automatically generated mail that was close to the definition of spam). The script also read message flags from each mail, and copied them over to Cyrus.

That way I didn't had to worry about regenerating Cyrus database, I got clean storage (nothing in there that Cyrus would refuse to deal with), and all message flags were transferred too.

Aleksandar Milivojevic <amilivojevic pbl ca>    Pollard Banknote Limited
Systems Administrator                           1499 Buffalo Place
Tel: (204) 474-2323 ext 276                     Winnipeg, MB  R3T 1L7

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]