When you have more than a few Unix people together you will end up with vehement, and possibly violent, disagreement, over the Right Way To Do Things. This generally starts with Unix flavour, distribution (if relevant to Unix flavour), and then wends its way through the countrysides of editor wars, MUA disagreements, MTA squabbles, and, of course, mailspool layouts.
Once upon a time, I had a mail server used by people who would ssh into the server and use the MUA of choice, in text mode, as God intended. But then Complications arose. More people began to use it, people who did not like console MUAs. Further more, some of the users became trapped behind corporate firewalls who frowned[1] on tunneling ssh through said corporate firewalls.
So some way of providing access for GUI clients, webmail, and console clients, sometime sharing the same mail spool.
So uw-imap was installed, and it was, well, it only sucked a bit, and squirrelmail was installed, and it didn’t suck much. uw-imapd even supported SSL[2].
But time passed, and mailspools grew, and soon the users complained. Webmail was becoming unusable, unless you like spending minutes waiting for 20 mails to be rendered in a browser. uw-imap was starting to suck. A lot. It was time to find something that sucked less.
The criteria are the problem. There are no shortage of IMAP servers which are better than uw-imap if only you don’t mind a few simple caveats such as:
- You need to be happy only using IMAP to access your email, because it’s hidden in an otherwise inaccessible storage format you’ll probably never be able to pull it out of again.
- The corollary of this is that you can’t use all those mail scripts any more. Or just grep for stuff you want to find.
- The server is sufficiently complex you’ll need to wade through a fuckton of documentation to set it up properly, which would be fine if you’re doing it for, say, 10,000 people for money, but not so fine if you’re doing it for half a dozen for free.
- You may need to replace not merely your MUAs but your MTA for their custom built one.
- You may need to use a relational database for your mail server.
- The corollary of this is that people building mail servers seem to want to use shit-tastic non-ACID databases for this sort of arrangement, such as the Access-based Jet engine (older versions of Exchange), or MySQL. I do not want my mail thrown away by accident.
- Even if all of the above isn’t true, the IMAP server will, at a minimum insist you use the author’s conception of the One True Way of storing mail on a disk, which will at best violently clash with at least one user, and preferably with the majority of MUAs and MTAs out there.
You can see why I actually put this off for a while, because all of the answers were the equivalent of deciding that the best way to impregnate someone is via the medium of lead shot.
Then I found Dovecot. The clouds parted. The heavens shone. Angels descended, trumpets sounded, and so forth. Dovecot actually resolves all these problems. It runs like a cut cat. It accelerates access with indexing. It provides server-side IMAP features such as sorting. It supports SSL. It supports every mail spool format I need to care about. It drops in, it picks up where uw-imap left off, with pretty much zero hassle.
I was gobsmacked. It just works. In a real sense, not in an Apple “oh look at me where did I put that security update, oops now your laptop’s overheating due to thermal management bugs” sense.
I like dovecot, and so should you.
[1] For values of frowned which include “sacking”.
[2] If you have always wanted free SSL certs which are recognised by modern browsers and have never wanted to pay for them, check out StartSSL.
It only supports all the mail spool formats you need to care about because I dropped the requirement to support MH, which is of course the One True Mail Spool Format.
Everyone else are just splitters.
This is why it only sucks less, as opposed to be splendifferic. Losing mh was a less awful option that the competitors. Or retaining uw-imap’s performance.
(I find it interesting to consider how many of the points some other things I looked at touch on; Zimbra looked interesting until it turned out I needed MySQL, that installations assumed they’d be special snowflakes with their own LAMJ stack, IMAP-only, etc, etc, etc.)
Another nice feature: Dovecot speaks IMAP push, as I discovered when pointing a new phone at it.