Utiliser des conversations à l’aide d’EWS dans Exchange

Découvrez comment rechercher des conversations, appliquer des actions aux conversations et obtenir des éléments dans des conversations à l’aide de l’API managée EWS ou EWS dans Exchange.

Dans le contexte d’Exchange, les conversations sont un moyen de regrouper et de gérer un ensemble associé de messages électroniques. Ils peuvent également fournir un moyen d’afficher les messages associés. Exchange définit les conversations en fonction de la valeur d’ID de message du premier e-mail d’un thread. Toutes les réponses et les messages associés font référence à l’en-tête Message-ID du message d’origine dans leurs en-têtes Références et In-Reply-To .

En outre, à l’intérieur de l’enveloppe SOAP, pour chaque message reçu dans une boîte aux lettres, Exchange définit des propriétés et des éléments spécifiques.

Tableau 1. Propriétés et éléments de conversation définis sur tous les messages électroniques

Propriété d’API managée EWS Élément EWS Description
ConversationTopic
ConversationTopic
Contient une forme normalisée de la valeur d’objet qui a été définie sur le message d’origine. Il s’agit de la même chose que l’en-tête de message Thread-Topic . Cette valeur est en lecture seule.
ConversationIndex
ConversationIndex
Représente la position de l’élément dans la conversation. Il s’agit de la même chose que l’en-tête de message Thread-Index . Cette valeur est en lecture seule.

Exchange applique la même valeur ConversationTopic aux réponses au premier message, puis met à jour la valeur ConversationIndex pour représenter la position du message par rapport au message d’origine. Si l’objet du thread d’e-mail change, Exchange applique une nouvelle valeur ConversationTopic et de nouvelles valeurs ConversationIndex à la nouvelle conversation.

Tableau 2. Méthodes d’API managée EWS et opérations EWS pour travailler avec des conversations

Afin de... Utiliser cette ou ces méthodes d’API managée EWS Utiliser cette opération EWS
Rechercher des conversations
ExchangeService.FindConversation
FindConversation
Appliquer des actions de conversation
Conversation.EnableAlwaysCategorizeItems
Conversation.EnableAlwaysDeleteItems
Conversation.EnableAlwaysMoveItems
ExchangeService.CopyItemsInConversations
ExchangeService.DeleteItemsInConversations
ExchangeService.DisableAlwaysCategorizeItemsInConversations
ExchangeService.DisableAlwaysDeleteItemsInConversations
ExchangeService.DisableAlwaysMoveItemsInConversations
ExchangeService.EnableAlwaysCategorizeItemsInConversations
ExchangeService.EnableAlwaysDeleteItemsInConversations
ExchangeService.EnableAlwaysMoveItemsInConversations
ExchangeService.MoveItemsInConversations
ExchangeService.SetFlagStatusForItemsInConversations
ExchangeService.SetReadStateForItemsInConversations
ExchangeService.SetRetentionPolicyForItemsInConversations
ApplyConversationAction
Obtenir des éléments dans une ou plusieurs conversations
ExchangeService.GetConversationItems
GetConversationItems

Rechercher une conversation à l’aide de l’API managée EWS

Vous pouvez trouver des conversations à l’aide de la méthode d’API managée EWS ExchangeService.FindConversation , comme illustré dans l’exemple suivant. Cet exemple obtient les 10 premières conversations du dossier Boîte de réception dont l’objet contient le mot « actualités ». L’exemple écrit ensuite la rubrique de conversation, l’heure de la dernière remise et la liste globale des destinataires uniques dans la fenêtre de console.

Cet exemple suppose que le service est un objetExchangeService valide et que l’utilisateur a bien été authentifié pour un serveur Exchange.

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("");
    }
}

Rechercher une conversation à l’aide d’EWS

Vous pouvez trouver des conversations à l’aide de l’opération FindConversation EWS, comme illustré dans l’exemple suivant. Cet exemple obtient les dix premières conversations du dossier Boîte de réception dont l’objet contient le mot « actualités ». Il s’agit également de la requête XML que l’API managée EWS envoie lorsque vous utilisez l’API managée EWS pour rechercher une conversation.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages"
               xmlns:t="https://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>

Le serveur répond à la demande FindConversation avec un message FindConversationResponse qui inclut la valeur ResponseCodeNoError pour indiquer que l’opération s’est terminée avec succès. La réponse inclut également la seule conversation dans la boîte aux lettres dont l’objet contient le mot « actualités ».

