A few years back I decided to switch from using a free email provider to a paid provider. This decision was driven by several factors, but the primary reasons were privacy concerns, and a desire for an email address with my domain name. I spent some time comparing different email providers, and settled on ProtonMail because they offered encryption at rest without any effort on my part, and they had a nicer iOS app than similar encrypted email providers. Now after several years of using ProtonMail, I am revisiting that decision. My motivations for doing so are as follows.

The Reasons

The primary motivation for my decision to migrate was surprisingly trivial—a prime example of how a small annoyance, repeated many times, becomes a large annoyance. The ProtonMail iOS app, while nice, has one bug that drives me absolutely bonkers: you cannot import .ics files from the app into the iOS calendar. This means that anytime I would receive an invite to an event over email, I’d have to either forward the email to my iCloud email address and import the event to my calendar from another mail app, or open the email on my computer to add it to my calendar (the horrors!). On the surface this seems relatively inconsequential, but as someone who is chronically forgetful of things that I don’t write down, I found it to be a major hurdle to getting appointments and the like out of my inbox and into my calendar. Just that one extra step had a way of causing things to pile up in my inbox and create additional mental clutter. This issue has been brought to the attention of the ProtonMail team multiple times over the years and has still not been solved (see this Reddit post, another Reddit post, and one more Reddit post). Perhaps most concerning to me was the last post, in which they implied the “solution” was to subscribe to yet another ProtonMail service (ProtonCalendar). That sort of response made me feel like ProtonMail was more interested in getting me fully invested in their ecosystem than they were in making their product work properly as a standalone offering, which I found hugely unappealing.

My second biggest reason considering an alternative provider was that the “Plus” tier of ProtonMail’s offering doesn’t offer a catch-all address. Maybe this was just a case of me not understanding how expensive this is to manage, but it seems that almost every other email provider’s entry-level paid tier has this feature. ProtonMail’s entry-level tier is far from cheap ($4.50/month billed yearly), and I didn’t need any other features from their “Professional” tier, so it felt like a big jump to pay another $2/month just for that feature. For a comparison, Mailbox.org (the main alternative I was considering) offers a catch-all address for €1/month. Admittedly their offering is less security-focused, but a ~$3/month premium for said security seems a bit steep for not even offering feature-parity.

In the end, I decided that Mailbox.org would be a suitable substitution. For secure communications I generally turn to Signal over email (since email is not that secure anyways, even when encrypted), so the fact that it is less security-focused was okay for my use case (I’m not up against any state-level adversaries as far as I know). It would allow me to keep my email at my personal domain, use whatever email client I like best, and give me a catch-all address all while saving some money. My next step was to do the migration, which I’ll cover next.

The Migration

Since I was already using my own domain, the biggest hurdle with changing email providers (informing everyone of your new address) was already handled. All that remained for me to do was to reconfigure my DNS records to direct traffic to my new provider, and migrate my email archive.

Reconfiguring my DNS was relatively simple. The first step was to setup my addresses on Mailbox.org, so that when the emails started flowing they wouldn’t get bounced. The process for doing so is outlined in their documentation—I created an alias for the address I do most of my sending from (jordan@jordancrane.me), and a catch-all to handle the inbound aliases that I had configured in ProtonMail (web@jordancrane.me, work@jordancrane.me). Next, I reconfigured my MX record with the Mailbox.org values, and did the same for the SPF and DKIM TXT records, all of which is detailed here. Small item of note: the Mailbox.org DKIM records differ from those of ProtonMail, and are significantly more lengthy—if you’re using AWS Route 53 for your DNS, you’ll need to split the records with quotations, but no line breaks as described here. After using dig and a few test emails to verify that everything had worked I removed all my ProtonMail records.

To migrate my archived emails, first I setup my new Mailbox.org email address in Mail.app on my Mac (you can use Thunderbird or any other mail client, I’m just a default kind of guy). I then used the ProtonMail Import-Export Tool to export all my emails into .mbox files on my computer. Once that completed, I imported the Archive.mbox file into my email client locally, and simply dragged all the emails from that folder into my Mailbox.org Archive folder. Syncing took a while (I had ~5,000 emails in my archive), but eventually it completed, and that was that. If you don’t have a paid ProtonMail account (and thus don’t have access to the Import-Export tool) you can also do this by just dragging the emails from your existing Archive folder to the new folder in your email client. I ran into some issues with this since my email client became confused by the fact that I had 2 email accounts with the same address. If you are taking this approach I would suggest exporting the Archive folder for your existing email before setting up your new email in your client of choice (in Mail.app you can do this by right-clicking on the folder you wish to export). Then remove your existing email address from your client before adding your new address.

And that’s it! I put this task off for a while because I thought it would be a giant pain, but in the end it was only a little bit of a pain. Now I live in a blissful world in which I can import .ics files into my calendar directly from my mobile email client.