Core functionality - overview

The Claws-mail client is a GTK+ application. There are ports for many Linux distributions, FreeBSD and Windows. It looks is dated, but what counts the most to me, is the mailing functionality which is one of the best out there (free or paid).
For example, if you have a large mail box, with 10k emails, the cache takes reasonable hard drive space about 1.4GB. Compare that with same mailbox in Mozilla Thunderbird - it has more than 4.0GB! (yes, there is sqlite but still it is 3x more!).

Mail searching

There are two ways to search for a message Edit\search folder and quick search (a tool-bar between email list and the selected mail body). I think the search folder functionality should have been removed long time ago. Use only the quick search period.

IMAP

Sub-folders are created in a folder/sub-folder style. Everything I tested works properly; not like Thunderbird where I had issues when creating certain sub-folders.

HTML emails

Many mail users still send emails as HTML emails. Even when it has some serious security issues, for example, when loading external context or running javascript, java.

In Claws-mail you have two options how to read HTML email. You can either use Fancy (WebKit) or LiteHtml plug-in (only one plug-in can be loaded at the time). Next the Claws-mail needs to know user wants display HTML messages using the plug-in(s). For that these check-boxes need to be checked Preferences -> Message View -> “Render HTML-only messages with plug-in if possible” and “Select the HTML part of multi-part/alternative messages”.

Email header

Using a default Claws-mail configuration would result into a user not seeing email header within HTML email message. There is an open ticket for such functionality - Display headers in message view when rendering with Fancy, but it remains opened.

A workaround would be to check Preferences -> Message View -> Text Options -> Headers -> Display header pane above message view. The disadvantage is obvious, it takes 2 lines of space from the message view.

Background color for HTML view

The background color and font used differs from the ordinary text based mail messages. A solution is to use .css file to render font family/font color/background color of the message. Some of the HTML messages do not obey the styling by Claws-mail, but usually those are viewable as text.

Some of the HTML messages can be switched to text without any issues. On the right side of the message view you can find an buttons to switch among three views - message/rfc822, text/plain, text/html.

Comparison between Fancy (WebKit) vs. LiteHtml plug-ins

  • Fancy renders the HTML better than LiteHtml
  • Fancy has more options - most of them are disabled due to security reasons. Why would anyone like to run javasript or java on a computer when receiving a mail? Also loading of external contents is disabled
  • Fancy uses old WebKit 2.4.11 (2016) which is now unmaintained. That could pose a security risk. To read more Phasing out webkitgtk2 or the source On Webkit Security Updates
  • The future is LiteHtml, but it will probably take some time before it reaches the rendering quality of Fancy
  • Here is the source code for LiteHTML

Claws-mail issues - fixes are on the way or not yet merged

OAuth2 - Authentication used by Google or Yahoo (probably others)

Currently there is no OAuth2 authentication possible with Claws-mail. The suggested workaround is to use “allow less secure apps” settings. However, Google is currently phasing out this option (others will follow suite). There needs to be solution in the near future:

Possible solutions:

Slow mail folder switching

I found it funny that switching among folders is rather lazy. I’m talking about 10k+ messages in one folder, which takes about 2-3 seconds! There is a patch which addresses this issue, but it has not been review & merged yet. If you want to vote for it feel free to visit Switching folders is slow ticket.

Security

SSL/TLS certificate changes

What I loved about the Claws-mail client is that if the server for IMAP or SMTP changes or generates a new SSL/TLS certificate it properly notifies you about such action. On the other hand, Mozilla Thunderbird totally ignores such change of certificate(s) and does not show any warning to the user.

If the certificate changes you will get such warning window:

SSL/TLSSSL/TLS Warning Message

Password Managers

There is no real integration with any password manager (keepass, keepassxc, etc.). A workaround is to save the password for each mailbox which should be safe according to the change-log:

Claws Mail 3.14.0 debuts a new ‘master passphrase’ feature. It also makes some big changes to the way it stores passwords, as the official release notes explain:
“All passwords are now stored in a separate file, (~/.claws-mail/passwordstorerc), and use a stronger encryption than previously. ​
Existing passwords are moved to the new file automatically, in the old format. The new format will be used whenever old passwords are changed or when a Master Passphrase is used. All new passwords are saved using the new format, irrespective of whether a Master Pass-phrase is used or not.”

To have a secure setup using Claws-mail first I suggest saving password for each account within Claws-mail. Then create a master password, which has to be entered every time you start claws-mail. Save this master password to your favorite password manager. For example, I’m using KeePassXC. There I use auto-type to fill out the master password.

Spam

Just a short description of the spam plug-ins, which I want to use. I’ll return to this topic later on, after proper testing.

  • Bogofilter is a mail filter that classifies mail as spam or ham (non-spam) by a statistical analysis of the message’s header and content (body). The program is able to learn from the user’s classifications and corrections.

Bogofilter is supposed to be faster, written in C, than SpamAssassin. It also is supposed to have more false-positives than SpamAssassin. That needs a to be seen during ordinary usage.

  • SpamAssassin uses a robust scoring framework and plug-ins to integrate a wide range of advanced heuristic and statistical analysis tests on email headers and body text including text analysis, Bayesian filtering, DNS blocklists, and collaborative filtering databases. Apache SpamAssassin is a project of the Apache Software Foundation (ASF).

The SpamAssassin is probably one of the best spam solution there is, but I have yet to test it, as I said above I will return to this topic in a one of the future posts.

Customization

Dark Skin - to reduce strain to your eyes

You can have a dark skin possible via gtkrc. There you adjust the font type, colors, background colors for the whole application. You can also replace the toolbar so it will go with your color selection.

For dark HTML email’s skin you need to adjust again the .css file. After the changes some of the HTML emails will still have white background, but those can be easily switched to text view to abide by the dark skin rules

Language used for Claws-mail GUI

Claws-mail reads the language settings from the environment. If you want to use different language than your environment you have to set the environment variable to LANGUAGE=en. (Note: on MS Windows you can it as environment variable for the user variable:LANGUAGE value:en. Other option would be to create a .bat where you will set LANGUAGE=en and then start claws-mail from it. For example, start /d "C:\app_scoop\apps\claws-mail\current" claws-mail

Tray

As for minimization to tray, everything works for me. This feature is completely missing from Mozilla Thunderbird. Claws-mail contains a simple plug-in Notification which can be configured to run the whole application in the tray area (You can have different types of notifications - like icon change, bar notification, pop-up, etc.). I don’t like too intrusive notifications, so I went with the tray icon change.

Spell-check

You can configure Claws-mail to check two languages simultaneously. For me, using English and Czech this is a killer feature.

If you can’t find a spell-checker for your language in the default Claws-mail install, you can use OpenOffice dictionaries!

You just download the Czech dictionary e.g. dict-cs-2.0.oxt. Rename it to dict-cs-2.0.zip. You unpack it and copy out the files *.aff and *.dic (for Czech dictionary it was cs_CZ.aff, cs_CZ.dic) to Claws-mail’s myspell subdirectory. Now, the Claws-mail can use the Czech spell-checker!

Useful links