One Folder to Rule Them All

Six or seven years ago, I watched Merlin Mann’s Inbox Zero talk on YouTube, and his GTD-based, common-sense approach to email profoundly altered my own approach to email. One of the specific takeaways for me was that it would benefit me to stop taking the time to file each message into one of the many nested folders I’d created, and instead simply file all processed messages into a single Archive folder. That seemingly simple change saved me time and the mental energy needed to decide which folder each message belonged to while processing email, and it also saved me the step of trying to remember—or re-determine, in a reinvent-the-wheel scenario—which folder to start looking in when trying to find a particular message later on. But it also did something unexpected: it allowed me to take fuller advantage of good email apps—specifically on iOS—by using swipes and keyboard shortcuts.

These days, the most popular email apps have been influenced by Mann’s Inbox Zero idea—at least in some ways and to varying degrees of faithfulness to his original conception of the term—and one of the results of that is that these apps tend to be built around the ability to archive your email messages quickly. For example, the app I’m currently using to manage my email, Spark, allows you to designate which folder will serve as the Archive for each of your email accounts. Once you do that, you can quickly tell the app to archive any message in your inbox in one of two ways:

  1. Set up a swipe gesture in Spark’s settings to archive messages with a simple swipe left.
  2. Using an iPad with an external keyboard, simply hit command-delete.

Now, Spark is not the only email app to offer this kind of feature, so whichever app you’re using will probably have a quick, built-in way to archive messages. This is one case where choosing the less mentally-taxing method of doing something not only results in being more efficient but also in working with the grain when it comes to email apps.

My advice? Try it. Try using only one Archive folder for storing your emails, and try using keyboard shortcuts to move your processed messages there. Who knows? You just might like it.k I know I did.

Run Custom AppleScripts in MailMate

Update (2018-02-15)

I discovered today that the bundles behavior of MailMate has changed since I wrote this post. All the bundles you could enable in the app’s preferences pane used to be installed with the app. Now, however, the bundles are downloaded and installed from GitHub when you enable them in the preferences. (See this post from MailMate’s developer for more information.) I haven’t yet figured out how to work around this as a non-developer, but if I do, I’ll update this post further.


Overview

Goal: In addition to recurring tasks that I need to do on a regular, ongoing basis, there are other sets of tasks that I need to do on a recurring but non-regular basis. For example, whenever a family begins a new adoption and sends us the information on the child(ren) being adopted, there’s a series of tasks that I need to do in order to get things rolling for them. This can happen at any time, and in order to make sure that I don’t miss anything for any child’s adoption, I’ve created an AppleScript that adds a new project to Things whenever I get that email. That’s an AppleScript that I want my Mac’s email client to trigger automatically.

Problem:MailMate doesn’t have an easy, built-in way to trigger a custom AppleScript. This is one thing—quite possibly the only thing—that Apple’s Mail.app does more easily than MailMate. But don’t despair. There is a way to do this with just a few minutes and some careful attention to detail.

Solution: For each AppleScript that you want to run, you have to create a custom bundle in MailMate, which isn’t nearly as intimidating as it might sound, even for a non-developer like me. In fact, I still don’t know how to define a bundle or properly describe it to someone else, but that hasn’t stopped me from successfully creating about a dozen of them. Let’s get to it.

Set Up Custom AppleScripts for MailMate Rules

  1. Go to ~/Library/Application Support/MailMate/Managed/Bundles and locate the Things.mmbundle file. I used the Things bundle as a template because I wanted to set up rules for my inbox that would create specific tasks and projects in Things based on certain criteria. (More on that in a future blog post.) But, since these tasks are created by AppleScript, you can use this bundle as a way to execute any other AppleScripts you might want to have MailMate execute automatically.
  2. Duplicate the file in the Finder, rename it, and open it with a text editor. I used TextWrangler, and it worked great for this. Whatever you do, though, do not open the original version of the Things.mmbundle file, because that, at the very least, will serve as your template for other custom AppleScripts in the future.
  3. Open the Terminal app. You’re going to need to generate three separate UUIDs for this by running the simple command uuidgen. Go ahead and run it three times, and then leave the Terminal window open so that you can copy those UUIDs and paste them into the bundle at the appropriate spots.
  4. NPW MailMate Bundles 2.png
  5. In the Add With Summary section (see sidebar), change the UUID near the bottom of the code with the first UUID generated in the Terminal.
  6. NPW MailMate Bundles 3.png
  7. Do the same thing in the Add.mmCommand section, using the second UUID generated in the Terminal.
  8. NPW MailMate Bundles 4.png
  9. Make the same change in the info.plist section, using the third UUID generated in the Terminal.
  10. NPW MailMate Bundles 5.png
  11. In the info.plist section, also be sure to change the name of the bundle. This is the name that will show up in the Command menu in MailMate. If you don’t change it from Things.bundle, MailMate will only list one Things bundle but won’t know which one to trigger. So be sure to follow this step.
  12. Save the new text bundle.
  13. Relaunch MailMate.
  14. Set up your mail rule for your inbox, and enjoy the rush when your AppleScript is triggered by an incoming message and your Mac does precisely what you wanted it to do.