Mac Brain: Automatically Processing Email with Mail.app
Similar to the way that Hazel can automate moving around files, Mail.app can process emails in your inbox based on rules you set. Rules are often used used to flag messages and move them to folders based on certain conditions, but that’s not very exciting.
Processing email is a problem. There’s a lot that comes into your inbox and you continually have less attention to pay to it. I get a lot of recurring notification-type messages for things I need to do, like an email from my bank letting me it’s time to pay my monthly credit card bill. A thing that repeats with the same input and output is a thing that should be automated.
Routing Emails
Part of automation is setting something and never having to see or
think about it. To make that part happen, I had to route all of the
emails I wanted automatically processed in a separate email account1 so I never saw them in my main
inbox. I set up a second Fastmail (referral link)
account that would be used only on the mini server. Anything I routed to
that email address would be processed. In Fastmail, I can also easily
set up aliases so different to:
addresses would trigger
different things. I could set up
omnifocus@myserveraddress.com
to process
OmniFocus tasks or have emails that go to
alerts@myserveraddress.com
ping my phone2
when important messages come in.
Once I had this new address set up, I had to configure the services
(my bank for example) to send these notifications to that correct
address. About half of my banking services allowed me to set up these
notifications to go to a secondary address and the ones that didn’t had
a unique from
or subject
that I was able to
use server-side filtering to redirect any of those emails coming into my
personal account to my Brain account.
This got me to a place where all of the emails I wanted to automatically process were in an inbox on my mini.
Setting up the Rules
Again like Hazel, setting up Mail.app rules is pretty easy once you
know what to look for. For emails from my bank, I looked at the history
of their messages and checked for a unique address for bill
notifications or a consistent convention for the subjects of the emails.
I wanted to be precise. Doing wildcards to redirect and forward all
emails from @bank.com
or whatever could mean that important
emails I did need to see would get batched into an inbox I didn’t look
at often.
All of these emails had unique conditions which could be passed on to
a specified action, like the from:
containing
billnotifications@mybank.com
or the subject
is
equal to Your bill has arrived
.
We’ve captured the messages, now the fun part: doing cool stuff with boring emails.
Turning Emails to Actions
Once we’ve gotten to this point, we know the specific intention of the email. It has passed all of the tests and we just need to do something with it.
Most of the emails that come into my work or personal inbox I process and capture into OmniFocus. I wanted to be able to automate this step for the emails I could. David Sparks put together this great Applescript to run within Hazel to add actions to OmniFocus when he scans documents that match specified criteria. Sound familiar? We’re basically doing the same thing but the input is an email not a OCR’ed document and the rules are processed by Mail.app and not Hazel.
I have Mail.app “perform the following actions” when it receives a matching email:
- Move it to Archive
- Mark it as read
- And run an Applescript on it
My Applescript is exactly the same as David’s but I’ve added in the
time it was created as the Start Date of the OmniFocus action. To do
this, you just need to add start date:theDate
to the list
of task properties. This helps me recognize new automatically added
actions in one of my OmniFocus perspectives.
Now—all automatically—when my bank sends out an email to let me know my statement is ready, it filters into my Brain email account, gets checked through Rules, and when it matches, it adds an OmniFocus task to “Review and Archive my bank statement” or create two separate tasks like “Review credit card statement” and “Pay off credit card balance”.
This rule is set up to run a “Create OmniFocus Task” Applescript, but you can set it up to trigger any Applescript you can think of.
The Point of Automating
Sure, it’s cool that a computer can check your email for you but the value comes from reducing the amount of time and attention you need to be spending processing repetitive items and reducing the friction of getting something into your outboard brain. Not only is the action being put into your outboard brain, but an outboard brain is doing the processing now too. In a lot of cases it works to set repeating tasks for something like bills but I find it more direct to have the inputs of the notifications and the action align rather than scheduling a task and have it start a couple days earlier than the bill is available because of a long weekend or something. It’s all small things, but the reduction of the attention required to process along with being able to rely more on your outboard brain because of its ability to capture and process things without your input is what makes the automation worth the setup investment over time.