Re: Building an IMAP server
On Mon, Feb 03, 2003 at 10:36:26AM -0800, Dave Carrigan wrote:
> > Cyrus seems to be good for performance, but it is using its own format
> > to store the mail. That would make it impossible to recover particular
> > mailboxes from backups, and if something goes wrong, you're more or
> > less left stranded because of the propriatry format that is used.
> This is incorrect. Cyrus storage method is basically maildir with an
> index database for performance. If the index database gets corrupted, it
> can be completely rebuilt from the messages in the mail directory, using
> the cyrus admin commands.
> Cyrus covers all of your requirements other than .forward support.
> However, cyrus with sieve handles vacation, redirect and folder filing,
> so you don't really need .forward support for that. Quotas especially
> are easier to manage with cyrus, and the use of maildir combined with
> index files means that cyrus should have the best performance of any
> imap server, especially for applications that require repeated
> connections to the imap server.
Ok, all this sounds good. Cyrus may be the more solid solution at
least. But some questions come up with it:
+ Given that there are no local users, how do they authenticate to
access their email via IMAP?
Once I tried to have a setup without local users, but I didn't find
out how they could login.
+ What's the best way to do backups and restores?
+ Can delivery to local users' ~/Maildir be intermixed with delivery
to cyrus' own mail storage? Can cyrus access files in ~/Maildir and
make it accessible by IMAP as it does with mail in its own storage?
+ The server will have to accept mail for some.domain.de and
some.domain.com (whereby the 'some.domain.' part is always the
same). All users of some.domain.de are the same users as in
some.domain.com, and the envelope sender and From: information will
always be email@example.com. So far, that's easy. Can cyrus deal
Later, the server eventually will also have to handle mail for
other.domain.de and other.domain.com, while senders will probably
always be firstname.lastname@example.org if sender is a user of
other.domain.com or other.domain.de. Sender information of
email@example.com and firstname.lastname@example.org will remain being
email@example.com for all users of some.domain.de and
Users logging in via IMAP or a webmail client will specify a
username and a password, regardless of the domain they are users
Well, I'm not sure how to handle this in detail on the side of the
MTA yet (looks like it needs virtual domains), but what about cyrus?
Afaics yet, such a domain setup would be much easier to maintain
when all users were real local users. With unreal users and cyrus, I
might very well get into troubles I cannot quite imagine as of yet
--- or into none at all as it may be left solely to the MTA to
handle the different domains/groups of users.
Hey, I'm beginning to become a bit confused ...