For the past few weeks, I have been testing various email clients on Ubuntu 16.04. I have been using Thunderbird for a while now and was pretty satisfied. Thought that there might be better options available. These are my findings.

Update (08 May 2018): I have decided to write an update of this article due to its popularity so far. I’ll keep you posted with my honest findings. I don’t have any involvement in the project (other than a small code contribution).

# Preamble

I have three e-mail accounts that I use constantly: Google GMail, Office365 (Microsoft Exchange) and plain old IMAP/SMTP. All these can be configured as plain old IMAP accounts in the end, but I prefer my GMail setup with OAuth2 and with contact support. Same goes for Exchange.

# Thunderbird

I am an old Thunderbird customer, but I still have a few problems with it:

• NO real two factor authentication for OAuth 2. This has been improved in recent versions of Thunderbird by adding a browser sign in for Gmail… If you look at their KB page, this is still causing problems to some people…
• NO exchange support. I know that the purists will shout blasphemy at me, but I am pretty sure that many businesses use exchange servers for they daily activities. There is nothing wrong with this protocol. I agree that most EAS servers offer IMAP and SMTP enpoints for compatibility, configuring this manually is so tiring …
• For calendar support, Lightning is still a hobby project. I have problems occasionally with the Google calendar provider and exchange is extremely poorly supported (see the endless forks and wars of Github repos: Ericsson, ExchangeCalendar, etc).

# Evolution

Good old Evolution. Now… The look is a bit dated. There is not much to say about this. It just looks like an old Outlook. I know I should not complain about this because: if it’s not broken, don’t fix it, but I don’t like command line web browsers either, so call me crazy…

Other than look, I really don’t have big issues with it. I don’t know much about the exchange support, as my work machine came preconfigured with it and it just works. It occasionally crashes without reason. Or it just believes you are offline, even though you obviously browsed the internet to find the force online flag:

  evolution --online


Even the fact that you can force evolution to be online makes me laugh. On the bright side, it has calendar and address book built in.

# Geary

Geary promises a modern design (apple like) with a great user experience.

In practice, it misses many features:

• no longer supported by the original authors
• no OAuth 2 support. No plugins or extensions are provided. This is mainly because the product was not developed in a while and has plenty of bugs still open. You will have to create an App password on Google.
• no exchange support. You need to use IMAP or SMTP.
• no calendar App. You can install a separate calendar App called California, built on top of the Evolution backend. California regularly crashes unfortunately.
• random crashes, sometimes while sending an email.

I have been using it for a while and it’s a great App, but without bug fixing and support it becomes annoying after using it for a while.

# Mailspring

Now I am entering a different category. All the previous options were native Apps. This built on an Electron stack. It is in fact a web App, packed into a native bundle. If you don’t mind to use a bit more resource for your favourite Apps, then this should be all right for you. I already use Slack, Atom and other Electron-based tools, so I don’t see this as an issue. Plus, when the UI is not showing, the resource consumption is minimum. While idle, Mailspring uses less memory than Slack or Atom.

## What is Mailspring?

It is a fairly recent addition to the e-mail world. Maybe you’ve heard about Nylas Mail. It was a social email client much beloved by the community, but:

Nylas Mail was initially released and open-sourced in early 2015 and was maintained by Nylas until Spring 2017. While Nylas no longer supports Nylas Mail, you can download the latest release or build it from source.

There is the Nylas community build and… Mailspring, which is maintained by Foundry 376. They are a small web development company, so be nice when you post a bug.

## The Good

Mailspring’s design is amazing. It’s what you expect from an App in 2017. It has full support for themes, plugins and a great default package. I did not feel the need to install anything outside the defaults.

I did some customisations, such as:

• disabled the image auto-load. In my view, loading email images should be done only from trusted sources.
• change the default signature (replaced it with an empty one). I think this should be made clear somewhere that Mailspring places a small message in your signature if you don’t have any.
• changed the main view to the two panel split.

And that’s pretty much it. Everything else I like as it is.

Update (08 May 2018): All the spelling issues presented in this section are solved now.

The only issue that makes me disagree with Ben & co. views is the auto-correct. Mailspring uses a language detection feature and then downloads the dictionary considered appropriate for the detected language. This does not work for languages with very close spellings (but different), such as US English vs UK English vs AU English. Apparently, this is causing some issues with Ukrainian and Russian as well. Knowing how language detection tools work, it’s not a surprise that language variations are not detected properly. While I agree that this is not a big issue, it also annoys some users. If spelling is important to you, for now, check your spelling somewhere else and then paste the message into Mailspring.

## The Ugly

Update (08 May 2018): All the performance issues presented in this section are solved now. With the new snap version, I am extremely satisfied with the performance and stability of the client. I’ve been using three different accounts (Gmail, Office365 and IMAP), all without any glitch.

Mailspring uses a new email sync engine (mailsync). This is supposed to be faster, better and consume less memory. In practice, it’s been a nightmare to some users. I perfectly understand that working with IMAP servers is extremely tricky sometimes (I know from first hand experience), as the severs interpret the standard differently.

Mailsync uses mailcore2 as the core library to implement all the hidden protocol details and extract a html formatted message, it still has to deal with servers not replying correctly (invalid email counts, etc.).

With the latest release, most of the generic issues are fixed, but there are still some with specific providers. Unfortunately, there is no workaround if you experience these issues. You’ll have to remove the buggy account or try to reset your mail cache and hope that mailsync does a good job on a fresh sync.

## Snap it

Mailspring is one of the first commercial customers that adopted snaps. I was a bit reluctant at first, because I thought we don’t need another package option, but … I have to agree that I was wrong. I sure that snaps have their issues, but the overall stability of all the software I am using increased. I haven’t had a Skype and Mailspring crash in days.

# Conclusion

I love Mailspring. With all its issues and glitches. Apart from the sync problems, I haven’t had any issues blocking me or preventing me to use the client for a long time. I switched my work machine to this as well and so far I’ve been a happy customer for the last month.

Update: I have been using Mailspring for 6 months now and I can’t go back. I am not sure what other options are available for MacOS and Windows, but I am pretty sure I’ll be using Mailspring for those as well.