We run UW imapd for most users (3500 users per dual PIII server, average 20MB disk per user) and Courier for light virtual hosting. The deep Courier integration can be useful (all we have to do to create a user is insert one row into a MySQL table) and it does perform well, but the IMAP implementation is very dodgy. Sorting is completely bogus. The author has some very odd ideas about standards compliance. I can't recommend it unless you intend for it to be a mostly webmail box and the webmail is to be Courier's own. As you said, Cyrus wants to own the server. It's a very well engineered multithreaded app, probably the only game in town if you want to support much more than 10,000 simultaneous users per server, but there's additional (or at least different) management overhead. Also its security model pretty much assumes you're running Kerberos. I like UW imapd. It's not the sexiest, it's not the fastest, but it works and it's standards-compliant. Its workings are a lot more transparent than Cyrus or Courier so it's easier to back up/restore and easier to fix if it breaks. You *do* want to modify UW imapd to use mbx-format mailboxes. The default is to use berkeley-format mboxes for backwards compatibility, but UW itself and any serious site with more than a few thousand users changes CREATEPROTO=mbx. mbx performs much better, expecially on mailboxes with > 1000 messages, and allows concurrent read/write access. See
http://carumba.com/imap/ and doc/formats.txt from the cource distribution, also posted at
http://my.brandeis.edu/bboard/q-and-a-fetch-msg?msg_id=00008N