Finding related messages in a mailbox by using EWS in Exchange 2010
Find out how to find and manage related messages in a mailbox by using EWS in Exchange.
Last modified: July 01, 2013
Applies to: Exchange Server 2007 | Exchange Server 2010
In this article
Conversation-related objects and methods
Customizing your conversations
Additional resources
Exchange 2013: Find conversations in mailboxes programmatically
Exchange 2013: Apply actions to manage conversations in a mailbox programmatically
You can use conversations in versions of Exchange starting with Exchange Server 2007, including Exchange Online, to find and manage related messages in a mailbox. Conversations are based on the first message’s Message-ID header. All replies and related messages will relate to the original message’s Message-ID header by their References and In-Reply-To headers. For each message received in a mailbox, the following properties are set:
ConversationTopic – Contains a normalized form of the subject value that was set on the original message.
ConversationIndex – Represents the position of the item in the conversation.
Exchange applies the same ConversationTopic property value to replies to the first message and then updates the ConversationIndex property value to represent the message’s position relative to the original message. If the subject of the email thread changes, Exchange applies a new ConversationTopic property value and new ConversationIndex property values to the new conversation.
Conversation-related objects and methods
Depending of the version or versions of Exchange that you are targeting, different conversation-related features are available. The following table lists the conversation-related features and the versions of Exchange in which they are available.
EWS object |
Description |
Implemented in the EWS Managed API… |
Applies to |
---|---|---|---|
ConversationIndex property |
Specifies the position of an item in a conversation based on the date and time it is received. This is the same as the Thread-Index Internet message header. You can access this property by using the FindItem Operation or the GetItem Operation. |
Via the EmailMessage.ConversationIndex and PostItem.ConversationIndex properties. Use the Load() and Bind() methods to get these properties. |
Versions of Exchange starting with Exchange 2007, including Exchange. |
ConversationTopic property |
Specifies the conversation topic. This is the same as the Thread-Topic Internet message header. You can access this property by using the FindItem Operation or the GetItem Operation. |
Via the EmailMessage.ConversationTopic and PostItem.ConversationTopic properties. Use the Load() and Bind() methods to get these properties. |
Versions of Exchange starting with Exchange 2007, including Exchange Online. |
ConversationId property |
Identifies a conversation thread. |
Via the Item.ConversationId property. |
Versions of Exchange starting with Exchange 2010, including Exchange Online. |
Searches for conversations and returns search results that contain the item identifiers of the items in the conversation along with the conversation’s metadata. |
Via the ExchangeService.FindConversation() method. |
Versions of Exchange starting with Exchange 2010, including Exchange Online. |
|
Identifies a conversation thread. |
Via the Item.ConversationId property. |
Versions of Exchange starting with Exchange 2010, including Exchange Online. |
Customizing your conversations
You might want to find and display items in your Inbox based on something other than message subject. To do this, you can use custom extended properties. Design your data type and store it in an extended property. You can then query on that extended property to access items. You can also use extended properties to access the conversation properties that Exchange uses; however, we recommend that you use extended properties only to create your own order for email messages.