Latest posts.

Is OAuth2 Support a Good Thing?

MailMate now supports the OAuth2 authentication method for Gmail (and Outlook) accounts. This is a good thing for MailMate users with Gmail accounts, but I don’t really feel good about it… More about that further below.

How does it work?

A bit simplified, it works like this: Using an embedded web browser in MailMate, the user is sent to a hardcoded Google address (using a secure connection). The user is then asked by Google to allow MailMate to access the emails of the Gmail account. If accepted then MailMate receives a special code. Using this code MailMate can then obtain a so-called access token. This access token is then used when authenticating via IMAP or SMTP. In other words, the real password is never known to1 or used by MailMate itself. It is naturally also not stored by MailMate. An access token expires, but MailMate can obtain a new one when needed without interrupting the user. The access token only provides access to emails and the user can revoke the access at any time on this page. That part is a nice feature of OAuth2.

Note that the above is just one of many ways to implement OAuth2 in a desktop email client — none of them being perfect.

What’s the problem?

The main problem is that OAuth2 requires me to register MailMate with the service provider (Google/Microsoft). If the provider stops supporting other authentication schemes (which is almost true for Google) then the provider has the power to decide which email clients are allowed to access Gmail. I’m probably too old to trust big companies, but it also reminds me of what happened to third party Twitter and (more recently) Instagram clients.

In other words, after implementing OAuth2 I’m now part of the problem. I’ve made it a little bit easier for Google/Microsoft to stop supporting other authentication schemes and if they do that they can hit the kill switch on MailMate whenever they want to. They might even have a good reason to do so since a desktop email client cannot protect its so-called client identity. An evil app can easily pretend to be MailMate when requesting access to an account.

Of course, a niche email client like MailMate doesn’t really matter in the big picture, but it’s not the only email client feeling the pressure to support OAuth2.

What about Apple? Well, iCloud has an authentication scheme similar to OAuth2 (I assume), but it can only be used by Apple’s own email clients. I’m not sure if that is better or worse…

Why support OAuth2?

Google continues to push for the adoption of OAuth2 via the XOAUTH2 protocol. In my opinion, they do that using a lot of FUD as seen in this support article, but that does not mean that OAuth2 is necessarily a bad thing to use. Especially not for something like Google for which a single password provides access to all kinds of services.

And I don’t really have a choice here. When using other authentication methods then Gmail users are often rejected. The exact behavior appears to depend on how long the Google account has existed and whether it has been accessed via IMAP in the past. In particular, I believe new Gmail accounts are rejected by default if not using OAuth2. The best user experience is simply with OAuth2 enabled.

This is what it boils down to: MailMate supports Gmail (and Outlook) and I’ll do whatever I can to make it work well. This already includes working around the highly non-standard behavior of Gmail and the many bugs of Outlook IMAP. I do recommend though that all desktop email client users consider the alternatives.

  1. Since MailMate embeds the web browser itself then this is not strictly true. This also shows that OAuth2 doesn’t provide as much security for desktop applications as it does for web services. 

MailMate 1.9.3 Released

This release is mainly focused on bug fixes and stability issues. The most notable new features are manual ordering of IMAP accounts/mailboxes and OAuth2 support for Gmail and Outlook accounts. Note that OAuth2 is enabled by default. If you have any issues then please report them and note that you can disable OAuth2 in the IMAP account settings. I’ll write more about OAuth2 and why it’s enabled by default in a separate blog post.

Default Email Client on El Capitan

Note: This blog post is relevant for users of any third party email client on OS X.

A few days ago I was contacted by a MailMate user reporting that he could not switch default email client using the popup provided in the General preferences pane of MailMate. It seemed to work, but after a short while the setting was reverted to its previous state. My initial thought was that this had to be some kind of local issue with Launch Services. This is the service taking care of binding file types and URL schemes to applications. In particular, it can bind the mailto: URL scheme to an application and this is what happens when switching default email client.

I was a bit surprised when I realized it didn’t work for me either. We quickly established that it was a problem on El Capitan only and that it didn’t matter if Apple Mail or MailMate was used to switch default email client. Further experimentation revealed that the problem was most likely not related to MailMate at all.

It still seemed a bit unlikely to be a problem affecting all El Capitan users since googling for the problem didn’t reveal much. There had to be some common denominator. Therefore I searched for users not having this issue via the MailMate mailing list and via Twitter. But I didn’t find anyone.

