So we all get loads of email, and one of the core ways that traditional email clients and web archives organize it, is to group emails into threads. Therefore it's annoying when people send email that breaks this threading. Long ago jwz wrote the "standard" on how this should be implemented in email clients, documenting the associated email headers involved. So all we need to do to maintain correct threading is to ensure that the In-Reply-To header that jwz details above is set. Now all email clients will set this automatically when replying to an email, but to reply to an email not received by your client (like on a web archive for example), you need to set this header manually.

Setting In-Reply-To in thunderbird

Interestingly, by default thunderbird (as of version 17 at least) doesn't have a way to manually set this important header. Therefore it must be added to the list of custom headers by doing:
  1. Edit → Preferences → Advanced → General → Config Editor
  2. Search for mail.compose.other.header and add In-Reply-To
Then In-Reply-To will show up as one of the options in the compose window in the same place where you can choose To:, Cc:, etc. Note it's important you create a new message, as if you're replying to a message, then that will override any In-Reply-To header you manually specifiy.

For completeness, one can specify multiple space separated message IDs in this field, when the reply is to multiple messages. Also the References: header can specify multiple IDs to better identify a thread. All IDs of a thread don't need to nor shouldn't be specified, with the initial and parent message IDs being the best to have included.

Identifying In-Reply-To for thunderbird

When browsing email archives on the web it would be great if we could just click a reply link and have thunderbird reply appropriately. In fact this is possible and provided by some web archives. This first thing that needs to be in place is for thunderbird to act as the mailto: handler, which can be setup on GNU/Linux using the command:
xdg-mime default mozilla-thunderbird.desktop x-scheme-handler/mailto
Then thunderbird (and I presume other clients) set the reply headers correctly when passed the In-Reply-To URL parameter. For example you can click on the following link (normally more concisely presented of course) to start composing an email with appropriate headers set.

mailto:P@draigBrady.com?In-Reply-To=51506064.8010504@draigBrady.com&Subject=Thunderbird threading

Interestingly thunderbird sets the References header with this method, the consequences of you can see at jwz's reference above.

Manually identifying the Message-ID

Often the web archive doesn't present a handy link like the above, and so one must manually determine the message ID to enter. The location of this info varies, though is generally available.

On a marc.info message for example, you can see a obfuscated Message-ID which you can copy and paste to the thunderbird compose window, replacing () with @ and ! with .

If you look at a mailman archive message you can click on the author's email address to auto create an appropriate message, or view source to see the In-Reply-To values in the presented links (be sure to strip the %3C and %3E URL encodings for the optional <angle brackets> and &#45; for "-" etc.). Other mailman configurations may just present the Message-ID as a comment at the top of the source for the message.

© Mar 25 2013