Les éléments ItemId, ChangeKey et ConversationId ont été raccourcis pour plus de lisibilité.

<?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="https://schemas.microsoft.com/exchange/services/2006/types"
                         xmlns="https://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="https://schemas.microsoft.com/exchange/services/2006/messages">
      <ResponseCode>NoError</ResponseCode>
      <Conversations>
        <Conversation xmlns="https://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>

Appliquer des actions de conversation à l’aide de l’API managée EWS

Vous pouvez appliquer des actions de conversation à une conversation à l’aide d’un certain nombre de méthodes d’API managée EWS, comme illustré dans l’exemple suivant. Cet exemple montre comment ajouter des catégories à des éléments existants dans une conversation et appliquer les mêmes catégories aux éléments futurs de la conversation. Il montre également comment activer le déplacement automatique des éléments de la conversation vers un dossier. Dans cet exemple, les éléments sont déplacés vers le dossier Brouillons.

Cet exemple suppose que le service est un objetExchangeService valide et que l’utilisateur a bien été authentifié pour un serveur Exchange.

Pour obtenir la liste complète des méthodes qui appliquent des actions de conversation, consultez le tableau 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);
}

Appliquer des actions de conversation à l’aide d’EWS

Vous pouvez appliquer des actions de conversation, telles que catégoriser, supprimer et déplacer, à l’aide de l’opération ApplyConversationAction , comme illustré dans l’exemple suivant. Cet exemple montre comment ajouter des catégories à des éléments existants dans une conversation et appliquer les mêmes catégories aux éléments futurs de la conversation. Il montre également comment activer le déplacement automatique des éléments de la conversation vers un dossier ; Dans cet exemple, les éléments sont déplacés vers le dossier Brouillons. Il s’agit également de la requête XML que l’API managée EWS envoie lorsque vous utilisez l’API managée EWS pour appliquer des actions de conversation.

L’élément ConversationId a été raccourci pour plus de lisibilité.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages"
               xmlns:t="https://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>

Le serveur répond à la requête ApplyConversationAction avec un message ApplyConversationActionResponse qui inclut la valeur ResponseCodeNoError pour indiquer que l’opération s’est terminée correctement.

Obtenir des éléments dans une seule conversation à l’aide de l’identificateur de conversation dans l’API managée EWS

Vous pouvez obtenir des éléments d’une conversation à l’aide de la méthode d’API managée EWS ExchangeService.GetConversationItems . Cet exemple fournit l’ensemble des nœuds de conversation pour la première conversation dans la boîte de réception. L’identificateur d’élément, l’objet et l’heure de réception de chaque élément sont retournés dans la réponse, ainsi que les propriétés de l’index de conversation et de l’index de conversation parent. Vous pouvez utiliser les propriétés de l’index de conversation pour reconstruire la hiérarchie des nœuds.

Dans cet exemple, tous les éléments de conversation des dossiers Éléments supprimés et Brouillons par défaut sont ignorés.

Cet exemple suppose que le service est un objetExchangeService valide et que l’utilisateur a bien été authentifié pour un serveur Exchange.

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);
   }
}

Nous vous recommandons de mettre en cache la propriété SyncState pour les demandes suivantes d’obtention d’éléments dans la conversation.

Obtenir des éléments dans de nombreuses conversations à l’aide de l’objet ConversationRequest dans l’API managée EWS

Vous pouvez utiliser l’objet ConversationRequest et la méthode d’API managée EWS ExchangeService.GetConversationItems pour obtenir des éléments de deux conversations ou plus. Cet exemple fournit un ensemble de nœuds de conversation pour les deux premières conversations dans la boîte de réception. L’identificateur de l’élément, l’objet et l’heure de réception de chaque élément sont retournés dans la réponse, ainsi que les propriétés de l’index de conversation et de l’index de conversation parent. Vous pouvez utiliser les propriétés de l’index de conversation pour reconstruire la hiérarchie des nœuds. Cet exemple suppose que les deux premiers éléments de la boîte de réception proviennent de conversations différentes.

Dans cet exemple, tous les éléments de conversation des dossiers Éléments supprimés et Brouillons par défaut sont ignorés.

Cet exemple suppose que le service est un objetExchangeService valide et que l’utilisateur a bien été authentifié pour un serveur Exchange.

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);
   }
}

Nous vous recommandons de renvoyer uniquement les propriétés requises par l’application cliente, plutôt que d’utiliser l’option FirstClassProperties pour la classe BasePropertySet . Nous vous recommandons de mettre en cache la propriété SyncState pour les demandes suivantes d’obtention d’éléments dans la conversation.

