- Updates
- 2021-06-02: Hiding addressbook, tasks and memos via gsettings
- 2021-06-24: Clarification on "deleting an email via
DEL
key doesn't work in email list"
This is my report on my migration process from Thunderbird Mail 78.8.1 (64-bit) to Evolution 3.40.1 (by Flathub.org). Except my use-case with linking to emails (via message-ID) and opening those emails, my story should reflect a general business email/calendar management point-of-view.
- Table of contents
- Why Switching?
- My Email-Link Workflow on Thunderbird
- Attempted Migration to KDE KMail/Kontact/KOrganizer
- My Setup Process for Evolution
- Evolution: Setup Process with Flatpak
- Linking Emails with Evolution
- Positive and Negative Aspects of Evolution (So Far)
Why Switching?
The most important question is, why switching in the first place?
Until recently, I recommended to use Thunderbird as a business MUA for typical use-cases:
- composing, reading and retrieving emails for text emails as well as HTML emails
- encrypting and signing emails with OpenPGP and S/MIME
- maintaining a business calendar
- composing and answering appointments
- the most important reason why Emacs-related solutions do not work for me here.
In recent months, I had to face several drawbacks when Thunderbird 78 introduced its own implementation for OpenPGP handling. In short, this did not improve the user experience at all.
Since other things annoyed me for a longer period of time, this was the tipping point that started me to think about a migration to an alternative.
Here is a short list of things that were perceived as negative when using Thunderbird by me:
- Email
- different actions on invoking same keyboard shortcut depending on context (email, calendar) which, e.g., results in no global "compose new email" keyboard shortcut.
- new OpenPGP-implementation v78+ replacing fairly good Enigmail add-on
- Thunderbird stored OpenPGP secret keys without master password protection
- separate key storage to system
gpg
installation: I have to maintain two separate key storages - each OpenPGP key needs to be manually confirmed separately
- multiple incidents in our company where encrypted email was not decryptable on the receiving side
- sign/encrypt moved from directly accessible buttons (Enigmail) to menu entries that are harder to reach
- the OpenPGP key manager which I need frequently for key management is hidden in sub-sub-menu
- Search
- I sometimes can't find emails even though I know pretty exactly what I am looking for
- no search support for searches like "from:somebody subject:topic"
- no stored searches
- no proper support for Maildir as storage format: Thunderbird Can Not Share a Maildir With Notmuch
- no support for different colors in mail list according to user-defined rules (lower contrast for my own emails or emails where I'm not in the list of recipients)
- no built-in support for opening message IDs from command line without add-ons like cbthunderlink
- no support for using an external editor to compose emails
- no support for "no email signature by default but easily inserted on demand"
- no keyboard shortcut for "go to inbox"
- Calendar
- no keyboard shortcut to "jump to today"
- today is not highlighted properly and is easily mixed up with any highlighted day in a different week, resulting in many mistakes of mine, creating appointments in the wrong week
- appointments
- UX of creating an appointment is sub-optimal
- selecting time-slot (time-picker) UX is broken as normal mouse movements may close the time dialog while using it
- no "reply to attendees" feature (notice the workaround: "Convert to message")
- no "who has accepted?" overview
- UX of creating an appointment is sub-optimal
- no business week view (covering only Mo-Fr)
My Email-Link Workflow on Thunderbird
In this article I briefly mentioned thunderlink to get links to emails and it also handles those links in order to retrieve the linked emails.
I never blogged about it in detail, so this might be the last chance to do fix this.
Frequent readers of this blog know, I organize myself using Org mode. Being able to link to emails within my notes is an essential part of my workflows. I may refer to tasks I need to accomplish, important input to a task or similar.
Therefore, I was very happy when I found thunderlink. This add-on provided a way to define user-defined link texts with several header data to use. I settled for this:
[[messageid:$MESSAGEID][$ISOTIMESTAMP $SENDERNAME <$SENDEREMAIL>: $SUBJECT]]
If you are using a knowledge management tool that is able to process HTML links, Markdown links or other link types, you may want to adapt the format accordingly.
Configuring my Emacs to handle links of type messageid:
was pretty easy and can be found in my current Emacs config file or its history. Just search for "thunderlink".
With Thunderbird changing their add-on API, thunderlink was dead. Luckily, there was another project that implemented the new API after a while: cb_thunderlink.
The migration was smooth as everything around was quite similar. Please be aware that the documentation of cb_thunderlink is not as thorough as thunderlink. So I'd suggest to read both.
Attempted Migration to KDE KMail/Kontact/KOrganizer
A couple of weeks ago, I tried to migrate to KMail.
I installed the large set of packages and tried to use the import wizards in order to get fast results.
Unfortunately, I faced many errors.
KMail → Tools → Import from other mail client → "Could not start the import wizard. Please make sure you have ImportWizard properly installed."
I checked and made sure that libkpimimportwizard5
is installed. No change. On this page I found the tip for apt install akonadi-import-wizard
.
Now the Wizard starts → "Import everything"
"Import mail messages" → nothing happens. I checked htop/iotop → nothing going on. The process seems to hang.
"Back" → manual selection → "Calendar" is greyed out.
I added: apt install korganizer
Importer still does not offer to import calendar and manual selection also does nothing.
Manually creating "Maildir" account → after entering my credentials and everything, nothing happens again.
Aborting. Creating "IMAP" account → that does something at least.
KWallet with OpenPGP setup:
Encryption error while attempting to save the wallet kdewallet. Error code is 55 (Invalid value). Please fix your system configuration, then try again. This error may occur if you are not using a full trust GPG key. Please ensure you have the secret key for the key you are using.
Of course, I set the trust level of that key to ultimate.
Also:
There seems to be a problem in reaching this server or choosing a safe way to sent the credentials to server. We advise you to check the settings of the account and adjust it manually if needed.
I came to the conclusion that KMail does seem to be even worse than Thunderbird. I gave up before I could reach a working setup.
My Setup Process for Evolution
I read good things about GNOME Evolution. So after facing too many annoying issues of Thunderbird again, I decided to gite it a try the previous week.
Running a Debian-based GNU/Linux distribution (Xubuntu 20.04 LTS), the initial setup was easy:
apt install evolution evolution-plugins-experimental
Now, my Evolution version was 3.36.4-0ubuntu1.
The import wizard for the email setup did not work at my side. After selecting my Thunderbird msf-file, the "File type" dropdown was disabled and the "Next" button as well. So there is no working format auto-detect and not "Thunderbird" to select from manually.
Too bad.
After the KMail experience, I decided to try to set up the mail settings from scratch again. This worked flawlessly.
The only thing I forgot in the first attempt was the multiple occasions where I had to set up my OpenPGP and S/MIME certificates so that Evolution was able to use them properly.
Calendar was setup up quickly with the links to our company server and my local Org mode ical file for personal calendar.
With everything running quite good so far, I decided to take a look at my options for generating links to emails and opening them.
Unfortunately, there was no add-on and no internal support for it. So I filed this feature request. The developers that replied to my request denied direct support for generating links to emails and pointed me to the direction of implementing an add-on myself. Since this has to be done in a programming language I'm not familiar with, this is no option to me.
However, they also explained that opening emails from command line using a message-ID was introduced in version 3.40. Unfortunately, this is only available when I'd compile Evolution myself (no, thanks) or via their flatpak package from flathub.
Now, I had to migrate once again. From my (older) Debian package to the newer flatpak package although I don't like concepts like flatpak, snap or AppImage.
Evolution: Setup Process with Flatpak
I first created a backup file from my existing Evolution setup. Then I removed Evolution via the package manager.
I then installed flatpak itself:
apt install flatpak
The command that worked for installing Evolution via flatpak was this:
flatpak install --user --from https://dl.flathub.org/repo/appstream/org.gnome.Evolution.flatpakref
Starting this Evolution version 3.40.1 now works with:
flatpak run evolution
Restoring from the backup file went smoothly. Migration to flatpak was very easy in the end.
And I could finally confirm that this was able to open the email of the given message-ID:
flatpak run org.gnome.Evolution "mid:<foobar1234567@example.com>"
One minor thing to add: the command to show the Evolution window when I click on my xfce email indicator "Mail Watcher" is:
xdotool search --desktop 0 --classname Evolution windowactivate
Linking Emails with Evolution
After modifying my Emacs configuration to handle messageid:
links with Evolution, I was able to open up any old email link again. Please notice that you need to enable the option of syncing all emails to your local installation if you want to avoid really long lookup times when your request is sent to the IMAP server: Account preferences → Receiving Options → [X] Synchronize remote mail locally in all folders
The missing piece was the generating of new links to emails. I found out that I'm able to mark, copy and paste the displayed email header from Evolution to my Emacs.
Furthermore, I found out that it is possible to enable the display of existing header lines like "Message-id": Edit → Preferences → Mail Preferences → Headers → "Displayed Message Headers".
This way, I may now manually mark the header that contains all relevant email meta-data for my links to the clipboard.
I then invested two hours of sweat and tears to come up with an Elisp function that extracts the clipboard content, parses the text for all necessary strings and pastes (yanks) the generated Org mode link to my notes. You can see the result in my configuration when you search for my-convert-mail-header-to-org-link
.
For convenience, I mapped this function to a free keyboard shortcut combination.
Finally, my email link and open workflow was working again.
It has the nice side-effect that I now may use the same workflow to link to mutt
emails for personal use as well. For my personal workflows, I did not set up such link possibility yet and preferred copying the header and the important parts of emails instead.
Positive and Negative Aspects of Evolution (So Far)
So far, I'm very glad that I switched to Evolution. I should have done this earlier.
I do not mention all the good things. There are many of them. Some of them are how it is supposed to be (being able to find emails with search), some of them are even unexpected gems (stored searches). I do think that Evolution is generally much more user-friendly compared to Thunderbird. However, there are also some things I do list on the negative side. This is my current list of annoyances or even bugs I found to give you an impression:
- general
- Can't hide/disable modules like contacts, tasks and memos: I don't use them (see update on that in the next section)
- Specific to the flatpak version:
- I don't like flatpak and similar
- does not provide local setup of aspell spell checker, most probably I'm unable to add German spell checking: https://help.ubuntu.com/community/Add%20a%20dictionary%20to%20Evolution
- The Evolution team doesn't seem to maintain changelogs or release notes besides GitLab commit messages such as "NEWS update for x.xx.x". Therefore, it's hard to find out what changed during two versions. Some versions do not seem to have commit messages at all (e.g., 3.42.1/2/3/4).
- Email
- no support for "add all contacts from this email archive to my
address book so that you realize that this email contact exists"
- it's nasty to add all my contacts manually so that they are available for completion when composing emails and such
- no support for "open this message ID from command line" prior to
v3.39 which requires flatpak setup with its issues
- flatpak comes with a few downsides
- no support for external editor in the flatpak version out-of-the-box
- according to this
page it's not possible to add
/usr/bin/emacsclient
- according to this
page it's not possible to add
- no
support or addon for generating a user-defined link to an email
- workaround: see above
- deleting an email via
DEL
key doesn't work in email list, only in email preview pane- Update 2021-06-24: this is not true. It is related to a UX issue: when changing mail folder, the focus stays on the sidebar with the folders. Although there is no UI indication where the focus really is. When I manually click on any email in the mail overview pane, I may delete emails or navigate around with arrow keys.
- no (direct) keyboard shortcut for "go to inbox"
- workaround:
C-g
select inbox and confirm withRET
which is quite okay for me
- workaround:
- Attachments: "Save All": file dialog doesn't show any file or folder and saving the ZIP(?) does not result in any visible file. Maybe a mis-configured sandbox for this use-case? Saving single attachments works though.
- Thunderbird has a nice feature to check the availability and the status of peer keys/certificates for Email encryption before sending. This is missing in Evolution.
- no support for "add all contacts from this email archive to my
address book so that you realize that this email contact exists"
- Calendar
- can't hide left calendar sidebar (which I don't use) without losing email sidebar (which I'm using)
- When I invoke "Reply to all" on an appointment, I would assume that an email is generated with all participants of the appointment in the list of recipients. In my Evolution, this only generates an email to myself. This may be a bug.
When my Debian package manager provides me version 3.40+ in the future (most probably with Xubuntu 22.04 LTS), I will happily ditch flatpak from my system. This will fix a few of the issues above.
Thanks for reading through the whole article, joining me on my path from Thunderbird to Evolution, which is my current recommendation for mail and calendar tools for GNU/Linux.
Update 2021-06-02: Hiding addressbook, tasks and memos via gsettings
To my surprise, I got a nice reply on my feature request where I mentioned this article here.
Milan acknowledged some of my findings and gave me a cool tip on how to hide addressbook, tasks and memos via gsettings:
flatpak run --command=sh org.gnome.Evolution [📦 org.gnome.Evolution ~]$ gsettings set org.gnome.evolution.shell buttons-hide '["addressbook","tasks","memos"]' [📦 org.gnome.Evolution ~]$ exit
It does the trick and hides the parts of Evolution I am not actively using. You have to know that the corresponding keyboard shortcuts do not change: you still have to use C-1
for email and C-3
for calendar (and not C-2
as I would have assumed initially). So the hidden parts still "occupy" their shortcuts. And yes, you can still open them using their shortcut.