Arbeiten mit Unterhaltungen unter Verwendung von EWS in Exchange
In diesem Artikel erfahren Sie, wie Sie mit der verwalteten EWS-API oder EWS in Exchange nach Unterhaltungen suchen, Aktionen auf Unterhaltungen anwenden und Elemente in Unterhaltungen abrufen.
Im Kontext von Exchange stellen Unterhaltungen eine Möglichkeit dar, einen zusammengehörigen Satz E-Mail-Nachrichten zu gruppieren und zu verwalten. Sie können auch die Anzeige von zusammengehörigen Nachrichten ermöglichen. In Exchange werden Unterhaltungen auf Grundlage des Message-ID-Werts der ersten E-Mail-Nachricht in einem Thread definiert. Alle Antworten und zugehörigen Nachrichten verweisen in ihren jeweiligen References- und In-Reply-To-Kopfzeilen auf die Message-ID-Kopfzeile der ursprünglichen Nachricht.
Darüber hinaus legt Exchange innerhalb des SOAP-Umschlags für jede in einem Postfach empfangene Nachricht bestimmte Eigenschaften und Elemente fest.
Tabelle 1. Für alle E-Mail-Nachrichten festgelegte Unterhaltungseigenschaften und -elemente
Eigenschaft in der verwalteten EWS-API | EWS-Element | Beschreibung |
---|---|---|
ConversationTopic |
ConversationTopic |
Enthält eine normalisierte Form des Betreffwerts, der für die ursprüngliche Nachricht festgelegt wurde. Diese ist identisch mit dem Thread-Topic-Nachrichtenkopf. Dieser Wert ist schreibgeschützt. |
ConversationIndex |
ConversationIndex |
Stellt die Position des Elements in der Unterhaltung dar. Diese ist identisch mit dem Thread-Index-Nachrichtenkopf. Dieser Wert ist schreibgeschützt. |
Exchange wendet den gleichen ConversationTopic -Wert auf Antworten auf die erste Nachricht an und aktualisiert anschließend den ConversationIndex -Wert so, dass er die Position der Nachricht relativ zur ursprünglichen Nachricht darstellt. Wenn sich der Betreff des E-Mail-Threads ändert, wendet Exchange einen neuen ConversationTopic -Wert und neue ConversationIndex -Werte auf die neue Unterhaltung an.
Tabelle 2. Methoden der verwalteten EWS-API und EWS-Vorgänge für die Arbeit mit Unterhaltungen
Suchen einer Unterhaltung mithilfe der verwalteten EWS-API
Zum Suchen nach Unterhaltungen können Sie die ExchangeService.FindConversation-Methode der verwalteten EWS-API verwenden, wie im folgenden Beispiel gezeigt. Dieses Beispiel ruft die ersten zehn Unterhaltungen im Posteingangsordner ab, deren Betreff das Wort "news" enthält. Anschließend werden das Thema der Unterhaltung, die Uhrzeit der letzten Zustellung und die globale eindeutige Empfängerliste im Konsolenfenster ausgegeben.
In diesem Beispiel wird davon ausgegangen, dass service ein gültiges ExchangeService-Objekt ist und der Benutzer bei einem Exchange-Server authentifiziert wurde.
static void FindConversation(ExchangeService service)
{
// Create the view of conversations returned in the response. This view will return at most 10 results.
ConversationIndexedItemView view = new ConversationIndexedItemView(10);
// Create the query string to search for.
String queryString = "subject:news";
// Search the Inbox for conversations and return a results set with the specified view.
// This method call results in a FindConversation call to EWS.
ICollection<Conversation> conversations = service.FindConversation(view, WellKnownFolderName.Inbox, queryString);
// Examine properties on each conversation returned in the response.
foreach (Conversation conversation in conversations)
{
Console.WriteLine("Conversation Topic: " + conversation.Topic);
Console.WriteLine("Last Delivered: " + conversation.LastDeliveryTime.ToString());
ApplyConversationActions(service, conversation);
foreach (string GlUniqRec in conversation.GlobalUniqueRecipients)
{
Console.WriteLine("Global Unique Recipient: " + GlUniqRec);
}
Console.WriteLine("");
}
}
Suchen einer Unterhaltung mithilfe von EWS
Sie können Unterhaltungen mit dem EWS-Vorgang FindConversation suchen, wie im folgenden Beispiel gezeigt. Dieses Beispiel ruft die ersten zehn Unterhaltungen im Posteingangsordner ab, deren Betreff das Wort "news" enthält. Dies ist außerdem die XML-Anforderung, die die verwaltete EWS-API sendet, wenn Sie diese API zum Suchen nach einer Unterhaltung verwenden.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2013" />
</soap:Header>
<soap:Body>
<m:FindConversation>
<m:IndexedPageItemView MaxEntriesReturned="10"
Offset="0"
BasePoint="Beginning" />
<m:ParentFolderId>
<t:DistinguishedFolderId Id="inbox" />
</m:ParentFolderId>
<m:QueryString>subject:news</m:QueryString>
</m:FindConversation>
</soap:Body>
</soap:Envelope>
Der Server antwortet auf die FindConversation-Anforderung mit einer FindConversationResponse-Nachricht, die den ResponseCode-Wert NoError enthält, um anzuzeigen, dass der Vorgang erfolgreich abgeschlossen wurde. Die Antwort umfasst außerdem die einzige Unterhaltung im Postfach, deren Betreff das Wort "news" enthält.
Die Elemente ItemId, ChangeKey und ConversationId wurden der besseren Lesbarkeit halber gekürzt.
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo MajorVersion="15"
MinorVersion="0"
MajorBuildNumber="883"
MinorBuildNumber="10"
Version="V2_10"
xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FindConversationResponse ResponseClass="Success"
xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ResponseCode>NoError</ResponseCode>
<Conversations>
<Conversation xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<ConversationId Id="aO2NM+Q=" />
<ConversationTopic>Today's top news headlines</ConversationTopic>
<UniqueRecipients>
<String>Sadie Daniels</String>
</UniqueRecipients>
<GlobalUniqueRecipients>
<String>Sadie Daniels</String>
</GlobalUniqueRecipients>
<UniqueUnreadSenders>
<String>Ronnie Sturgis</String>
</UniqueUnreadSenders>
<GlobalUniqueUnreadSenders>
<String>Ronnie Sturgis</String>
</GlobalUniqueUnreadSenders>
<UniqueSenders>
<String>Ronnie Sturgis</String>
</UniqueSenders>
<GlobalUniqueSenders>
<String>Ronnie Sturgis</String>
</GlobalUniqueSenders>
<LastDeliveryTime>2014-02-18T20:42:26Z</LastDeliveryTime>
<GlobalLastDeliveryTime>2014-02-18T20:42:26Z</GlobalLastDeliveryTime>
<HasAttachments>false</HasAttachments>
<GlobalHasAttachments>false</GlobalHasAttachments>
<MessageCount>1</MessageCount>
<GlobalMessageCount>1</GlobalMessageCount>
<UnreadCount>1</UnreadCount>
<GlobalUnreadCount>1</GlobalUnreadCount>
<Size>9330</Size>
<GlobalSize>9330</GlobalSize>
<ItemClasses>
<ItemClass>IPM.Note</ItemClass>
</ItemClasses>
<GlobalItemClasses>
<ItemClass>IPM.Note</ItemClass>
</GlobalItemClasses>
<Importance>Normal</Importance>
<GlobalImportance>Normal</GlobalImportance>
<ItemIds>
<ItemId Id="sVCyAAA="
ChangeKey="CQAAAA==" />
</ItemIds>
<GlobalItemIds>
<ItemId Id="sVCyAAA="
ChangeKey="CQAAAA==" />
</GlobalItemIds>
<LastModifiedTime>2014-02-18T20:42:26Z</LastModifiedTime>
<InstanceKey>AQAAAAAAAQABAAAACbFYggAAAAA=</InstanceKey>
<HasIrm>false</HasIrm>
<GlobalHasIrm>false</GlobalHasIrm>
</Conversation>
</Conversations>
<TotalConversationsInView>1</TotalConversationsInView>
<IndexedOffset>1</IndexedOffset>
</FindConversationResponse>
</s:Body>
</s:Envelope>
Anwenden von Unterhaltungsaktionen mithilfe der verwalteten EWS-API
Zum Anwenden von Unterhaltungsaktionen auf Unterhaltungen stehen zahlreiche Methoden der verwalteten EWS-API zur Verfügung, wie im folgenden Beispiel gezeigt. In diesem Beispiel werden vorhandenen Unterhaltungselementen Kategorien hinzugefügt, und die gleichen Kategorien werden auf zukünftige Elemente der Unterhaltung angewendet. Außerdem wird veranschaulicht, wie die automatische Verschiebung von Unterhaltungselementen in einen Ordner aktiviert wird. In diesem Beispiel werden Elemente in den Ordner "Drafts" verschoben.
In diesem Beispiel wird davon ausgegangen, dass service ein gültiges ExchangeService-Objekt ist und der Benutzer bei einem Exchange-Server authentifiziert wurde.
Eine vollständige Liste der Methoden zur Anwendung von Unterhaltungsaktionen finden Sie in Tabelle 2.
static void ApplyConversationActions(ExchangeService service, Conversation conversation)
{
// Create a list of categories to apply to a conversation.
List<string> categories = new List<string>();
categories.Add("Customer");
categories.Add("System Integrator");
// Apply categorization to all items in the conversation and process the request
// synchronously after enabling this rule and after all item categorization has been applied.
// This method call results in an ApplyConversationAction call to EWS.
conversation.EnableAlwaysCategorizeItems(categories, true);
// Apply an always move rule to all items in the conversation and move the items
// to the Drafts folder. Process the request asynchronously and return the response.
// immediately. This method call results in an ApplyConversationAction call to EWS.
conversation.EnableAlwaysMoveItems(WellKnownFolderName.Drafts, false);
}
Anwenden von Unterhaltungsaktionen mithilfe von EWS
Sie können Unterhaltungsaktionen wie z. B. Kategorisieren, Löschen und Verschieben mithilfe des ApplyConversationAction-Vorgangs anwenden, wie im folgenden Beispiel gezeigt. In diesem Beispiel werden vorhandenen Unterhaltungselementen Kategorien hinzugefügt, und die gleichen Kategorien werden auf zukünftige Elemente der Unterhaltung angewendet. Außerdem wird veranschaulicht, wie die automatische Verschiebung von Unterhaltungselementen in einen Ordner aktiviert wird; in diesem Beispiel werden Elemente in den Ordner "Drafts" verschoben. Dies ist außerdem die XML-Anforderung, die die verwaltete EWS-API sendet, wenn Sie diese API zum Anwenden von Unterhaltungsktionen verwenden.
Das ConversationId-Element wurde der besseren Lesbarkeit halber gekürzt.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2013" />
</soap:Header>
<soap:Body>
<m:ApplyConversationAction>
<m:ConversationActions>
<t:ConversationAction>
<t:Action>AlwaysMove</t:Action>
<t:ConversationId Id="jG6WVpg=" />
<t:ProcessRightAway>false</t:ProcessRightAway>
<t:DestinationFolderId>
<t:DistinguishedFolderId Id="drafts" />
</t:DestinationFolderId>
</t:ConversationAction>
</m:ConversationActions>
</m:ApplyConversationAction>
</soap:Body>
</soap:Envelope>
Der Server antwortet auf die ApplyConversationAction-Anforderung mit einer ApplyConversationActionResponse-Nachricht, die den ResponseCode-Wert NoError enthält, um anzuzeigen, dass der Vorgang erfolgreich abgeschlossen wurde.
Abrufen von Elementen in einer einzelnen Unterhaltung mithilfe des Unterhaltungs-ID in der verwalteten EWS-API
Zum Abrufen von Elementen in einer Unterhaltung können Sie die ExchangeService.GetConversationItems-Methode der verwalteten EWS-API verwenden. Dieses Beispiel stellt den Satz Unterhaltungsknoten für die erste Unterhaltung im Posteingang bereit. Die Element-ID, der Betreff und die Empfangszeit jedes Elements werden in der Antwort zurückgegeben, zusammen mit den Eigenschaften für Unterhaltungsindex und Index der übergeordneten Unterhaltung. Mithilfe der Unterhaltungsindexeigenschaften können Sie die Knotenhierarchie rekonstruieren.
In diesem Beispiel werden alle Unterhaltungselemente in den Standardordnern "Delete Items" und "Drafts" ignoriert.
In diesem Beispiel wird davon ausgegangen, dass service ein gültiges ExchangeService-Objekt ist und der Benutzer bei einem Exchange-Server authentifiziert wurde.
static void GetConversationItemsSingleConversation(ExchangeService service)
{
try
{
// Find the first item in the mailbox.
// This method call results in an FindItem call to EWS.
FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Inbox,
new ItemView(1));
// Get the conversation identifier of the item.
ConversationId convId = results.Items[0].ConversationId;
// Specify the properties that will be
// returned for the items in the conversation.
PropertySet properties = new PropertySet(BasePropertySet.IdOnly,
ItemSchema.Subject,
ItemSchema.DateTimeReceived);
// Identify the folders to ignore.
Collection<FolderId> foldersToIgnore = new Collection<FolderId>()
{ WellKnownFolderName.DeletedItems, WellKnownFolderName.Drafts };
// Request the conversation items.
// This method call results in an GetConversationItems call to EWS.
ConversationResponse response = service.GetConversationItems(convId,
properties,
null,
foldersToIgnore,
ConversationSortOrder.TreeOrderDescending);
// Get the synchronization state of the conversation.
Console.WriteLine("SyncState: " + response.SyncState);
Collection<Item> items = new Collection<Item>();
// Process each node of conversation items.
foreach (ConversationNode node in response.ConversationNodes)
{
Console.WriteLine("Parent conversation index: " + node.ParentConversationIndex);
Console.WriteLine("Conversation index: " + node.ConversationIndex);
Console.WriteLine("Conversation node items:");
// Process each item in the conversation node.
foreach (Item item in node.Items)
{
Console.WriteLine(" Item ID: " + item.Id.UniqueId);
Console.WriteLine(" Subject: " + item.Subject);
Console.WriteLine(" Received: " + item.DateTimeReceived);
items.Add(item);
}
}
}
// This exception occurs if there is an error with the service.
catch (ServiceResponseException srException)
{
Console.WriteLine(srException);
}
}
Es wird empfohlen, die SyncState -Eigenschaft für nachfolgende Anforderungen zum Abrufen von Unterhaltungselementen zwischenzuspeichern.
Abrufen von mehreren Unterhaltungen mithilfe des ConversationRequest-Objekts in der verwalteten EWS-API
Sie können das ConversationRequest-Objekt und die ExchangeService.GetConversationItems-Methode der verwalteten EWS-API verwenden, um Elemente aus zwei oder mehr Unterhaltungen abzurufen. Dieses Beispiel stellt einen Satz Unterhaltungsknoten für die ersten zwei Unterhaltungen im Posteingang bereit. Die Element-ID, der Betreff und die Empfangszeit jedes Elements werden in der Antwort zurückgegeben, zusammen mit den Eigenschaften für Unterhaltungsindex und Index der übergeordneten Unterhaltung. Mithilfe der Unterhaltungsindexeigenschaften können Sie die Knotenhierarchie rekonstruieren. In diesem Beispiel wird davon ausgegangen, dass die ersten zwei Elemente im Posteingang aus verschiedenen Unterhaltungen stammen.
In diesem Beispiel werden alle Unterhaltungselemente in den Standardordnern "Delete Items" und "Drafts" ignoriert.
In diesem Beispiel wird davon ausgegangen, dass service ein gültiges ExchangeService-Objekt ist und der Benutzer bei einem Exchange-Server authentifiziert wurde.
static void GetConversationItemsManyConversations(ExchangeService service)
{
try
{
// Find the first two items in the Inbox. This item will be used to call the GetConversationItems operation.
// This method call results in an FindItem call to EWS.
FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Inbox, new ItemView(2));
// Get the conversation identifier of the first two items in the Inbox.
ConversationId convId1 = results.Items[0].ConversationId;
ConversationId convId2 = results.Items[1].ConversationId;
// Identify two conversation requests.
ConversationRequest convR1 = new ConversationRequest();
convR1.ConversationId = convId1;
ConversationRequest convR2 = new ConversationRequest();
convR2.ConversationId = convId2;
// Create a collection of conversations to fetch.
Collection<ConversationRequest> conversations = new Collection<ConversationRequest>();
conversations.Add(convR1);
conversations.Add(convR2);
// Specify the properties that will be returned for the items in the conversation.
PropertySet properties = new PropertySet(BasePropertySet.IdOnly,
ItemSchema.Subject,
ItemSchema.DateTimeReceived);
// Identify the folders to ignore.
Collection<FolderId> foldersToIgnore = new Collection<FolderId>()
{ WellKnownFolderName.DeletedItems, WellKnownFolderName.Drafts };
// Request the conversation items.
// This method call results in an GetConversationItems call to EWS.
ServiceResponseCollection<GetConversationItemsResponse> responses =
service.GetConversationItems(conversations, properties, foldersToIgnore,
ConversationSortOrder.TreeOrderDescending);
// Process each conversation.
foreach (GetConversationItemsResponse resp in responses)
{
// Identify the synchronization state of the conversation.
Console.WriteLine("Sync State: " + resp.Conversation.SyncState);
// Process each node in the conversation.
foreach (ConversationNode node in resp.Conversation.ConversationNodes)
{
Console.WriteLine("Parent conversation index: " + node.ParentConversationIndex);
Console.WriteLine("Conversation index: " + node.ConversationIndex);
Console.WriteLine("Conversation node items:");
// Process each item in the conversation node.
foreach (Item item in node.Items)
{
Console.WriteLine(" Item ID: " + item.Id.UniqueId);
Console.WriteLine(" Subject: " + item.Subject);
Console.WriteLine(" Received: " + item.DateTimeReceived);
}
}
}
}
// This exception occurs if there is an error with the service.
catch (ServiceResponseException srException)
{
Console.WriteLine(srException);
}
}
Als bewährte Methode wird empfohlen, nur die Eigenschaften zurückzugeben, die von der Clientanwendung benötigt werden, statt die FirstClassProperties -Option für die BasePropertySet -Klasse zu verwenden. Es wird empfohlen, die SyncState -Eigenschaft für nachfolgende Anforderungen zum Abrufen von Unterhaltungselementen zwischenzuspeichern.
Abrufen von Unterhaltungen mithilfe der Unterhaltungs-ID in EWS
Sie können Elemente in einer Unterhaltung mit dem EWS-Vorgang GetConversationItems abrufen. Dieses Beispiel stellt einen Satz Unterhaltungsknoten für die erste Unterhaltung im Posteingang bereit. Die Element-ID, der Betreff und die Empfangszeit jedes Elements werden in der Antwort zurückgegeben, zusammen mit den Eigenschaften für Unterhaltungsindex und Index der übergeordneten Unterhaltung. Mithilfe der Unterhaltungsindexeigenschaften können Sie die Knotenhierarchie rekonstruieren.
In diesem Beispiel werden alle Unterhaltungselemente in den Standardordnern "Delete Items" und "Drafts" ignoriert.
Das ConversationId-Element wurde der besseren Lesbarkeit halber gekürzt.
Um Elemente aus mehreren Unterhaltungen abzurufen, schließen Sie zusätzliche Conversation-Elemente ein.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2013" />
</soap:Header>
<soap:Body>
<m:GetConversationItems>
<m:ItemShape>
<t:BaseShape>IdOnly</t:BaseShape>
<t:AdditionalProperties>
<t:FieldURI FieldURI="item:Subject" />
<t:FieldURI FieldURI="item:DateTimeReceived" />
</t:AdditionalProperties>
</m:ItemShape>
<m:FoldersToIgnore>
<t:DistinguishedFolderId Id="deleteditems" />
<t:DistinguishedFolderId Id="drafts" />
</m:FoldersToIgnore>
<m:SortOrder>TreeOrderDescending</m:SortOrder>
<m:Conversations>
<t:Conversation>
<t:ConversationId Id="LUQFH6Q=" />
</t:Conversation>
</m:Conversations>
</m:GetConversationItems>
</soap:Body>
</soap:Envelope>
Der Server antwortet auf die GetConversationItems-Anforderung mit einer GetConversationItemsResponse-Nachricht, die den ResponseCode-Wert NoError enthält, um anzuzeigen, dass der Vorgang erfolgreich abgeschlossen wurde. Die Antwort umfasst außerdem die ConversationNodes in der Unterhaltung.
Die Elemente ItemId, SyncState und ConversationId wurden der besseren Lesbarkeit halber gekürzt.
<s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo MajorVersion="15"
MinorVersion="0"
MajorBuildNumber="873"
MinorBuildNumber="9"
Version="V2_9"
xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<m:GetConversationItemsResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<m:ResponseMessages>
<m:GetConversationItemsResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:Conversation>
<t:ConversationId Id="LUQFH6Q=" />
<t:SyncState>AAAAYAm1</t:SyncState>
<t:ConversationNodes>
<t:ConversationNode>
<t:InternetMessageId>&lt;994051d7c1a346efbfce8dec2cbad509
@SN2SR01MB006.com&gt;</t:InternetMessageId>
<t:ParentInternetMessageId>&lt;faa2b1df30074380abe3527b0cd18ca5
@SN2SR01MB001.com&gt;</t:ParentInternetMessageId>
<t:Items>
<t:Message>
<t:ItemId Id="AYB1NAAA="
ChangeKey="CQAAABYAAAD/oydcA+SPQZGbKWNyvNIZAAAAYCHq" />
<t:Subject>RE: Review Proposal for Tailspin Toys</t:Subject>
<t:DateTimeReceived>2014-01-02T13:15:00Z</t:DateTimeReceived>
</t:Message>
</t:Items>
</t:ConversationNode>
<t:ConversationNode>
<t:InternetMessageId>&lt;faa2b1df30074380abe3527b0cd18ca5
@SN2SR01MB001.com&gt;</t:InternetMessageId>
<t:ParentInternetMessageId>&lt;6a8e7658524b41cda7cdc3f23c1074a5
@SN2SR01MB001.com&gt;</t:ParentInternetMessageId>
<t:Items>
<t:Message>
<t:ItemId Id="lQAAAA=="
ChangeKey="CQAAABYAAAD/oydcA+SPQZGbKWNyvNIZAAAAYAu8" />
<t:Subject>RE: Review Proposal for Tailspin Toys</t:Subject>
<t:DateTimeReceived>2014-01-02T10:02:08Z</t:DateTimeReceived>
</t:Message>
</t:Items>
</t:ConversationNode>
<t:ConversationNode>
<t:InternetMessageId>&lt;bcdb185495834370a874a1e7ebedbb96
@SN2SR01MB005.com&gt;</t:InternetMessageId>
<t:ParentInternetMessageId>&lt;e52a4de6b98d484887e141da094a2ce6
@SN2SR01MB006.com&gt;</t:ParentInternetMessageId>
<t:Items>
<t:Message>
<t:ItemId Id="igAAAA=="
ChangeKey="CQAAABYAAAD/oydcA+SPQZGbKWNyvNIZAAAAYAuj" />
<t:Subject>RE: Review Proposal for Tailspin Toys</t:Subject>
<t:DateTimeReceived>2014-01-02T16:20:10Z</t:DateTimeReceived>
</t:Message>
</t:Items>
</t:ConversationNode>
<t:ConversationNode>
<t:InternetMessageId>&lt;e52a4de6b98d484887e141da094a2ce6
@SN2SR01MB006.com&gt;</t:InternetMessageId>
<t:ParentInternetMessageId>&lt;f0db3ead01db4fe087d98022149aa16f
@SN2SR01MB001.com&gt;</t:ParentInternetMessageId>
<t:Items>
<t:Message>
<t:ItemId Id="iwAAAA=="
ChangeKey="CQAAABYAAAD/oydcA+SPQZGbKWNyvNIZAAAAYAul" />
<t:Subject>RE: Review Proposal for Tailspin Toys</t:Subject>
<t:DateTimeReceived>2014-01-02T15:30:10Z</t:DateTimeReceived>
</t:Message>
</t:Items>
</t:ConversationNode>
<t:ConversationNode>
<t:InternetMessageId>&lt;f0db3ead01db4fe087d98022149aa16f
@SN2SR01MB001.com&gt;</t:InternetMessageId>
<t:ParentInternetMessageId>&lt;88b1884ecaaa4f68b081c009d827e8c6
@SN2SR01MB003.com&gt;</t:ParentInternetMessageId>
<t:Items>
<t:Message>
<t:ItemId Id="jQAAAA=="
ChangeKey="CQAAABYAAAD/oydcA+SPQZGbKWNyvNIZAAAAYAuq" />
<t:Subject>RE: Review Proposal for Tailspin Toys</t:Subject>
<t:DateTimeReceived>2014-01-02T14:20:10Z</t:DateTimeReceived>
</t:Message>
</t:Items>
</t:ConversationNode>
<t:ConversationNode>
<t:InternetMessageId>&lt;88b1884ecaaa4f68b081c009d827e8c6
@SN2SR01MB003.com&gt;</t:InternetMessageId>
<t:ParentInternetMessageId>&lt;faa2b1df30074380abe3527b0cd18ca5
@SN2SR01MB001.com&gt;</t:ParentInternetMessageId>
<t:Items>
<t:Message>
<t:ItemId Id="kAAAAA=="
ChangeKey="CQAAABYAAAD/oydcA+SPQZGbKWNyvNIZAAAAYAux" />
<t:Subject>RE: Review Proposal for Tailspin Toys</t:Subject>
<t:DateTimeReceived>2014-01-02T12:52:09Z</t:DateTimeReceived>
</t:Message>
</t:Items>
</t:ConversationNode>
</t:ConversationNodes>
</m:Conversation>
</m:GetConversationItemsResponseMessage>
</m:ResponseMessages>
</m:GetConversationItemsResponse>
</s:Body>
</s:Envelope>
Versionsunterschiede
Bei Verwendung von Exchange Server 2010 Service Pack 1 (SP1) stehen für die FindConversation-Methode weniger Optionen zur Verfügung, und der FindConversation-Vorgang enthält weniger Elemente in der Anforderung.
Tabelle 3. FindConversation-Unterstützung in Exchange 2010 SP1
EWS Managed API-Methode | EWS-Elemente |
---|---|
FindConversation (ViewBase, FolderId) |
IndexedPageItemView SortOrder ParentFolderId |
Die GetConversationItems-Methode der verwalteten EWS-API und der EWS-Vorgang GetConversationItems wurden in Exchange Server 2013 eingeführt. Anwendungen, die für frühere Exchange-Versionen erstellt werden, können lediglich Unterhaltungsaktionen auf Unterhaltungen anwenden, wie in Tabelle 2 aufgeführt.
Die FindConversation -Methode der verwalteten EWS-API und die EWS-Methode FindConversation sind in der ersten Version von Exchange 2010 und in Exchange 2007 nicht verfügbar.