A Working Mailbox on the Mac

Page content

The Apple Mail application on the Mac is a fine specimen of a tool made for the 95% and loathsomely inadequate for the remaining 5%. It serves 95% of users 95% of the time. Mail.app works: mail comes in and mail goes out. Occasionally I can even find old mail when I need it. But the pure Mail.app experience lacks automated filing, tagging and grouping of related messages. It lacks gusto.

Fortunately, with a few third party plugins, Mail.app can be a serious email cruncher and make it a 99% tool.1


MailTags, by Indev Software, provides the connective tissue that binds mail to the real world for me. MailTags connects my email to projects, dates and contexts. Basic searching in Mail.app is very good, but with a decade worth of emails and several mail accounts it can be daunting to find a single message.2

MailTags is activated by a click or keyboard shortcut to reveal an input panel. This is where the magic fibers are spun between messages. Emails are tagged with projects and keywords by tabbing through each field. Type ahead completion makes it easy to apply consistent tags.

An aside about tags: I use them sparingly. I prefer large buckets over teaspoons of information. With the right combination of a few tags I can narrow a search from thousands to tens of messages in seconds. Wherever I use tags, I periodically prune back the overgrowth. I try to consolidate where it makes sense. One of the easiest ways to consolidate is to assign items to a context tag and a project tag.

There are a few new tricks in MailTags 3 that go far beyond a simple tag it and forget it. MailTags can now use OmniFocus projects. This is a wonderful little benefit. It means I have a single nomenclature for my projects and it also means that I’ve probably already created the project OmniFocus anyway.

The only drawback to the OmniFocus projects is that they are not color coded in the MailTags and Mail.app interface. With MailTags, emails will automatically receive a highlight color when set to a project. For high priority projects, I will add a MailTags project with an identical name to the OmniFocus project just so I can apply a highlight color when tagged.3 Additionally, only preferred MailTags projects show up in the Mail.app sidebar.

MailTags provides a user configurable tag list (separate from OmniFocus contexts).4 This list is used for the autocompletion of tags but MailTags also allows spontaneous entry of a new tag at any time. It does not need to be in the preferred list. I typically stick to my preferred keywords as discussed above.

By applying a tag and a project label to email I can quickly filter and find related messages. For example, I can easily find all messages from the CriticMarkup project (project:CriticMarkup) that had something to do with code (tag:@code).

All of this meta data also helps to identify messages while browsing. The sidebar displays the tags but is also a quick entry panel for updating or removing the information.


I’m not a big fan of putting emails into OmniFocus unless there is action to take. Most of the time, I just don’t feel like doing something with an email until later. Rather than creating a task in OmniFocus, I can set a tickler date with MailTags and move the message out of my inbox. MailTags will keep track of the date for me.

MailTags tracks the tickler dates and provides a few sidebar smart lists for easy access. Tickler dates are watched, regardless of the mailbox or folder the message is in. That means I can file a message away where it needs to go, but still jump right to it when it is time to deal with it again.

There is good calendar integration with MailTags. While tickle dates are not added to the calendar (I wouldn’t want them in there) there is another option to escalate an email to the level where it does become a calendar item.

An aside about calendars and tasks: Very few tasks make it onto my calendar. My calendar is like a reservation system for my time. If something goes on my calendar I am committing to a very specific obligation of time at the sacrifice of other things. Rarely an email will make it to that level.

From the input panel in MailTags, I simply add a new calendar or task event. Both can be set with reminders and

A task is entered into the default Reminders category defined in the MailTags preferences. Email tasks can be checked off from the MailTags sidebar or entry panel and they are marked as complete in Reminders.app.

Calendar reminders are set in a similar way. For both Reminder tasks and calendar entries, links to the original mail message are automatically embedded.

Tag Rules

Tags can be used in a number of other ways in mail. I’ve already glossed over the most useful: search. Where you can search, you can create smart folders. MailTags creates its own smart folders by default but I have a couple of my own, for example, messages marked with the “@code” tag are all emails where I have sent or received code snippets.

Tags can also be used for Mail Rules. For example, to automatically route messages to specific mailboxes. More on this below.

Commanding MailTags

Here are some of my keyboard shotcuts that make all of this MailTags magic easy. The key to quick processing for me is to get to the MailTags panel and spend as little time as possible messing with the settings.

  • ctrl+⌘+M to open MailTags popover

  • Tab forward

  • Shift+Tab backward

  • ⌘+Return to save changes

  • ctrl+⌘+K to open the simple tag pane then ⌘+Return to save tag and close.

