MailMate

It took me a few days longer than I had hoped to get started, but here’s the first post in a new Favorite Things category celebrating #IndieSupportWeeks.

First up, is the incomparable MailMate by Benny Kjær Nielsen. It’s “the email client for the rest of us”.

Anyone out there remember Email init? Which then became Letters.app? It was a project started by Brent in January 2010 to be

an email client that actually meets the needs of developers and professionals who rely on email, folks who type for a living.

If memory serves, and if Twitter would get their dumb act together and just show me this timeline in damn-chronological-not-algorithm-optimized-order, it looks like Gruber took over leading the project along with Gus as technical lead. (And Brent being the honorary drink-buying chairman.)

I’m not sure when exactly the project died. The last tweet was February 23 of that same year. And the last real web mention about the project I’ve been able to find is Brent doing a mighty good deed by auctioning off the domain name for App Camp For Girls.

We can all dream about what could have been: a truly Mac-native email client for power users. Or, you could just use MailMate right now.

MailMate is a glorious, configurable, ultimate-nerd-dream of an email client built just for macOS. I first discovered it back in 2013 when Benny did an Indiegogo campaign to fund full-time development of the app. I was more than happy to throw in for a license key of my own to help keep the project moving forward.

I’m thrilled to say that six years later, MailMate is still going strong. I use it every day in conjunction with Fastmail and SaneBox to give me email super powers.

Why is MailMate so great? A lot of folks I’ve recommended it to (ok, forced upon, really) said “Eeeewwwww” when they tried it. And I’ll be the first to admit it’s not the prettiest app, but it does feel at home and serviceable on macOS. And then, of course, it does have a hell of a learning curve for an email client compared to most others. But the killer feature?

It just fucking works.

And believe me. I’ve tried every single email client for Mac and iOS – paid apps, free apps, subscription apps, apps from small companies, and apps from giant corporations. There are exceptions, of course, but most are mediocre. Nice to look at, a few clever features maybe, but they all almost universally fall apart when dealing with 15+ years of emails unless they rely on a server-side component to do the bulk of the work. And in 2020, is asking a piece of software to handle a few gigs of text and a ridiculously complicated networking protocol really that difficult?

Actually, yes, yes it is that difficult. I can attest to that based on the six months I lived off of a disaster of an iOS email client I wrote and suffered through myself.

So I have the utmost respect and amazement for just how incredible a job Benny has done with MailMate. In a single app, he has

  • Built the most stable email client I’ve ever used
  • Built the fastest email client I’ve ever used
  • Built the most powerful email client I’ve ever used
  • Built the nerdiest email client I’ve ever used

If you can just get past the initial configuration and learning curve and join the Religion of Plain Text Email Composition, you’ll find a desktop email app that wipes the floor with the usual competition.

The whole modus operandi of MailMate is its use of smart folders / searches / filters / etc for reading your email and plain text for composing messages.

MailMate only allows emails to be written using a plain text editor. It is important to understand that this is a feature of MailMate. It might even be its most defining feature.

Plain text is whatever text you can write with your keyboard. This means that you cannot visually emphasize words, create outlines, create links, and insert images within the text editor itself, for example, by clicking buttons. Instead, you can (optionally) use the simple Markdown syntax. This is then automatically converted by MailMate to HTML which is the (unofficial) standard for rich text emails. MailMate automatically shows you a preview of the email and this is what most recipients of your emails are going to see.

I’ve always been a nerd about the emails I write and have adamantly refused to send HTML email unless absolutely necessary. I totally understand the need for businesses (like mine) to send styled advertisements (I hate it, but I get it), but for a normal person just writing emails there’s no need. Plain text FTW.

As for smart mailboxes

MailMate encourages the use of so-called “smart” mailboxes. These are virtual mailboxes which show messages which belong to a specified set of mailboxes and which match some set of conditions. When handling a new message in the Inbox, the basic decision to make is whether it should be archived or trashed. The rest should be handled by smart mailboxes.

And those conditions can be layered on-top of one another and combined with powerful search strings to create the perfect smart mailbox that you refer to frequently or just to help find a long lost email from a decade ago. Just look at this beautiful example from the help manual:

foo f !smith t (smith or joe)

This means:

Message contains "foo" and From does not contain "smith" and (To contains "smith" or "joe")

And as for searching and filtering by date, holy crap:

And just like best-of-breed Mac apps, MailMate supports a plethora of keyboard shortcuts that let you plow through and triage your email without reaching for the mouse. You can do the usual commands such as archive, flag, delete, mark as read, mark as junk, etc. But then you can also hit ⇧⌘M to bring up a filterable list of all your mailboxes and effortlessly move the current message (or messages). And ⌘T will similarly let you go to another mailbox.

And the keyboard shortcuts don’t stop there. You can also assign them to any of the plugins or 3rd party scripts you’ve installed.

Whoa, whoa, whoa. Did I just say plugins and scripts? Yep, MailMate is wide open for you to run custom actions and perform tasks.

I’ve installed plugins for sending emails to OmniFocus as new tasks, archiving into DEVONthink, and editing replies with TextMate. I even wrote my own plugin that grabs the sender of the current email and opens a browser window showing me that customer’s order history and previous support requests in my backend system.

The final feature I’ll highlight is how customizable notifications are.

For each mailbox (not just account, but any mailbox) you can decide to show a Notification Center alert, a count in the menu bar, or a Dock badge. MailMate supports showing four different dock badges at once (one per corner). You can also choose what information is shown in Notification Center alerts and pick a custom sound. Or any of those in any combination.

I don’t know what else to say except that I love this app so much. And unless I’m horribly mistaken and there is secretly a giant corporation hiding behind MailMate and slurping up all of my private data, MailMate is built by a single developer, which is even more awe inspiring.