About this blog…

I am employed by Netnod as head of engineering, research and development and am among other things chair of the Security and Stability Advisory Committee at ICANN. You can find CV and photos of me at this page.

As I wear so many hats, I find it being necessary to somewhere express my personal view on things. This is the location where that happens. Postings on this blog, or at Facebook, Twitter etc, falls under this policy.

The views expressed on this post are mine and do not necessarily reflect the views of Netnod or any other of the organisations I have connections to.

How I manage my email

Lately I have not only got questions how I can handle all email I get, but also seen people more or less give up on the flow of email they get. Based on that I decided to describe how I manage my mail.

My email management consists of a few different building blocks, and each depend on the others existing. Let me take the building blocks one at a time.

1. Storage of email in mailboxes

I use IMAP. There is not any other decent client protocol to use. With IMAP email messages stay on the server side, although one can mirror mail on the client. With use of IMAP one can change the client, access the mail from multiple clients at the same time etc.

Web interface to sieve using RoundCube webmail with plugin

Web interface to sieve using RoundCube webmail with plugin

When email arrives to the mail server, I use filters on the server to filter mail into different mailboxes. This implies that already when I discover new email, they are not in my inbox, but spread all over my storage. The filters are controlled by either procmail (one one server, edited using normal text editor) or sieve (on another server, edited using a web interface). I have maybe 75 different folders I filter mail to (which implies I have the same number of filter rules).

To make this work, one should in the client be able to subscribe to folders. Mail.App that I am using can not handle subscriptions properly, which is unfortunate, but the client still works as it is looking for new email in all mailboxes.

I also mirror all email messages on my local computers. Laptop, stationary etc. This makes it possible for me to read and respond to email when being offline (yes, that happens), and makes searching efficient.

2. Archiving of email

I do not throw away email. Except spam. This implies the number of email messages I have is silly (10-15000 per month). But is very good to have for me. Because of this, I have one special IMAP account to which I move email messages that are more than one year old. Thunderbird do have an archiving mechanism which I like, but it turns even better if one use the Awsome Auto Archive extension. With this extension one can say how often the archiving should happen, what mailbox(es) to archive, and to where the mail is to be moved.

I have the rules set to look at all folders in my “normal” accounts (including sub folders), and move all email messages older than 360 days that are not flagged (see below), to a folder on the archive IMAP account in one folder per month.

Yes, I am throwing away the sorting I have made (see 1 above), and I have friends that want to keep that, but I think it is better to have one folder per month. This gives me one month of sent and received email per folder (the 10-15000), and one year of email messages (~140000 messages in ~75 folders) on my main IMAP accounts.

I do though not use Thunderbird as an email client. I have it running “in the background” and the only thing it does is to archive email twice a day.

4.1. All important email

4.1. Possibly important email

3. What messages to look at?

I have four different ways of keeping track of messages:

  1. Unread messages
  2. Flagged messages
  3. Last year of email sorted in topic based folders
  4. Brute force search over all email I have

I go through unread messages really really quickly. During that process I only respond to few messages. Really few. If an email require more than two seconds of my brain (or five seconds of typing), I mark the message as flagged. Main reason for this is that flagged messages are the ones I have actions on, what I have to do something about (not unread). But more about the process I use later.

4. Virtual folders

To help me finding the messages I am to look at, I use virtual folders extensively. I do not have many virtual folders, but I completely depend on them. The key folders I have are the following:

4.1. Possibly important email (I call this “Brutto”)

All email I think is important. This is created by having a long long list of statements combined by an “or”. I.e. email is in this virtual mailbox if any of the statements matches. The requirements can be based on who the recipient is (myself or mailing lists), the sender (my boss) or anything else.

4.2. Important Email

4.2. Important Email

4.2. Important email

Just because “or” is in use to create [4.1], I have to remove some email messages. For example the ones that already are classified as spam (in different ways). I build this mailbox by including all email in [4.1] but not in various spam and junk mailboxes. To do this, I use an “and” statement as you can see in the figure.

4.3. All unread messages

This virtual mailbox is like [4.2], but with unread messages as a start, and then spam and junk is removed. This way I will have a virtual mailbox with all unread messages in all mailboxes, and this virtual mailbox should be empty.

4.3. Unread messages

4.3. All unread messages

4.4. Unread important email

To find the unread important messages easily, I have a special virtual mailbox for unread mail in the [4.2] mailbox.

4.5. Flagged email

The Apple email client do have an automatic virtual folder for flagged messages, so I did not have to create one for this.

5. How do I read email?

5.1. When reading email I first go through all unread email messages that are important. This by going through [4.4] and either just read the mail, responding to it or flag it.

4.4. Unread important messages

4.4. Unread important email

5.2. When this mailbox is empty, I as a second step look at flagged messages and start taking care of things I flagged.

5.3. In the third step I go through email folders and pick some of them that normally do get large number of messages (like mailing lists) and see whether I have to read any of the threads. Normally that is not the case, so I can just mark the messages as read. That automatically do remove the messages from virtual mailbox with unread messages [4.3].

5.4. In the fourth step I go through all other unread email messages in [4.3], read the mail, set the flag on things that require further action, and just try to empty the mailbox completely.

5.5. Repeat from step one [5.1], or maybe step three [5.3]. In reality in what order I do the steps is not so important. Sometimes I do only work with flagged email, and other times I concentrate on going through unread email.

6. Conclusion

Using this system I have found I can keep track of email that arrives, I catch fast email addressed to me (do not try to get me react to bcc-messages or messages where I am cc:ed), from important people (my boss) or to important mailing lists (our internal mailing list at SSAC). I also have flagged messages I need to take care of, so even if it takes a while, I know what messages I have not acted on. Finally, the archiving makes my normal imap accounts not overflow with old email.