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: your@jabber.address");
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.
user_pref("mailnews.show_send_progress", false);
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.
user_pref("mailnews.headers.showOrganization", true);
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.
user_pref("mailnews.headers.extraExpandedHeaders", "Jabber-ID");
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.
user_pref("mailnews.localizedRe", "AW,Aw,Antwort,Antw");
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.
user_pref("mail.server.default.use_condstore", false);
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.
Hallo Flo,
warum willst du die neuen E-Mails nicht angezeigt bekommen? Warum dann nicht nur manueller Abruf der neuen E-Mails oder Schließen des Programms und Neustart, wenn du E-Mails lesen willst?
Für die Bereinigung des Betreffs nutze ich das Add-On Clean Subject. Geht aber vermutlich über die Änderung des Schlüssels hinaus.
Bei den accessibility-Einstellungen ist mir das zu lösende Problem unbekannt.
Ich will die neuen Mails im Programm sehen und automatisch angezeigt haben, allerdings nicht bei jeder Mail per separatem Popup oder Ton, sonst wird das recht anstrengend. ;-)
Für die Antwort-Funktion gibts in der Tat einige Plugins, die ähnliches machen – mir hat bislang die eingebaute Funktion gereicht.
Weil du das Programm eh immer offen hast und nutzt und wenn gerade nicht, hat das gute Gründe … ja?
Ton habe ich auch ausgestellt.
Und zwei Einstellungen habe ich direkt mal eingetragen ,,, :-)
Hallo Flo,
warum willst du die neuen E-Mails nicht angezeigt bekommen? Warum dann nicht nur manueller Abruf der neuen E-Mails oder Schließen des Programms und Neustart, wenn du E-Mails lesen willst?
Für die Bereinigung des Betreffs nutze ich das Add-On Clean Subject. Geht aber vermutlich über die Änderung des Schlüssels hinaus.
Bei den accessibility-Einstellungen ist mir das zu lösende Problem unbekannt.
Kannst du das mit dem Ordner-Sortieren näher erläutern? Ich will nicht unnötig Konfigurationen ändern.
Bei habe ich mir notiert, dass man auch
auf setzen sollte. Vielleicht ist das eine meiner Konfigurationsrenimiszenzen an alte Versionen …
This thread may be dead, but I was wondering if there was a tweak like in version 3.* where you could have a message write window open but the client closed and the message window would still remain open. This was useful for cutting resources and allowing an easy spellchecker. Also, it would show when a new message had arrived (in the sys tray) — without needing the full client window open.
Any tweak out there for this?
Unfortunately, I don’t know – I think on macOS I can close the main client window with leaving the notification and compose/read windows intact actually, not sure about Windows or Linux though.
Any way to get rid of the fade effect so that the thunderbird Write: window rows (to, subject, etc) are white all the time, instead of fade from gray to white?
I don’t have a code snippet at hand, but the feature IMHO is called “zebra striping” – MozillaZine knowlegde base had an article on that with information how to configure it.
Ah! You’re refering to the row colors within the message titles themselves, in the main client. I was referring to a new Write: (no subject) window. A new message in thunderbird. Here is what I’m talking about: https://youtu.be/A8Hve_eTBbk
See how it fades in and out. I don’t want that, I just want the default white or “open” row like it used to be.
Okay, got it – however, I don’t know how to change that. :-) I assume you have to edit something in userChrome.css, but I have no further pointers sadly.
After installing a DOM extension I was able to narrow down some of the elements. This is what I finished with:
.textbox-addressingWidget, #msgIdentity, #identityLabel, #msgSubject, .aw-menulist, menulist {
transition: none !important;
-moz-border-top-colors: none !important;
-moz-border-right-colors: none !important;
/* -moz-border-bottom-colors: none !important;*/
-moz-border-left-colors: none !important;
/* background-color: #FFF !important;*/
}
The background color is disabled because I cannot figure out the command they use for windows default colors, otherwise I’d have it use that instead of a specified one. For now, the solid default is fine, I guess. Let me know if you figure it out (or that “This is a draft message” drop down which is annoying)!
(Florian: Redacted e-mail address.)
Thanks for sharing! :-)