I wondered how email message threading worked the other day, so I decided to go find out.

The question I had was "how do I reply to a message that was sent to a list before I subscribed to it, in such a way that it gets threaded in the proper manner?" Specifically, I wanted to respond to the summit-planning list's email thread titled "Booth setup on Tuesday" yet choose my own level of nesting in the thread. For instance...

* original message
* reply 1
* reply A to reply 1
* reply $foo to reply A
* reply B to reply 1
* <--- YOUR REPLY GOES HERE
* reply 2
* reply 3
* reply A to reply 3

I downloaded the archives for the appropriate month and looked around. Huh. This is the first time I've actually paid attention to what was in the message headers...


From bpowell01 at fedoraproject.org Thu Jun 10 17:33:50 2010
From: bpowell01 at fedoraproject.org (Brian Powell)
Date: Thu, 10 Jun 2010 13:33:50 -0400
Subject: Booth setup on Tuesday
In-Reply-To:
References: <20100610012156.GC18467@victoria.internal.frields.org>
Message-ID: <aanlktikjb0w0nmy1rv1cppuqpbsmxbie3pr_w38bu8iq @mail.gmail.com>

Hrm. In-Reply-To and References seemed pretty promising. They pointed to the Message-IDs of the messages they were threaded under, in the order of their nesting. It wouldn't be too awful to get a mail client to do threading with that.

As a side note, how do Message-IDs get generated? They're specified in RFC 5322, but it seems like different mail clients generate them in different manners, and the only document I could find that had actual suggestions on the implementation is 12 years old. Seems like the answer is "pick your mail client, then look at the code."

Anyhow. I think that if I changed the In-Reply-To / References headers to be the correct things, my message would nest nicely. Trouble is that I can't find a way to do that in Thunderbird - the only promising extension I could find wasn't compatible with the version of tbird I run (3.0.4). At this point (1) Paul started a new thread that was a better one for me to respond with my information to, and (2) I went "eh!" and decided to stop chasing this down because I was hosed with other things. Nice small adventure, though.

I'm happy to learn even tiny bits and snatches of how email works, because I'm still trying to digest how mutt setup works (after blindly copying Karsten's .muttrc file and with help from Ian and Paul, I can send email using mutt, but haven't... figured out how to read it yet). I have such a broken concept of how email works that all the bits and pieces haven't quite sunk in the right way yet (the way that would let me, y'know, use this stuff with impunity).

Once I understand mutt, the next thing I want to figure out is dovecot. I can do these things blindly, I just don't really understand what's going on... and I would like to. Just because. It's fun.