Announcing Thunderbird Conversations

jprotzenko

I remember removing Thunderbird 2.0 from my computer back in 2007. I had been invited to Gmail three years earlier and, slowly, all of my email communication had switched over to Google’s service. The last blow came when Gmail finally allowed people to check external accounts within Gmail. At that point, I had no reason to keep using Thunderbird 2.0 anymore: although I quite appreciated storing emails on my computer, my workflow was way more efficient with Gmail. The Gmail UI was clearly superior and, to be honest, I was a huge fan of the conversation view.

Conversation and a contact tooltip

When I tried early betas of Thunderbird 3, I felt like the much-needed overhaul was finally taking place. However, I still missed the conversation view.  Fortunately, thanks to the hard work that took place on the Gloda side, I was able to quickly hack up an extension that did this, and replaced the original Thread Summary with some kind of a conversation view. This extension became known as “Gmail Conversation View”, and gradually became better as I worked my way through arcane interfaces of the mailnews codebase.

The nice folks @Mozilla Messaging have been kind enough to invite me to come over for the summer. The result is a brand-new conversation view that will hopefully satisfy all of you who had been waiting for such a feature. It includes no less than:

  • a conversation view that fetches all related messages in all folders,
  • inline reply, to quickly reply to an email thread in a streamlined, efficient way (with contacts autocomplete!),
  • contact tooltips, with their avatars and links to their various social network profiles if you have “Contacts for Thunderbird” installed,
  • a quote detection code that collapses most types of quotations,
  • integration with various 3rd-party extensions such as BidiUI or Enigmail,
  • partial Bugzilla email threads support,
  • and other bonus features.
Conversation view with a message in a different folder and a collapsed quote

Some of you may ask: why did it take you so long to build a conversation view?  After all, there’s not much to do besides stacking messages together. The answer is threefold:

  • stacking messages together is relatively doable, but making sure all the little details such as tags, stars, marking as read, replying, showing remote content, keyboard shortcuts work is much harder;
  • some parts of Thunderbird were designed assuming the only place where we display messages is the standard message reader − ugly hooks were required, and some patches to open up stuff had to be pushed to Thunderbird;
  • it’s amazing how many features Thunderbird has, and how many situations can set you wrong − a good part of my work consisted in refining the code over and over to make sure it works fine in all edge cases.

Here’s a screencast!

We now offer a preview version that is compatible with Thunderbird 3.3alpha1. It won’t be compatible with Thunderbird 3.1, because only Thunderbird 3.3 has the required support for Thunderbird Conversations. This is a work in progress, and represents a significant rewrite from the Gmail Conversation View 1.1 series. As we have extremely limited resources (I’m doing this on my spare time), support will be scarce. However we have a bugtracker set up on GitHub, where you can report bugs and discuss possible improvements. We have to strike a balance between maintainability and options profusion: we removed options that were there in previous versions, and we believe this is the right thing to do.

[Official Website] (for issues, source, documentation and FAQ)

Besides the usual warnings about setting your computer on fire, please note that:

  • this is a preview release, more features are planned,
  • it will not work in earlier versions of Thunderbird, I rely on a set of patches that didn’t make it into 3.1,
  • this extension works better when the (awesome) Contacts for Thunderbird addon is installed,
  • extensions that extend the regular message reader won’t work, because we’re replacing the old message reader: I’m thinking about the Bugzilla helper and Lightning; however, we have a hook mechanism if these extensions wish to be compatible with us (see hook.js and enigmail.js for an example).

I’ve blogged about the last point, so if you’re an extension developer and wish to interact with the conversation view, come over and ask for API hooks!

The quick reply feature

Known issues include:

  • The new “Between” column is wrongly positioned on startup. You will have to drag-and-drop the column header to put it in the right position.
  • Quick reply doesn’t do quoting yet. In order to do this, you’ll have to use the “reply”, “reply all”, or “forward” buttons located below each message.
  • There’s no way to send receipt notifications, a workaround is to hit “more” > “view this message using the classic reader”.
  • Quick reply has an issue when replying to someone whose name contains commas. The workaround is to copy their email address from the contact tooltip and replace the recipient with just the email (fixed in recent builds).
  • Quick reply drafts only save the mail body, not the recipients.
  • Sometimes, when sending a message, the status box will read “Copy complete.” and won’t be discarded. The message has been sent properly, we just fail to figure it out (also fixed in recent builds).
  • Messages you just sent take some time to appear in the conversation view. This is a Thunderbird issue mainly, but we might end up working around this.
  • The initial setup might take a very long time. You can close the window and open Tools > Activity Manager to follow the progress of reindexing.
  • Mail that just arrived might take forever to display. The workaround is to click on another email thread, and then switch back to the message you wanted to read.
  • Each time you click on a new email, a Gloda query is run in the background, so you should expect a slight performance hit.

The full list of issues is availabe on GitHub.

Gmail recently announced their would offer an option to opt out of the conversation view. I find it amusing we now offer to opt in. We hope you like it!

Jonathan (:protz), on behalf of the Thunderbird team