MailNews:Message Threading: Difference between revisions

Line 37: Line 37:
All core threading logic currently lives in mailnews/db/msgdb/src/nsMsgDatabase.cpp.  It is controlled by the following preferences:
All core threading logic currently lives in mailnews/db/msgdb/src/nsMsgDatabase.cpp.  It is controlled by the following preferences:


* mail.thread_without_re : Thread by subject even when there is no "Re:" in the subject; default True.
* mail.thread_without_re : Thread by subject even when there is no "Re:" in the subject; default False in 3.0, used to be true in 2.0.
* mail.strict_threading : Don't thread by subject; default False.
* mail.strict_threading : Don't thread by subject; default True for 3.0, used to be False in 2.0.
* mail.correct_threading : Thread things correctly (using References/In-Reply-To) regardless of the order in which messages are added to a folder; default false.  Requires extra memory and some extra processing once a folder (nsMsgDatabase) has new messages added to it.  If you turn this on, you really should turn on strict_threading too.
* mail.correct_threading : Thread things correctly (using References/In-Reply-To) regardless of the order in which messages are added to a folder; default false.  Requires extra memory and some extra processing once a folder (nsMsgDatabase) has new messages added to it.  If you turn this on, you really should turn on strict_threading too.


=== mail.thread_without_re ===
=== mail.thread_without_re ===


mail.thread_without_re (gThreadWithoutRe/ThreadBySubjectWithoutRe) defaults to True.
mail.thread_without_re (gThreadWithoutRe/ThreadBySubjectWithoutRe) defaults to False in Thunderbird 3.0, used to default to True in 2.0.


If mail.thread_without_re is True, the subject does not have to start with "Re:" (or variants or localized variants) for threading to occur.  If it's false, it does have to start with "Re:"/variants.
If mail.thread_without_re is True, the subject does not have to start with "Re:" (or variants or localized variants) for threading to occur.  If it's false, it does have to start with "Re:"/variants.
Line 49: Line 49:
=== mail.strict_threading ===
=== mail.strict_threading ===


mail.strict_threading (gStrictThreading/UseStrictThreading) defaults to False.
mail.strict_threading (gStrictThreading/UseStrictThreading) defaults to True in 3.0, used to be False in 2.0.


If mail.strict_threading is True, subject-threading is disabled entirely.  Messages sent by clients that do not generate "References"/"In-Reply-To" headers (or responding to clients that do not generate "Message-ID" headers) will not be threaded.
If mail.strict_threading is True, subject-threading is disabled entirely.  Messages sent by clients that do not generate "References"/"In-Reply-To" headers (or responding to clients that do not generate "Message-ID" headers) will not be threaded.
Line 57: Line 57:
=== mail.correct_threading ===
=== mail.correct_threading ===


mail.correct_threading (gCorrectThreading/UseCorrectThreading) defaults to False.  Implemented by {{bug|181446}}, only available in 3.0 releases and later (never on the 2.0.0.x branch).
mail.correct_threading (gCorrectThreading/UseCorrectThreading) defaults to True in 3.0.  Implemented by {{bug|181446}}, only available in 3.0 releases and later (never on the 2.0.0.x branch).


If mail.correct_threading is True, the references stored on every nsIMsgDBHdr are used to populate a hashtable mapping every Message-ID we have heard about for a thread to that thread's thread id.  For example, if message D with Message-ID: D and thread id of 42 "References:" C, B, and A, the hashtable will map C, B, and A to 42.
If mail.correct_threading is True, the references stored on every nsIMsgDBHdr are used to populate a hashtable mapping every Message-ID we have heard about for a thread to that thread's thread id.  For example, if message D with Message-ID: D and thread id of 42 "References:" C, B, and A, the hashtable will map C, B, and A to 42.
Confirmed users
360

edits