draft-ietf-imapext-thread-09.txt   draft-ietf-imapext-thread-10.txt 
IMAP Extensions Working Group M. Crispin IMAP Extensions Working Group M. Crispin
Internet Draft: IMAP THREAD K. Murchison Internet Draft: IMAP THREAD K. Murchison
Document: internet-drafts/draft-ietf-imapext-thread-09.txt March 2002 Document: internet-drafts/draft-ietf-imapext-thread-10.txt June 2002
INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026. all provisions of Section 10 of RFC 2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 33 skipping to change at page 1, line 33
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
To view the list Internet-Draft Shadow Directories, see To view the list Internet-Draft Shadow Directories, see
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
A revised version of this draft document will be submitted to the RFC A revised version of this draft document will be submitted to the RFC
editor as a Proposed Standard for the Internet Community. Discussion editor as a Proposed Standard for the Internet Community. Discussion
and suggestions for improvement are requested, and should be sent to and suggestions for improvement are requested, and should be sent to
ietf-imapext@IMC.ORG. This document will expire before 21 August ietf-imapext@IMC.ORG. This document will expire before 20 December
2002. Distribution of this memo is unlimited. 2002. Distribution of this memo is unlimited.
Abstract Abstract
This document describes the server-based threading extension to the This document describes the server-based threading extension to the
IMAP4rev1 protocol. This extension provides substantial performance IMAP4rev1 protocol. This extension provides substantial performance
improvements for IMAP clients which offer threaded views. improvements for IMAP clients which offer threaded views.
A server which supports this extension indicates this with one or A server which supports this extension indicates this with one or
more capability names consisting of "THREAD=" followed by a supported more capability names consisting of "THREAD=" followed by a supported
skipping to change at page 5, line 23 skipping to change at page 5, line 23
discipline has not been followed. For example, discipline has not been followed. For example,
In-Reply-To headers have been observed with email In-Reply-To headers have been observed with email
addresses after the Message ID, and there are no good addresses after the Message ID, and there are no good
heuristics for software to determine the difference. heuristics for software to determine the difference.
This is not a problem with the References header however. This is not a problem with the References header however.
If a message does not contain an In-Reply-To header line, or If a message does not contain an In-Reply-To header line, or
the In-Reply-To header line does not contain a valid Message the In-Reply-To header line does not contain a valid Message
ID, then the message does not have any references (NIL). ID, then the message does not have any references (NIL).
A message is considered to be a reply or forward the subject
extraction rules, applied to the original subject, remove any
of the following: a subj-refwd, a "(fwd)" subj-trailer, or a
subj-fwd-hdr and subj-fwd-trl.
The REFERENCES algorithm is significantly more complex than The REFERENCES algorithm is significantly more complex than
ORDEREDSUBJECT and consists of six main steps. These steps are ORDEREDSUBJECT and consists of six main steps. These steps are
outlined in detail below. outlined in detail below.
(1) For each searched message: (1) For each searched message:
(A) Using the Message IDs in the message's references, link (A) Using the Message IDs in the message's references, link
the corresponding messages (those whose Message-ID header the corresponding messages (those whose Message-ID header
line contains the given reference Message ID) together as line contains the given reference Message ID) together as
parent/child. Make the first reference the parent of the parent/child. Make the first reference the parent of the
skipping to change at page 7, line 34 skipping to change at page 7, line 39
(iv) If there is no message in the table with this (iv) If there is no message in the table with this
subject, add the current message and the extracted subject, add the current message and the extracted
subject to the subject table. subject to the subject table.
Otherwise, replace the message in the table with the Otherwise, replace the message in the table with the
current message if the message in the table is not a current message if the message in the table is not a
dummy AND either of the following criteria are true: dummy AND either of the following criteria are true:
The current message is a dummy, OR The current message is a dummy, OR
The message in the table is a reply or forward (its The message in the table is a reply or forward and the
original subject contains a subj-refwd part and/or a current message is not.
"(fwd)" subj-trailer) and the current message is not.
(C) Merge threads with the same subject. For each child of (C) Merge threads with the same subject. For each child of
the root: the root:
(i) Find the subject of this thread as in step 4.B.i (i) Find the subject of this thread as in step 5.B.i
above. above.
(ii) If the extracted subject is empty, skip this (ii) If the extracted subject is empty, skip this
message. message.
(iii) Lookup the message associated with this extracted (iii) Lookup the message associated with this extracted
subject in the table. subject in the table.
(iv) If the message in the table is the current message, (iv) If the message in the table is the current message,
skip this message. skip this message.
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/