Message Threading in Public Folders

Outlook lets you view Exchange Public Folders in a "Conversation" mode similar to Evolution's "Threaded" mode. However, it doesn't do it via In-Reply-To or References headers. CamelExchangeFolder translates Exchange's system so that the messages thread properly in Evolution

A new post to a folder gets a 27-byte-long "thread index". (The value is apparently unique but has no meaning we know of.) Each reply to a new post gets a thread index that starts with the original post's thread index, followed by 5 additional bytes. (Thus, the reply to a new post would have a 32-byte-long thread index, and a reply to that post would have a 37-byte-long thread index, etc.)

The Thread-Index header contains a base64 representation of this value. CamelExchangeFolder keeps a hash table mapping from Thread-Index values to Message-IDs. When it finds a message with a Thread-Index but no In-Reply-To or References, it looks up the parent thread index (ie, all but the last 5 bytes) in the hash, and (assuming it finds it), fakes a References header pointing to it.