This is quickest way to apply a tag to message and get back to processing.

  • ctrl+⌘+T to tag all messages in thread

This is useful to process an entire group of messages in a thread in one shot.

Mail Act-On

Mail Act-On (MAO for short) is a separate companion plugin for Mail.app (also from Indev) that adds keyboard surfing to mail actions as well as some powerful new mail rule options.

There are a few options in MAO to customize the experience. On of the most useful is the Prefered Folder list.

While browsing my message list, I can hit F5 to bring up the Move to Folder list and simply hit a number key to move the message to that destination.


The real magic in Mail Act-On is in the extended rules and corresponding hotkeys. Unlike the typical Mail.app rules, each MAO rule can be bound to a different hotkey. That makes targeting a specific rule very easy.

It’s the combination of both MailTags and Mail Act-On that make for a super powered mail cruncher. Most of my MAO rules rely on MailTags meta data. For example this is the rule I use to defer messages for later review or processing.

This rule moves the message out of my inbox, sets the background color to something distinct and then adds a new tickle date to three days from the time I triggered the rule. I have similar rules to defer by other various amounts.

An aside about defering mail: I receive very few messages that I feel compeled to reply to within 24hrs. That doesn’t mean that I will not reply or take action on something if I have time, but it means that I have a buffer. Most of my mail has a 3 day buffer and that’s why I set a 3 day tickle date.

I defer a lot. I like to think about each input before deciding on the next action. If I can’t decide on an immediate next action within 5 seconds, I defer it.

Several rules can be bound to the same hotkey and they will all be applied in order. By setting some simple filters I’ve stacked up rules to magically move and tag messages based on the sender.

For example, I have a several “Family” rules that each process a selected message based on the sender address. I bound all of these rules to the same F hotkey. Now when I process a message with that Mail Act-On hotkey, it flows into the correct folder and receives a tickle date or tag as necessary.5

Keyboard Commanding

For quick processing hit F2 twice. This will lock the rules panel open. Click back into the message list and start moving through a the message queue. To apply a Mail Act-On rule, just hit the corresponding hotkey.


I’ve written about MailHub in the past. I only use a few of the MailHub features, but what I do use is well worth the $19 price tag

Managing Threads

I like to use Mail.app with the threaded message view. But this can cause problems with moving and deleting a single message in a thread when I really want to act on the entire group. MailHub solves this problem handily.

I select a single message in a thread and hit ctrl+option+return to file the entire thread in the same folder. MailHub is very good at predicting the destination folder. If it’s wrong, I just hit option+shift+M to get a fodler chooser.

MailHub also adds a really great way to delete messages too. Delete by Sender. Rather than thumbing through a bunch of similar message from the same sender, I can just hit control+⌘+delete and poof! All the messages from the sender are gone.

Reminder Dates

There’s a nice reminder feature in MailHub too but I don’t really use it. I prefer the MailTags tickle dates. MailHub automates the process of creating a calendar reminder from an email. It has some very nice date entry options, such as “Next Week”. MailHub also adds an editable description that includes the email text. I can see how useful this might be for someone.


I like my task management system. I like it so much that I don’t want to dump a bunch of emails into it. I prefer to keep my email where I need it and most of the time that’s in my email application.

I also like to have spare time do things like write this article. Every minute I waste on email is a minute I wish I could get back. That doesn’t mean I need to wait in an 800,000 person virtual line for a new email app either. I have some great tools right here on my Mac that fit my current system.

If you are working in Mail.app on the Mac, then you probably would like Mail Act-On and MailTags by Indev software. If you like to delete and move a lot of messages with a single hotkey. You’ll definitely like MailHub. I can’t imagine Mail without any of these.

MailTags | Mac | $30

Mail Act-On | Mac | $25

MailHub | Mac | $19

  1. If you’re on Outlook most the day, like I am, Mail.app still feels like a dream. Outlook is a travesty of inhuman punishment levied against the weak that do not control their infrastructure. Suck it, Outlook. ↩︎

  2. To save everyone the effort of sending Gmail endorsements: I do not like Gmail. I don’t really like the workflows in Gmail and I really don’t like my email being indexed outside of my purview. ↩︎

  3. Colors are only displayed in Apple’s Mail app for the Mac. They are not carried over to other applications or iOS. ↩︎

  4. I typically prepend my tags with the “@” symbol. It’s a long story. ↩︎

  5. Yes, I’m that big of a jerk. I actually defer email from some of my family by default↩︎