Email is a beast. While I would say that I don't--at the moment--get a huge amount of email, I get enough that if I didn't have a system in place for dealing with the email, it would be completely useless. I've not written about it here, but I have spent some time over the past few weeks working out how to replace a good but faltering system with a much more robust set up. Here's the story:
(Warning, this is really nerdy)
First off this kind of really robust email solution isn't for everyone, and there are a couple of unique factors in my setup that require the extra effort of this system. First of all, I need something that works because I hate the phone. If someone wants to get a hold of me, I'd much rather they write an email than call. If I don't respond to email, people might call, or if I'm feeling overwhelmed by email, I might tell them to call. Both should be avoided. There are also a score of other reasons: I moderate a pretty high volume listserv, I need to send email from several different addresses and names/identities, and I have some pretty specific filtering needs, not to mention the fact that I have a number of pretty old email addresses that require a really powerful spam filter. I'm going to cover both what I used to do, and what I do now.
I *used to*: Collect a number of different email addresses into one gmail account and then check that email with either POP3 or IMAP. Gmail with IMAP was and is a great thing. With it, I could do a lot of in gmail-filtering and then have all of that just show up in my mail program. The problem is that there aren't really good offline imap clients. Things don't sync right. Mail.app can't efficiently cope with new mail that doesn't arrive in the inbox. You have to screw around with mail.app to get the multiple email identities to work. Mail.app wasn't incredibly stable (though it has, to be fair gotten more stable.) Also mail.app's filtering doesn't work splendidly with IMAP.
Having an email program that works consistently and effectively is the key to keeping it under control.
A lot of my problems with this set up could surely be solved by using POP rather than IMAP, but after a year or so with IMAP (and gmail) I feel like the combination of the back up and having this account be useable and web-accessible is really ideal. I promised a post here on backup, and while I also can't get into this here, I'm through with having my own machine be the only copy of important emails.
So what to do?
Filter the hell out of my gmail account so that everything lands pretty much where it would need to so I can find it several months from now. Somewhere on this page is a list of all the funky boolean operators that gmail allows.
Forward email out in chunks (so the lists get forwarded to one place, all of my frequent blog-related correspondents to another, moderation) to different addresses on my web-server that include 15 character random strings).
This is actually a really sneaky way of passing gmail's filtering downstream, and is otherwise a red hearing. I think however, that I could have probably eliminated the number of email addresses at play here by using "plus addresses" and eliminate the next, but it's not a huge deal.
Funnel all these things the forwarded email to a holding email address that automatically deletes everything after a week. This is a short term backup, if I accidentally delete something or whatever.
Rather than use gmail's built in forwarding, I made a filter that searches for another, longer random string in all the email. If it doesn't find this (which I suspect it never will,) it forwards to my "home" email address. Again this isn't a public email address.
Time out, so what we have here. is gmail sorting forwarding two copies of each email to two different addresses, at once. All the email is sent to one address, and the second address depends on how gmail is filtering the email.
Set up procmail locally to filter based on the random character string from the second step.
Do some additional procmail filtering (which I think, as I figure it out, I'll start to do more here, with and use geektool
Read messages with mutt, because it sucks less than anything else
Write messages with textmate
Send mail using msmtp
And that's about it. The getting it setup was the really hard part now all I have to do is use it, and everything lands where it should. I think functionally this is pretty damn good. It might be preferable to get something that isn't in situations when I don't have my laptop with me oraccesable. I read something about using something like rsync to handle mail box delivery. Might git work as well? I'm not sure. But that's another battle for another day.
Onward and Upward!