2.2.3.2.7 Conversation Topic

To set the value of the PidTagConversationTopic property ([MS-OXCMSG] section 2.2.1.10), clients MUST write the value to a Thread-Topic header. This value SHOULD be the same as the value of the Subject header, normalized as specified in section 2.2.3.2.6.1 to remove any prefix.

MIME readers copy the value of a Thread-Topic header to the value of the PidTagConversationTopic property. A MIME reader MAY<113> set the PidTagConversationTopic property differently depending on which MIME header, Subject header, or Thread-Topic header is present; the value of the header; and which header comes first. In this case, the MIME writer uses the following procedure.

  1. If neither header is available, the PidTagConversationTopic property is not set.

  2. If only the Subject header is available and the header can be parsed to set the PidTagNormalizedSubject property ([MS-OXCMSG] section 2.2.1.10), then the PidTagConversationTopic property is set to the value of the PidTagNormalizedSubject property.

  3. However, if the message class is "IPM.Post" (denoting a Post object as specified in [MS-OXOPOST]), then the PidTagConversationTopic property is not set.

  4. If only a Thread-Topic header is available, the PidTagConversationTopic property is set from the value of the Thread-Topic header.

  5. If both the Subject and Thread-Topic headers are present, and the Subject header precedes the Thread-Topic header, then the MIME writer attempts to normalize the Subject header value, as specified in section 2.2.3.2.6.1.

    1. If normalization is successful, the MIME writer sets the PidTagConversationTopic property to the value of the PidTagNormalizedSubject property.

    2. If unsuccessful, the MIME writer looks to see whether the Subject header value ends with the Thread-Topic header value. If this is successful, the MIME writer sets the PidTagConversationTopic property to the value of the Thread-Topic header.

    3. If neither of the above conditions are successful, the MIME writer sets the PidTagConversationTopic property to the value of the Subject header.

  6. If both the Subject and the Thread-Topic header are present, and the Thread-Topic header precedes the Subject header, then the MIME writer first looks to see whether the Subject header value ends with the Thread-Topic header value.

    1. If successful, then the MIME writer sets the value of the PidTagConversationTopic property to the value of the Thread-Topic header.

    2. If unsuccessful, then the MIME writer normalizes the value of the Subject header, as specified in section 2.2.3.2.6.1, producing values for the PidTagSubjectPrefix property ([MS-OXOMSG] section 2.2.1.60) and the PidTagNormalizedSubject property, and sets the PidTagConversationTopic property to the value of the PidTagNormalizedSubject property.

    3. If neither of the above conditions are successful, the MIME writer sets the PidTagConversationTopic property to the value of the Subject header.

MIME readers SHOULD also use this header value as a hint to normalize the subject, as specified in section 2.2.3.2.6.1, if this value matches the tail of the Subject header value.