For more than a decade, Thunderbird has been my e-mail client of choice. It provides flexibility and customization via plugins and configuration files that helps me to adapt it specifically to my needs. Over the years, I’ve compiled my very own Thunderbird configuration set and selection of plugins which I’m sharing with my fellow readers, hoping that some of these customizations also make your e-mail life easier, especially when you have to deal with a huge amount of messages.
In a first posting, I’ve shared my favorite plugins with you. In this subsequent posting, I’ll now show you my configuration tweaks.
A word of warning
Changes via plugins and in the Thunderbird configuration files can lead to problems if done wrong. Before trying out the add-ons and tweaks from this article, I strongly recommend making a backup of your profile folder. In general, you should only continue if you know what you’re doing.
Where to start
Configuration files reside in Thunderbird’s profile folder, the location depends on the operating system. Some general insight how the user profiles work can be found in this MozillaZine article.
To apply the configuration tweaks below, there are two options:
- Via the integrated configuration editor (sometimes reffered to as about:config), available via Extras | Preferences | Advanced | General | Config Editor. Changes made there will be reflected in the file prefs.js in your profile directory.
- By creating a file named user.js in your profile directory and adding the configuration items there. Settings in this file will have precedence over prefs.js.
Be advised that several configuration options and plugins will not become effective until Thunderbird has been restarted.
Thunderbird configuration tweaks
user_pref("mail.identity.id1.headers", "jabber"); user_pref("mail.identity.id1.header.jabber", "Jabber-ID: firstname.lastname@example.org");
This setting adds a custom header to all your outgoing messages. Specifically, a Jabber-ID header is added, by which you can share your Jabber/XMPP address with e-mail recipients. Agreeably, not many e-mail clients parse this e-mail header at all. Note that id1 needs to be replaced with the respective account ID for which the option should be effective.
user_pref("alerts.totalOpenTime", 0); user_pref("mail.biff.show_tray_icon", false);
These Thunderbird configuration options might be a leftover from my old setup and not necessary anymore for recent program versions. Back in the old days, I used it to disable the new message notification in the system tray and via popups – today, I think, this can be configured from within Thunderbird directly.
user_pref("mailnews.reply_header_type", 3); user_pref("mailnews.reply_header_locale", "sv_SE"); user_pref("mailnews.reply_header_authorwrote", "%s wrote"); user_pref("mailnews.reply_header_ondate", "on %s"); user_pref("mailnews.reply_header_separator", " ");
These settings come in quite handy when writing to a lot of international recipients. By default, Thunderbird uses the program’s locale for creating the reply header, which can be quite confusing to others. With these settings, the text is localized into English, and the date will have an international format. Interestingly, on OS X I need to set sv_SE as locale as shown. On Windows, I recall sv-SE being the proper format, and on Linux (probably) en_US.
user_pref("mailnews.reply_header_authorwroteondate","#1 wrote on #2 at #3:"); user_pref("mailnews.reply_header_authorwrotesingle","#1 wrote:"); user_pref("mailnews.reply_header_ondateauthorwrote","On #2 at #3, #1 wrote:"); user_pref("mailnews.reply_header_originalmessage"," -------- Original Message -------- "); user_pref("mailnews.forward_header_originalmessage","-------- Forwarded Message --------");
In recent versions of Thunderbird (I recall version 31 and up), the reply header needs to be customized in a different way, as shown above. In addition, it’s now also possible to change the separator for replies and forwarded messages.
Whenever an e-mail is sent, Thunderbird shows a separate dialog box with a progress bar, which can be quite distracting. The above setting moves this into the message window’s status bar.
Many e-mails contain a header field to show the sender’s organization or affiliation. With the above setting, it will be displayed in the message window.
Additional headers to be shown can be added with the setting above. In this example, the Jabber-ID header field is shown in the message window.
Several groupware systems and certain mail clients have the bad habit to prefix replies with a localized text instead of Re:. This can easily lead to cluttered headers like Re: Antwort: Antw: Re: Subject. The configuration shown above tells Thunderbird to treat these prefixes equally to Re:, cutting them off properly when replying. Adjust them as needed to your locale.
user_pref("mail.ui.display.dateformat.default", 1); user_pref("mail.ui.display.dateformat.today", 1); user_pref("mail.ui.display.dateformat.thisweek", 1);
By default, Thunderbird shows the message date in abbreviated form like yesterday, showing the full date only for older messages. With the configuration options above, the full date is shown for all messages.
user_pref("extensions.enigmail.addHeaders", false); user_pref("extensions.enigmail.useDefaultComment", true); user_pref("extensions.enigmail.agentAdditionalParam", "--no-emit-version --no-comments");
If you use the Enigmail extension, it adds some headers and version strings in messages by default. The above options help to disable this behaviour.
user_pref("accessibility.typeaheadfind", true); user_pref("accessibility.typeaheadfind.enablesound", false);
The options above are likely to be a leftover from my older installation, as the properties seem to be available from within the Thunderbird configuration itself. They enable the search as you type option, and disable the sound when a result is found.
user_pref("mailnews.default_sort_order", 2); user_pref("mailnews.default_view_flags", 1);
Thunderbird provides extensive mail sorting and grouping features, but the drawback is that you have to configure them separately for each mail folder. With a specific setting, however, you can auto-configure all folders with your preferred settings. The above example sorts all folders by message date and groups them by thread – a setting which I find extremely helpful when dealing with large amounts of e-mail.
user_pref("mail.check_all_imap_folders_for_new", true); user_pref("mail.quota.mainwindow_threshold.show", 0);
If you use IMAP like me, some optimizations can make your life easier. The first setting tells Thunderbird to check all folders for new e-mails, including subfolders, instead of only pulling the inbox. The second setting displays the e-mail quota indicator in Thunderbird’s status bar independent from the disk usage – normally, it is only visible when a certain percentage of your server disk space has been taken.
user_pref("mail.imap.expunge_after_delete", true); user_pref("mail.imap.expunge_option", 1);
The above settings heavily depend on your e-mail server configuration. For me, they help in immediately expunging folders with deleted e-mails.
This setting is needed whenever you have issues with deleted mails are still being shown on another machine. Thunderbird had problems with the IMAP CONDSTORE capability in recent versions, leading to all sorts of issues, including “ghost” e-mails. For me, disabling CONDSTORE cured the problem. Use only if needed, as it has drawbacks.
Did you know…
…that you can add comments to the user.js file by putting them in /* and */, just like
/* This is a comment */
In a follow-up posting, I will show you how you can customize Thunderbird’s appearance with CSS styles.