Mail.app GTD Perfection
Update (4/12/2008): Since upgrading to Leopard, I still use the IMAP folders, but no longer use MailActOn, and the method for archiving messages has changed (see Mail.app’s Help for details)
Update: How could I write such a long post and forget this? Sheesh! A big thanks to Leslie for helping me realize the sad state I was in, and for pointing me to various resources that I utilized in making this change. In particular, Hawk Wings and 43 Folders, which gave me a myriad of ideas to sift through in coming up with What Works For Me.
My day centers around email. Just about every action I take is predicated at some point by an email conversation one way or the other. I’ve traditionally been a non-complicated “inbox” guy. I finally had enough when I stopped while searching for an email to notice that I had over 9000 emails in my inbox. That’s not 9000 emails that I recieved, but 9000 emails from among roughly 27,000 that were considered important enough to not delete.
I desperately needed to finally write some Rules, use some Smart Mailboxes, or something. I wanted my inbox to be empty when I had read and either filed or deleted the Offending Intrusion. I wanted to assign importance or tag an email in some way that would help me organize where I spent my attention instead of feeling like I needed to act immediately on an email as soon as I read it. While I’m at it, why not finally switch to IMAP so I can sync my email between my G5 and Macbook? Every other aspect of my computing is built around synchronicity, why is my email left out?
And wouldn’t it be cool if such meta-tagging of emails would also automatically sync and retain their context between the two machines? I will demonstrate how I accomplished all of these things with Mail.app. It’s worth mentioning that figuring this out on my own took the better part of an entire day, so it’s a lengthy read, but well worth it. And since you have step by step directions, it will go smoothly. But unlike many major workflow changes where there is a “breaking-in” period of getting used to the new things, this is so spectacularly perfect, that it became second nature after only 2-3 emails. Seriously.
Here’s our overview of what we will accomplish:
- Archive old emails in an organized way in an open format that you can still search just as easily as if it were in your inbox
- Safely and easily switch an account with which you have tons of email from POP to IMAP
- Incorporate a simple Tag-and-Go workflow to emails
- Make all of the above work across multiple machines, instantly
Archiving Existing Email
Decide first how often you need to archive email. I’m content with a few thousand messages being in the application at a time, and I’m more concerned with convenience of finding old emails. So I decided that for 2004 and 2005 I would just archive the entire year, and for 2006 and going forward, I will archive every six months. Whatever works for you, just modify the Smart Mailbox filtering that’s described below. The basic idea is:
- Create a folder on your machine that will be included in your regular backup routine. (You have one of these don’t you? Plug: SuperDuper!)
- Create a Smart Mailbox to filter email by date. One for Received, and one for Sent.
- Create regular ole’ “On My Mac” Mailboxes named how you would like the archive to be named, one for Received, one for Sent.
- Move your messages found by the Smart Mailboxes into the static Mailboxes.
- Drag and drop your static Mailboxes into organized folders on your computer from Step 1.
- Delete the static and Smart Mailboxes created in Steps 2 and 3.
- Breath relief!
Archive Folders
My Documents folder gets nightly and weekly backups, so the archives will be safe there. I created a folder named “Email Archives”, and subfolders inside that for each year. The image below shows the final results, including the .mbox files when the process is complete.
Create Smart Mailboxes
Here are shots of the rules I used for one account’s archive for the first half of 2006. Note that I’m selecting the “Koru Productions” Inbox in the first Smart Mailbox for received mail, and “Koru Productions” Sent in the second, and the second also has “Include messages from Sent” checked.
Create Static Mailboxes
For each Smart Mailbox you made, create a static Mailbox. They will show up in drop-down lists under the “On My Mac” drawer. You have to create a static mailbox so we can actually moving the email out of the Inbox. After you have them created, select all messages in the corresponding Smart Mailbox, and drag and drop all of the messages to the appropriate static Mailbox. Twiddle your thumbs as the thousands of messages get tossed around.
Archive the Messages in MBOX format
A mostly unknown feature of Mail.app is its ability to export a Mailbox into the everything-reads-it MBOX format. Perhaps it’s the glaring lack of an “Export Mailbox” menu option. But in true Apple tradition, just drag your Mailbox to the folder on your drive that you wish to export to. That’s it. Drag the Mailboxes from Mail.app to the appropriate folders you created in Step 1. When the copying is finished, you may now delete the Mailboxes and Smart Mailboxes that you created for the earlier steps. Really, no fooling. If you made a mistake and need those messages back in Mail.app for some reason, just click File / Import Mailboxes…, select “Mail for Mac OS X”, point it to your Email Archive folder that contains the MBOX file, and it will pop it into a static Mailbox just like you had it before it was deleted.
But never fear: Spotlight will still find the messages just fine from these files, by the way, and they will open in Mail.app just like any other message to do with as you see fit.
Switch from POP to IMAP
This step can feel a bit daunting. First, because Apple’s IMAP implementation is slightly different than other applications, so if you set it up without knowing some key details, it can feel like it’s not working right. Second, because you can’t have your POP account active or it defeats the purpose of IMAP, working on messages locally instead of the server. But if you delete or even de-activate your POP account, all of the messages you did not archive will suddenly be unavailable. So we will:
- Prepare our POP messages for use with IMAP
- Delete the POP account
- Create the IMAP account, and set it up properly for Mail.app
- Get our old POP messages into our IMAP account
Prepare POP Messages
This step is simple. Create two static Mailboxes, one for Received and one for Sent. Select all of the messages in the POP account’s Inbox folder, and drag and drop them to the Received Mailbox. Select all of the messages in the POP account’s Sent folder, and drag and drop them to the Sent Mailbox.
Delete the POP account
After you have successfully copied the messages, delete the POP account. Yep, delete it.
Create the IMAP account
Create the new IMAP account with whatever settings your ISP / hosting provider uses for IMAP. The default settings for everything else in Mail.app should be fine.
Wait, what the heck is this @ symbol doing here, and these ill-placed folders? Your drafts, sent, and trash folders are stuck under this account’s submenu. This is where most people poo-poo Mail.app’s IMAP implementation. Here’s the secret. Select the folder, let’s say the “Trash” folder, or “Deleted Messages” or whatever your IMAP account uses for that context. Click Mailbox / Use This Folder For, and select “Trash”. Boom. The folder slides into your application Trash folder. Do the same for Sent, Drafts, etc. Whee! Now it all works along with the rest of your accounts like you’d expect it to.
Import old POP messages to the IMAP account
If your POP account left messages on the server for X number of days, your IMAP Inbox and Sent folder will already have messages in them. To avoid duplicates during this step, you can either note the date and only copy the messages prior to that date, but I find it much easier to just select all messages in the IMAP’s Inbox and Sent folders and delete ‘em. After you’ve done that, select all messages from your static Received Mailbox you created in Step 1, and drag them to the IMAP’s Inbox folder. If you’re like me, and that was still over 2500 messages, you might want to go make a snack. When that’s finished, do the same with the static Sent Mailbox. When both are completed, you can delete the temporary static Mailboxes. And you’re good to go. The switch to IMAP is complete (safely!), messages intact, and folders behaving and living like they would for any other account.
Incorporate Tag-and-Go Workflow
Ok, so you’ve archived your old emails, switched to IMAP, but still have thousands of messages in your Inbox. Your mail is now synced nicely between any number of machines, but instant reaction to email is still controlling your day, and you are no more organized. Enter two Mail.app add-ons from indev, one of which is open source donationware, the other is currently in free public beta, but will need to be purchased when it is fully released for $30 ($25 if you pre-order, and believe me, you will).
After installing both add-ons, we’ll:
- Create Projects in MailTags
- Create Folders in our IMAP account corresponding to the Projects
- Create triggered action Rules that Mail Act-On will use to give us our Tag-and-Go workflow
Create Projects in MailTags
Open your application Preferences and you’ll find a new section for MailTags. You can fiddle with the options later to get it behaving exactly like you want, but for now, click the IMAP tab, give your machine a descriptive name in the “IMAP Client Name” field, and set “Check all IMAP mailboxes for new tags” to either “When starting Mail” or “When checking for new mail”. Since my computers always have Mail.app running, I have it set to check for new tags when checking for new mail.
Now click the “Keywords and Projects” tab and create Projects that you will use to sort your email into actionable categories when it comes in. I don’t need levels and heaps of different options. I just wanted something to categorize email as something that needs immediate attention, something that can wait, and things that are done or require no action. So I created three projects: “Action Required”, “Wait”, and “Completed”.
Create IMAP Folders for Projects
Create new folders to correspond to your projects. You do this the same way you create static Mailboxes, with the “New Mailbox…” menu command. When the New Mailbox dialog comes up, in the “Locations” drop-down menu, make sure you select your IMAP account, and it will automatically create remote folders for you.
Create Triggered Action Rules
Ok, everything’s in place, so open your Preferences again, this time navigating to the “Rules” section. Create a rule for each Project that you made. The rule will mark it as part of that project, move the message to the appropriate folder, give it a colored background (optional), or anything else that you’d want. Here’s an example of my Rule for “Action Required”.
Notice that the Rule’s description is very important and determines what keystrokes you will use to trigger it. The format is:
Act-On: <key> | <description>
After you have all three rules set up, give it a test. Select a message in your Inbox, hit the Act-On hotkey (` by default), and the menu will come up with your defined Rule actions. Hit the corresponding key you assigned to invoke the action. For me, ` 1 is “Action Required”, ` 2 is “Wait”, and ` 3 is “Completed”.
When they are all working to your satisfaction, go to your Inbox, and select the messages en masse. In my case, I wanted to start with everything as a clean slate. I had a couple emails that I pulled out as “Action Required” and then I simply selected everything and invoked the “Completed” action Rule. Moments later, I saw this glorious image:
The final step is to duplicate your Projects and Rules on other machines that you will use to access this IMAP account with. MailTags allows you to Export and Import the projects list, but you’ll need to manually recreate the Rules for Act-On. Both of these add-ons go much deeper in their abilities, like creating iCal items automatically, but Tag-and-Go is really all I need it for.
Conclusion
I can’t believe how instantly I adjusted to this workflow. I still satisfy my unshakable habit of reading emails the moment they hit my Inbox. But in place of actually taking action on the Email, I file it. It still feels like I’m acting on the email immediately, so I don’t have the nervous twitch in the back of my mind of unfinished emails. This way, I only take actual action on emails immediately if it’s truly necessary. The others get organized and marked in appropriate folders, which I can peruse when I have time or actually need to. And when I’ve acted on an email, a quick ` 3 moves them into my Completed folder, where they happily await a future search, or six months from now, the Email Archives.