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

Re: Courier or Cyrus



In terms of features, IMAP was a given requirement for us. The three
major open source IMAP servers are Courier-Imap, Cyrus, and UW Imap.

    * Courier IMAP is part of a complete MTA package built around
	maildirs. Few people use the MTA, but the Courier IMAP server is
	widely used. The purpose of Courier IMAP is to provide IMAP access
	to maildirs. www.inter7.com/courierframe.html

	* Cyrus IMAPD is intended to be high performance and run on
	'sealed servers' (unix accounts seperated from mail accounts). It is
	part of a larger email project, but can be run seperately.
	asg.web.cmu.edu/cyrus/imapd/

	* No one has anything nice to say about UW IMAP.
      www.washington.edu/imap/

Cyrus has some fancy features and improved performance:

    * squat databases: a program squatter periodically indexes mail
	and generates squat databases for quick searching.
    
	* duplicate delivery: a delivery database is kept which prevents
	the two messages with the same text from being delivered to the same
	mailbox.
	
    * quota: integrated quota, good support for imap quota extension,
	and features so that mail can be delivered to an over quota mailbox,
	but the user can only read it when they have gone back under quota.
	Also, supports per folder quotas.
	
    * access control lists: every mailbox has fine tuned permissions
	controlled by acls.

	* admin users: you can have master users which can administer
	other mailboxes, add acls, set quotas, etc.
	
    * fast file storage: mailboxes have flat file databases for
	storing imap flags and indexing the stored email. Cyrus mail storage
	shares the advantage with maildir being fast to update new mail
	because mail is not stored in one big file like mbox. In addition, the
	databases make file access faster. 

Cyrus looks pretty good, eh? My personal opinion is that it should be
avoided at all costs. Cyrus is possibly a good choice for an
installation with hundreds of thousands of users and several full time
staff. We were using it for around 10k users, so it might work for you
with 400k, but you are going to need Cyrus gardners. We have found it
to be extremely cranky and in need of constant babysitting. The
various databases are often getting corrupted, causing mysterious or
non-existant errors which only become clear when using strace to walk
through the assembly calls. Quota information often just disappears or
gets corrupted. Because of cronic problems and bugs (like runaway or
halted processes which prevented any mail from getting delivered) we
had to turn off the 'features' of squat indexes and duplicate delivery
prevention. The program that is supposed to "repair" your broken stuff
is actually a no-op and nobody knows why, nor does anyone appear
interested in fixing it.

We have used three different 'stable' versions of cyrus, over a couple
years and all have exibited this kind of cranky behavior. 

Courier IMAP is more simple than Cyrus and does not have any of the
fancy features listed above. However, it is more stable and includes
all the important things you need in an IMAP server. Courier has been
as trouble free for us as Cyrus was trouble prone. It has run rock
solid for several years without hardly a single hiccup, where as Cyrus
seemed to break every week.

Courier has some features which Cyrus doesn't have:

    * store files in maildir (cyrus mail storage format may be
	'superior' but it is only understood by cyrus and vulnerable to many
	points of failure).
    
	* read user information from ldap (like where to store mail, what
	user id to store mail as, etc).
    
	* store mail on a file server over a network (a feature of
	maildir). 

It is really nice to use maildirs because it makes it very easy for
other applications to interact with the mail storage (which is the
entire point of maildirs). For example, maildir makes backing up and
restoring ranges of email very easy.

On Tue, 15 Mar 2005, Hans du Plooy wrote:

> Hi guys,
> 
> I have to setup a mail server/cluster (dunno yet what kind of hardware I'll 
> have at my disposal) for a company wanting to add e-mail to their current 
> service offering.   Initial userbase is 400,000 with a projected groth of 
> around 10% pa.
> 
> My main concern is what to use for pop3/imap.  My experience with courier-imap 
> has been very very good so far, but I've never had to offer pop3/imap for 
> this big a userbase.
> 
> Initially it will only be imap, linked to a web interface (through wap, 
> actually) - no pop3 or direct imap, so I don't expect the volume of mail to 
> be too big.
> 
> So what would serve me better?  What are the unique advantages of either 
> courier and cyrus in a situation like this?  And when load increases?
> 
> Thanks
> -- 
> Kind regards
> Hans du Plooy
> SagacIT (Pty) Ltd
> hansdp at sagacit dot com
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-isp-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 



Reply to: