In case somebody hasn't read this one:

http://www.jwz.org/doc/threading.html :)

Cheers
Jan
--
On 28 Nov 2008, at 02:53, Thomas Kerpe wrote:

This is an old Problem. Most Clients set this References Header. One way would be (and some E-Mail-Programs do this) to group by subject, this is of course easy, you have to remove the Re: and Aw: etc and emit that as key. E-Mail threading problem is not new and there is no 100% relyable way to do this. Most programs set the References header, also most the In- Reply-To Header. I have tested this and the results are good. However you can never be shure. This approach is called strict_threads in the mutt documentation,
while the subject only approach is called pseudo threads.

When using just the In-Reply-To header it will not be so easy because you only get the direct "parent". Without iterating over the map results again you don't get these (you can not do this in one iteration with map/ reduce I
think).

The Problem gets even more worse as the RFC says the Message-ID SHOULD be
used, this is not mandatory but it is common sense to use this. Some
E-Mail-Servers add an Message-ID if it has not one.
In one case the RFC says no References header should be used: when a message
has more than one single parent.

//Thomas

2008/11/28 Jedediah Smith <[EMAIL PROTECTED]>


This works if emails always list all of their ancestors in the references field. If that is indeed the case then I wasn't aware of it and it certainly
makes my task simpler.

I am however still interested in the case where nodes of a data structure
only link to their immediate parent, just or the sake of discussion.


Thomas Kerpe wrote:

Hoops, sorry for that html and broken Text-part:

function(doc) {
if (doc.type == "email") {
 thread = [];
 if (doc.header.references){
   thread = doc.header.references.split(" ");
 }
 thread.push(doc.header['message-id']);
 thread_id = thread[0];
 emit([thread_id, thread,], doc.header.subject);
}
}

//Thomas



Reply via email to