I currently believe it is a general issue on El Capitan. I’m not quite sure why it hasn’t gotten more attention, but it’s probably a combination of the following:

  • The delayed reversion to the previously default email client.
  • Most often the switch reverts, but it appears that some times the switch does stick.
  • The first switch (clean install or after resetting the Launch Services database) seems to always work.

So, a workaround does appear to be to reset Launch Services, but it’s a bad workaround since it resets all of your custom file type and URL scheme bindings. I don’t currently know any other workarounds other than to keep on trying until it sticks. A special case is if you are trying to switch back to Apple Mail. In that case it also works to uninstall your current email client.

I’ve reported the issue to Apple (rdar://23123392) and hopefully it’ll be fixed soon. I won’t do more than that unless someone comes up with a workaround which I can use to make the popup in the MailMate preferences pane work reliably. If you want to experiment then it might be useful to use the command line hack I created for my mailing list post.

Update November 23rd: A user reports that the workaround described here worked for him. I haven’t tested it myself.

MailMate 1.9.2 Released — El Capitan Compatible

With the forthcoming release of OS X 10.11 (El Capitan) it is also a good time for a MailMate update.

This release is compatible with El Capitan, but it also includes numerous other new features, changes, and fixes. As usual, all the details can be found in the release notes.

One new feature deserves extra attention. MailMate now includes a Spotlight importer for .eml files (standard email format). This feature is enabled in the General preferences pane and it allows searching for MailMate emails using the Spotlight interface. It also allows searching emails stored elsewhere which means that a local archive of emails (stored in the .eml format) is now also searchable if MailMate is installed. (Don’t tell anyone, but this works even if MailMate is not registered.)

Note that the answers provided for frequently asked questions in my previous blog post are still valid.

MailMate 1.9 Released

Update April 2nd: MailMate 1.9.1 has been released with a few important fixes. Most importantly, the new Bundles preferences pane was not available for all users.

As explained in the previous blog post I’ve been working on making MailMate a 64 bit application. This change is now complete and it involved numerous optimizations making MailMate faster while also making it use much less memory.

The migration to 64 bit is far from the only thing I’ve been working on. As always, the release notes are ridiculously long. Note that some of the listed features were also available in earlier releases as experimental 2.0 features enabled in the General preferences pane.

The following are just some of the most important highlights:

  • Bundles preferences pane which allows you to enable/disable integration with various applications. Currently, 19 bundles exist providing support for BBEdit, BusyCal, Due, EagleFiler, Evernote, OmniFocus, TextMate, Todoist, and more.
  • Rules pane in the mailbox editor for any mailbox.
  • Toolbar search field activated using ⌥⌘F. Note the search field menu and its options.
  • Correspondent/Identity added as special header transformations. This is, e.g., used for the new “Correspondent” column available for the messages outline.
  • Each tag can be assigned an emoji and a new tags column can be used to display them. Note that ⌘⌃+space opens an emoji keyboard on Yosemite.
  • Enable composer header fields by holding down ⌥ when hitting Return. For example, hit ⌥↩ to add a “Cc” header when focus is in the “To” header.
  • Numerous other new features, changes, and fixes. You really do need to read the release notes to know it all.
  • MailMate should now work with even more buggy IMAP servers than it already did. Remember, good alternatives do exist.

Enjoy the new release and rest assured that I’ll continue to work on improving MailMate.

Here are answers to what I expect to be the most frequently asked questions (with a few replays from previous posts):

  • Any new graphics in version 1.9?

    Only a few details, but I do expect some improvements for version 2.0. In particular since some of you were so kind to contribute to the somewhat discreet mini crowd funding campaign.

  • When is MailMate 2.0 released?

    I don’t know, but it probably matters more to me than to you. I need it for marketing purposes. You need it for the features. The development of MailMate is an open process and you can use the betas if you like (enabled in the Software Update preferences pane). If feeling adventurous, you can even fetch cutting edge test releases by holding down ⌥ when clicking “Check Now”.

  • When are you going to support feature X?

    I have no idea, but if you want to be notified about major new releases of MailMate then you can now subscribe. If you do that then you also get a chance to state your “most wanted feature”.

  • Are you going out of business soon?


MailMate 64 Bit Beta

You might not have noticed this, but MailMate is still a 32 bit application. The main reason for that is not that it is technically hard to switch to 64 bit. The main reason is that memory usage would increase considerably if doing it naively. MailMate indexes a lot of data using data structures with a lot of address pointers. In fact, the first experimental 64 bit build of MailMate used almost twice the memory of the 32 bit build.

It is quite rare that users “complain” about MailMate being a 64 bit app, but there are many reasons that staying 32 bit is not a good idea. One of them is the fact that if MailMate is the only 32 bit app on your system then it uses a lot more memory than you might realize. This is because a 32 bit app triggers the system to load 32 bit system frameworks. On my system, MailMate, Spotify, and SpiderOak are the only 32 bit apps (Google Chrome very recently switched to 64 bit)1. Having MailMate on that list is becoming a bit of an embarrassment.

Now, you might have noticed the lack of beta/test releases of MailMate in the past month. This is because I’ve been working on a 64 bit release of MailMate. Most of that work has been focused on optimizations regarding both speed and memory. It’s hard to measure this in general, but on my system MailMate now launches 2-3 times faster than the 32 bit release and it uses less memory.

The 64 bit releases are on a separate auto-update system and I’ll keep it that way until I’m relatively sure it’s at least as stable as the latest 32 bit release. You can help me reach that milestone by switching to 64 bit now. Initially, it’ll require a manual install of this download. If needed, you can switch back to the 32 bit release.

Although the 64 bit release primarily features optimizations, it also includes a few new features, changes, and fixes. Here are some of the most interesting:

  • New: “Default Account” setting for new messages in the Composer preferences pane.
  • New: Completion of email addresses works for any contacts with a company name (and email address).
  • New: Added perform command to the AppleScript API. Its argument is a list of strings identical to what would be used to define a custom key binding. The frontmost window of MailMate is the target even if MailMate is not in focus (activated). Example: tell application "MailMate" to perform {"toggleFlag:"}
  • New: “Distortion Mode” now also works for HTML messages and attachment descriptions.

If you are new to MailMate then don’t miss the FAQ part of the previous blog post. Related to that, I really appreciate that the (somewhat low-key) mini crowd funding campaign has reached 25% of my initial goal.

  1. You can use the Activity Monitor in OS X if you want to see which applications are running in 32 bit mode (switch to the Memory pane on Yosemite). Click on the header of the column to sort the list. 

MailMate 1.8 Released

The list of changes since version 1.7.2 (r3905) is very long and all the details can be seen in the release notes. Version 1.8 is best described as a major maintenance release including numerous bug fixes, stability improvements, and minor feature enhancements. The following are some of the most interesting new features:

  • New: Redirection of a message using “Message ▸ Redirect” (⌥⌘E) or the redirectMessage: key binding. This opens a special composer window which only allows editing a fixed set of headers. MailMate also adds a $Redirected flag to any redirected messages.
  • New: Support for using an external editor to write emails (built-in support for TextMate, Sublime Text, and MacVim).
  • New: HTML signatures can be configured in the “Signatures” preferences pane. They work in both plain text and Markdown mode. (More details in the manual.)

At the time of writing, Apple has not yet released Yosemite (OS X 10.10), but I do expect this version of MailMate to be compatible.

Here are answers to what I expect to be frequently asked questions (some duplicates from an older post as well):

  • Any new graphics in version 1.8?

    No, but it’s funny that you ask. I have just setup a page in the MailMate store to allow users to explicitly contribute to the purpose of making me hire a graphics designer to change that. Read more about that here.

  • Is a license key bought in the store today also valid for version 2.x?


  • When is MailMate 2.0 released?

    I don’t know, but it probably matters more to me than to you. I need it for marketing purposes. You need it for the features, but the development of MailMate is an open process and you can use new features in the betas/releases of MailMate 1.x by enabling 2.0 features in the General preferences pane. If feeling adventurous, you can even fetch cutting edge test releases by holding down ⌥ when clicking “Check Now” in the Software Update preferences pane.

  • What happened to the crowd funding money?

    I still have most of the (post-tax) money and they ensure that I’ll be able to continue working on MailMate full time for at least another 6 months. Probably much more than that, but this depends on the daily sales and I don’t want to make promises I cannot keep.

Interview: Making an Email Client

Thomas Borowski recently did an interview with me and this is now available in the most recent episode of his “Think, Make, Sell” podcast. This is actually the first interview I’ve given about MailMate and it’s also my first podcast appearance. Time will tell if it’s also my last podcast appearance — it turns out I’m the kind of person who cannot listen to myself and therefore I’m not sure exactly what I said in the podcast. If you have any questions related to the interview then you can leave them in the comments of this blog post.

On the subject of questions, I’m frequently answering the following two questions related to MailMate 2.0:

  • Is a license key bought in the store today also valid for version 2.x?


  • When is MailMate 2.0 released?

    I don’t know, but it probably matters more to me than to you. I need it for marketing purposes. You need it for the features, but the development of MailMate is an open process and you can use new features in the betas/releases of MailMate 1.x by enabling 2.0 features in the General preferences pane. If feeling adventurous, you can even fetch cutting edge test releases by holding down ⌥ when clicking “Check Now” in the Software Update preferences pane. Teaser: The test release from today includes an experimental solution for users having to use HTML signatures due to company policy (which is a problem since MailMate is plain text/Markdown only).

Crowd Funding Roundup


Late October I faced a financial ultimatum. I had to soon start making more money working on MailMate or I would have to stop working on MailMate full time. Before starting to look for other jobs I decided to do a crowd funding experiment primarily aimed at the existing users of MailMate. This was fairly successful since more than $13,000 was pledged, but it was quite a bit less than my (unofficial) estimate of $50,000 needed to be able to work on MailMate in all of 2014.


Nevertheless, I decided to create a “real” crowd funding campaign at indiegogo. I changed the goal to be “MailMate 2.0” which corresponded to a minimum of 6 months of development in 2014. This also allowed me to set a goal of $25,000 instead of $50,000 which I now considered as unrealistic. Using “2.0” in the goal description made it an easier “sell” (I’m a bit worried that it also sets unrealistic expectations).

This campaign was a huge success. The goal was reached within a week and more than $42,741 were raised in total. Even more importantly, MailMate gained a lot of exposure and new users. In retrospect, it has been a bit of a marketing stunt.

The numbers

As noted, the total amount raised was $42,741. The following table shows which perks were selected by the 677 contributors:

Perk Contributors Min. amount Total amount
License key for MailMate 1 60 $25 $1,512
Single user license key 528 $50 $27,046
Two single user license keys 24 $90 $2,111
Family license key 23 $150 $3,450
Site license key (5) 8 $200 $1,650
Site license key (10) 2 $350 $700
Site license key (20) 0 $600 $0
Site license key (50) 0 $1,250 $0
Site license key (100) 2 $2,000 $5,000
Site license key (100) + Bundle 0 $5,000 $0

Note that the numbers do not add up. This is because a contributor can pay a larger amount than required for the perk selected. Also, $3,383 were contributed without selecting a perk (though some times by error).

By far, the most popular perk was the license key for MailMate 2.0. This alone would have been enough to reach the $25,000 goal.

For those interested (probably other crowd funders), there are several fees to be paid. After Indiegogo (4%) and PayPal have taken their share then around $38,100 is left and PayPal takes another 2.5% just to convert to Danish kroner. The remaining amount is about what corresponds to $37,150. Then comes the Danish income taxes. Note that I’m not complaining. Just laying down the facts.

The future

As promised in the campaign, the contributed amount ensures that I can work on MailMate for at least 9-10 months of 2014. It might be more if regular sales are better than they were in 2013. I have no release date for 2.0, but in practice it is not of major importance. MailMate is updated regularly and this currently includes features intended for version 2.0. Right now you can enable preliminary versions of some of these features in the General preferences pane of MailMate.

Now, what happens when/if I run out of money again? Well, then it’s back to square one. I might even try the crowd funding approach again.

MailMate 1.7.2 Released

Only a few hours left of the very successful crowd funding campaign and as a small “thank you” I am releasing version 1.7.2 of MailMate. It is mostly minor changes and fixes, but there is also a few new features:

  • Integration with Calendar/iCal, BusyCal, and Fantastical.
  • Integration with Evernote, Things, and The Hit List.
  • Support for SmartyPants when using Markdown with HTML generation.
  • Drag’n'drop email/mbox files to a mailbox to trigger importing.

The integration with other applications require that you enable the experimental 2.0 features in the General preferences pane of MailMate.

Go to the release notes to get all the details.

Keep Me Posted

Get emails about new releases:
No more than two emails per year.

The Press

Macworld wrote:
  • MailMate’s here to help you bend your email to your will, to tame the chaos of even the most cluttered and sprawling account. And MailMate doesn’t mess around.
  • But MailMate’s true, jaw-dropping power lies in its ability to search and filter messages via Smart Mailboxes.

The Users

Crowd Funding Campaign