It's been over a year now that I've been working on my personal email server from hell project. Let's pretend you're a fairly large company, you've got some reasonable sounding requirements for email: you want every employee to be able to check and send email from their work and home computers and their phones and tablets and in a pinch a web interface. Once they read an email on one device it should be marked read (but still visible) everywhere, same for sent mail. Spam should be minimized and viruses in attachments should be caught and stopped. Email users should be "virtual" (an email address doesn't mean they have a real login account on the email server). Oh, and all of this software should be free and open source. Sounds reasonable, right?
I've been working on setting up just such a server in my house. There are a few popular software options to build all of this and some popular recipes to configure all of this (there are a LOT of pieces involved). So first I started off with the recipe at http://flurdy.com/docs/postfix/ and it seemed to be going so well. Then I discovered that a bug in the email software in Android didn't play well with some assumptions baked into the Courier IMAP server used in the recipe. So I started looking at an alternative IMAP server named Dovecot, but couldn't find instructions on how to do the virtual users part. Then the new version of Android fixed the problem so I thought I was in the clear and came so close... but, I have one more requirement:
A user should be able to set up mail sorting rules so that for example email from Facebook should go to its own mail folder, and these rules should work on the server so that it doesn't matter where you check your email from, email is always sorted nicely. Again, seems reasonable right? Except that this seems like a new idea that almost nobody has thought about yet, and that recipe or the software it uses just can't do it, there is a package named maildrop which kinda does, but it doesn't work nicely with virtual users. I thought I was at a dead end.
So just recently I came across a new recipe at http://www.exratione.com/2012/05/a-mailserver-on-ubuntu-1204-postfix-dovecot-mysql/ It's a new recipe and it uses the dovecot IMAP server. It still doesn't do the email sorting and when I asked the author he hadn't thought about it and it sounded hard. But just a few days ago I heard about Sieve which is an addon that seems to add that sorting ability and it plays nice with Dovecot. The only trick is that nobody seems to have written a nice recipe that uses it.
I'm so close to building the ultimate email server for the post-PC era, I just need to figure out the instructions for this last piece...