Obtenir des éléments dans des conversations à l’aide de l’identificateur de conversation dans EWS

Vous pouvez obtenir des éléments dans une conversation à l’aide de l’opération EWS GetConversationItems . Cet exemple fournit un ensemble de nœuds de conversation pour la première conversation dans la boîte de réception. L’identificateur d’élément, l’objet et l’heure de réception de chaque élément sont retournés dans la réponse, ainsi que les propriétés de l’index de conversation et de l’index de conversation parent. Vous pouvez utiliser les propriétés de l’index de conversation pour reconstruire la hiérarchie des nœuds.

Dans cet exemple, tous les éléments de conversation des dossiers Éléments supprimés et Brouillons par défaut sont ignorés.

L’élément ConversationId a été raccourci pour plus de lisibilité.

Pour obtenir des éléments de plusieurs conversations, incluez des éléments conversation supplémentaires.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:m=https://schemas.microsoft.com/exchange/services/2006/messages
               xmlns:t="https://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>

Le serveur répond à la requête GetConversationItems avec un message GetConversationItemsResponse qui inclut la valeur ResponseCodeNoError pour indiquer que l’opération s’est terminée avec succès. La réponse inclut également les ConversationNodes dans la conversation.

Les éléments ItemId, SyncState et ConversationId ont été raccourcis pour plus de lisibilité.

<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="https://schemas.microsoft.com/exchange/services/2006/types"
                         xmlns="https://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="https://schemas.microsoft.com/exchange/services/2006/messages"
                                    xmlns:t="https://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>&amp;lt;994051d7c1a346efbfce8dec2cbad509
                    @SN2SR01MB006.com&amp;gt;</t:InternetMessageId>
                <t:ParentInternetMessageId>&amp;lt;faa2b1df30074380abe3527b0cd18ca5
                    @SN2SR01MB001.com&amp;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>&amp;lt;faa2b1df30074380abe3527b0cd18ca5
                    @SN2SR01MB001.com&amp;gt;</t:InternetMessageId>
                <t:ParentInternetMessageId>&amp;lt;6a8e7658524b41cda7cdc3f23c1074a5
                    @SN2SR01MB001.com&amp;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>&amp;lt;bcdb185495834370a874a1e7ebedbb96
                    @SN2SR01MB005.com&amp;gt;</t:InternetMessageId>
                <t:ParentInternetMessageId>&amp;lt;e52a4de6b98d484887e141da094a2ce6
                    @SN2SR01MB006.com&amp;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>&amp;lt;e52a4de6b98d484887e141da094a2ce6
                    @SN2SR01MB006.com&amp;gt;</t:InternetMessageId>
                <t:ParentInternetMessageId>&amp;lt;f0db3ead01db4fe087d98022149aa16f
                    @SN2SR01MB001.com&amp;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>&amp;lt;f0db3ead01db4fe087d98022149aa16f
                    @SN2SR01MB001.com&amp;gt;</t:InternetMessageId>
                <t:ParentInternetMessageId>&amp;lt;88b1884ecaaa4f68b081c009d827e8c6
                    @SN2SR01MB003.com&amp;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>&amp;lt;88b1884ecaaa4f68b081c009d827e8c6
                    @SN2SR01MB003.com&amp;gt;</t:InternetMessageId>
                <t:ParentInternetMessageId>&amp;lt;faa2b1df30074380abe3527b0cd18ca5
                    @SN2SR01MB001.com&amp;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>

Différences entre les versions

Lorsque vous utilisez Exchange Server 2010 Service Pack 1 (SP1), la méthode FindConversation a moins d’options disponibles et l’opération FindConversation contient moins d’éléments dans la requête.

Tableau 3. Prise en charge de la version d’Exchange 2010 SP1 pour FindConversation

Méthode d'API managée EWS Éléments EWS
FindConversation (ViewBase, FolderId)
IndexedPageItemView
SortOrder
ParentFolderId

La méthode d’API managée GetConversationItems et l’opération GetConversationItems EWS ont été introduites dans Exchange Server 2013. Les applications qui ciblent des versions antérieures d’Exchange peuvent uniquement appliquer des actions de conversation aux conversations, comme indiqué dans le tableau 2.

La méthode d’API managée FindConversation EWS et la méthode FindConversation EWS ne sont pas disponibles dans la version initiale d’Exchange 2010 ou dans Exchange 2007.

Voir aussi