Synchronisation de la boîte aux lettres et les services EWS d'ExchangeMailbox synchronization and EWS in Exchange

Découvrez le fonctionnement de la synchronisation des boîtes aux lettres lorsque vous utilisez EWS pour accéder à Exchange.Find out how mailbox synchronization works when you use EWS to access Exchange.

EWS dans Exchange utilise deux types de synchronisation pour récupérer le contenu des boîtes aux lettres et les modifications apportées au contenu des boîtes aux lettres :EWS in Exchange uses two types of synchronization to retrieve mailbox content and changes to mailbox content:

  • Synchronisation de dossiersFolder synchronization

  • Synchronisation des élémentsItem synchronization

Dans cet article, vous découvrirez les deux types de synchronisation, le fonctionnement de la synchronisation, les modèles de conception de la synchronisation et les meilleures pratiques en matière de synchronisation.In this article, you'll learn about both types of synchronization, how synchronization works, synchronization design patterns, and synchronization best practices.

Synchronisation des éléments et des dossiersFolder and item synchronization

La synchronisation de dossiers synchronise une structure de dossiers ou une hiérarchie de dossiers.Folder synchronization syncs a folder structure, or folder hierarchy. La synchronisation d’éléments synchronise les éléments dans un dossier.Item synchronization syncs the items within a folder. Lorsque vous synchronisez des éléments, vous devez synchroniser chaque dossier de la boîte aux lettres indépendamment.When you synchronize items, you have to sync each folder in the mailbox independently. Vous pouvez utiliser EWS ou l’API managée EWS dans votre application pour implémenter la synchronisation des dossiers et des éléments.You can use EWS or the EWS Managed API in your application to implement both folder and item synchronization.

Tableau 1. Opérations EWS et méthodes de l’API managée EWS pour la synchronisation des dossiers et des élémentsTable 1. EWS operations and EWS Managed API methods for syncing folders and items

Opération EWSEWS operation Méthode d'API managée EWSEWS Managed API method
OpérationsyncfolderhierarchySyncFolderHierarchy
Méthode ExchangeService. OpérationsyncfolderhierarchyExchangeService.SyncFolderHierarchy method
SyncFolderItemsSyncFolderItems
Méthode ExchangeService. SyncFolderItemsExchangeService.SyncFolderItems method

L’étendue de la synchronisation qui se produit diffère selon qu’il s’agit d’une synchronisation initiale ou d’une synchronisation en cours, comme suit :The scope of the synchronization that occurs differs depending on whether it is an initial or an ongoing sync, as follows:

  • Une synchronisation initiale synchronise tous les dossiers ou éléments sur le serveur avec le client.An initial synchronization syncs all folders or items on the server to the client. Après la synchronisation initiale, le client a un état de synchronisation qu’il stocke pour les synchronisations futures.After the initial synchronization, the client has a sync state that it stores for future synchronizations. L’état de synchronisation représente toutes les modifications sur le serveur que le serveur a communiqué au client.The sync state represents all the changes on the server that the server communicated to the client.

  • Synchronisations en cours synchronisez tous les éléments ou dossiers qui ont été ajoutés, supprimés ou modifiés depuis la synchronisation précédente.Ongoing synchronizations sync any items or folders that have been added, deleted, or changed since the previous synchronization. Le serveur utilise l’état de synchronisation pour calculer les modifications apportées au client lors de chacune des boucles de synchronisation en cours.The server uses the sync state to calculate the changes to report to the client during each of the ongoing synchronization loops.

Chaque opération ou méthode de synchronisation renvoie une liste de modifications, pas le dossier ou le message réel qui a été modifié.Each synchronization method or operation returns a list of changes, not the actual folder or message that changed. Les modifications apportées aux éléments et aux dossiers sont signalées au moyen des types de modifications suivants :Changes to items and folders are reported by means of the following change types:

  • Créer — indique qu’un nouvel élément ou dossier doit être créé sur le client.Create — Indicates that a new item or folder should be created on the client.

  • Update : indique qu’un élément ou un dossier doit être modifié sur le client.Update — Indicates that an item or folder should be changed on the client.

  • Supprimer : indique qu’un élément ou un dossier doit être supprimé sur le client.Delete — Indicates that an item or folder should be deleted on the client.

  • ReadStateChange pour EWS ou ReadFlagChange pour l’API managée EWS : indique que l’état de lecture de l’élément a changé, qu’il soit de non lu ou lu à non lu.ReadStateChange for EWS or ReadFlagChange for the EWS Managed API — Indicates that that the read state of the item has changed, either from unread to read, or read to unread.

Dans Exchange Online, Exchange Online dans le cadre d’Office 365 et versions d’Exchange à partir d’Exchange 2010 SP2, les éléments et les dossiers sont renvoyés dans l’ordre du plus récent au plus ancien.In Exchange Online, Exchange Online as part of Office 365, and versions of Exchange starting with Exchange 2010 SP2, items and folders are returned in order from newest to oldest. Dans les versions précédentes d’Exchange, les éléments et les dossiers sont retournés du plus ancien au plus récent.In previous versions of Exchange, items and folders are returned from oldest to newest.

Comment fonctionne la synchronisation EWS ?How does EWS synchronization work?

En bref, si vous synchronisez une boîte aux lettres pour la première fois, utilisez le processus comme illustré dans la figure 1.In a nutshell, if you're synchronizing a mailbox for the first time, use the process as shown in Figure 1. Bien que vous puissiez utiliser d’autres modèles de conception de synchronisation, nous vous recommandons d’utiliser cette approche pour les applications évolutives.Although you can use other synchronization design patterns, we recommend this approach for scalable applications.

Figure 1. Modèle de conception de la synchronisation initialeFigure 1. Initial synchronization design pattern

Illustration présentant le modèle de conception de synchronisation initial. Le client appelle SyncFolderHierarchy et Load ou GetItem pour obtenir les dossiers, puis appelle SyncFolderItems et LoadPropertiesForItems ou GetItem pour obtenir les éléments de chaque dossier.

Si vous utilisez un état de synchronisation existant sur le client pour synchroniser une boîte aux lettres, nous vous recommandons d’implémenter le modèle de conception comme indiqué dans la figure 2.If you're using an existing sync state on the client to synchronize a mailbox, we recommend that you implement the design pattern as shown in Figure 2.

Figure 2. Modèle de conception de la synchronisation continueFigure 2. Ongoing synchronization design pattern

Illustration présentant le modèle de conception de synchronisation en cours. Un client reçoit une notification, puis appelle SyncFolderHierarchy ou SyncFolderItems ; il obtient les propriétés, puis met à jour le client ou met simplement à jour l’indicateur de lecture sur le client.

Modèles de conception de la synchronisationSynchronization design patterns

Vous pouvez utiliser l’un des deux modèles de conception de synchronisation dans votre application pour maintenir vos boîtes aux lettres à jour : la synchronisation basée sur les notifications ou l’approche de synchronisation uniquement.You can use one of two synchronization design patterns in your application to keep your mailboxes up to date: notification-based synchronization, or the synchronization-only approach.

La synchronisation basée sur les notifications, comme illustré à la figure 2, s’appuie sur des notifications pour alerter le client à appeler les méthodes SyncFolderItems ou opérationsyncfolderhierarchy de l’API managée EWS, ou les opérations EWS opérationsyncfolderhierarchy ou SyncFolderItems .Notification-based synchronization, as illustrated in Figure 2, relies on notifications to alert the client to make a call to the EWS Managed API SyncFolderItems or SyncFolderHierarchy methods, or the EWS SyncFolderHierarchy or SyncFolderItems operations. Ce type de synchronisation est généralement recommandé pour les applications évolutives, mais il n’est peut-être pas la meilleure approche pour tout le monde.This type of synchronization is generally recommended for scalable applications, but it might not be the best approach for everyone. La synchronisation basée sur les notifications présente les avantages suivants :Notification-based synchronization has the following advantage:

  • Les notifications sont optimisées pour réduire les appels à la base de données Exchange principale.Notifications are optimized to reduce calls to the backend Exchange database. Les files d’attente d’événements et les abonnements sont gérés par le serveur de boîtes aux lettres (ou par le serveur d’accès au client dans Exchange 2010 et Exchange 2007); Toutefois, la gestion des événements et des abonnements utilise moins de ressources que l’alternative, ce qui représente des appels de synchronisation plus fréquents à la base de données Exchange.Event queues and subscriptions are managed by the mailbox server (or the Client Access server in Exchange 2010 and Exchange 2007); however, the management of the events and subscriptions uses fewer resources than the alternative, which is more frequent synchronization calls to the Exchange database. En outre, Exchange possède des stratégies de limitation spécifiques pour les notifications et les abonnements, afin de préserver la consommation des ressources.In addition, Exchange has specific throttling policies for notifications and subscriptions, to safeguard consumption of resources.

Toutefois, il existe quelques inconvénients à l’utilisation de la synchronisation basée sur les notifications :However, there are also some drawbacks to using notification-based synchronization:

  • Les notifications sont bruyantes car la plupart des scénarios impliquent plusieurs notifications pour un objectif d’utilisateur.Notifications are noisy because most scenarios involve multiple notifications for one user intent. Ceci est particulièrement vrai pour le dossier calendrier.This is especially true of the Calendar folder. Par exemple, lorsqu’une demande de réunion unique est reçue, plusieurs notifications d’éléments et de dossiers sont créées, y compris une notification pour créer l’élément et une autre pour modifier l’élément.For example, when a single meeting request is received, multiple item and folder notifications are created, including a notification to create the item and another to modify the item. Pour atténuer cet inconvénient, vous pouvez créer un délai de quelques secondes dans votre appel Load, LoadPropertiesForItems, GetItemou GetFolder .One way to mitigate this drawback is to build a delay of a few seconds into your Load, LoadPropertiesForItems, GetItem, or GetFolder call. Dans le cas d’une demande de réunion, si vous avez effectué des appels à l’opération GetItem immédiatement, vous pouvez avoir un appel pour créer l’élément et un autre pour modifier l’élément.In the case of a meeting request, if you made calls to the GetItem operation immediately, you might have one call to create the item and another to modify the item. Au lieu de cela, en retardant l’appel, vous pouvez appeler l’opération GetItem une seule fois et obtenir les modifications qui englobent la création et la modification de l’élément en même temps.Instead, by delaying the call, you can call the GetItem operation once and get the changes that encompass the creation and the modification of the item at the same time.

  • Les notifications sont mises en file d’attente sur le serveur de boîtes aux lettres et les abonnements sont enregistrés sur le serveur de boîtes aux lettres.Notifications are queued on the mailbox server and subscriptions are saved on the mailbox server. Si le serveur de boîtes aux lettres qui gère l’abonnement n’est pas disponible, vous perdez toutes les nouvelles notifications, votre boîte aux lettres ne sera pas synchronisée et vous devrez vous reabonner aux notifications.If the mailbox server that manages the subscription is unavailable, you lose any new notifications, your mailbox won't synchronize, and you'll have to resubscribe to the notifications.

  • Vous devrez planifier des stratégies de minimisation en cas d’échec des notifications.You'll need to plan for mitigation strategies in the event that notifications fail. De cette manière, la deuxième approche, le modèle de conception de synchronisation uniquement, est plus résiliente que la synchronisation basée sur les notifications, car elle nécessite uniquement que le client conserve l’état de synchronisation ; il n’y a aucun problème lié à l’affinité avec le serveur de boîtes aux lettres qui gère l’abonnement.In this way, the second approach, the synchronization-only design pattern, is more resilient than notification-based synchronization, because it only requires that the client maintain the sync state — there are no issues with affinity to the mailbox server managing the subscription.

Si elle est implémentée comme recommandé, le modèle de conception de l’abonnement basé sur la notification s’appuie sur les éléments suivants :If implemented as recommended, the notification-based subscription design pattern relies on:

  • Notifications permettant de déterminer quand les données ont été modifiées.Notifications to determine when the data changed.

  • Les méthodes opérationsyncfolderhierarchy ou SYNCFOLDERITEMS de l’API managée EWS, ou les opérations EWS opérationsyncfolderhierarchy ou SyncFolderItems pour déterminer ce qui a changé, en optimisant le nombre d’événements de synchronisation renvoyés.The EWS Managed API SyncFolderHierarchy or SyncFolderItems methods, or the EWS SyncFolderHierarchy or SyncFolderItems operations to determine what changed, optimizing the number of sync events returned. Un nouvel élément a-t-il été créé, mis à jour ou supprimé ?Was a new item created, updated, or deleted? Tout ce que vous avez besoin de découvrir de ces méthodes, ne vous en faites pas confiance pour la liste des propriétés des modifications.That's all you need to know from these methods, don't rely on them for the property list of changes. (Ne pas appeler GetItem ou LoadPropertiesForItems sur tous les éléments ou dossiers renvoyés).(Don't do a GetItem or LoadPropertiesForItems call on all items or folders returned).

  • À l’aide des méthodes Load ou LOADPROPERTIESFORITEMS dans l’API managée EWS, ou de l’opération de GetItem de la fonction de GetItem pour déterminer la façon dont les données ont été modifiées et de récupérer les propriétés à partir du serveur si nécessaire, en organisant les requêtes regroupées en fonction de la quantité de données qui seront renvoyées.Using the Load or LoadPropertiesForItems methods in the EWS Managed API, or the EWS GetItem operation to determine how the data changed and to retrieve properties from the server as needed, organizing batched requests based on the amount of data that will be returned. Elle est suivie d’une comparaison entre les propriétés sur le client et celles qui viennent d’être renvoyées à partir du serveur, et enfin la création, la suppression ou la modification de l’élément ou du dossier sur le client.This is followed by a comparison of the properties on the client and those just returned from the server, and ultimately the creation, deletion, or modification of the item or folder on the client.

L’approche de synchronisation unique repose entièrement sur les méthodes d’API managée EWS SyncFolderItems et opérationsyncfolderhierarchy , ou sur les opérations EWS opérationsyncfolderhierarchy ou SyncFolderItems , que vous pouvez appeler en continu ou en tant qu’événement chronométré.The synchronization-only approach relies entirely on the SyncFolderItems and SyncFolderHierarchy EWS Managed API methods, or the SyncFolderHierarchy or SyncFolderItems EWS operations, which you can either call continuously, or as a timed event. Cette option présente également des avantages et des inconvénients.There are pros and cons to this option as well. L’approche de synchronisation uniquement est plus résiliente car l’état de synchronisation est stocké sur le client au niveau de la boîte aux lettres et une relation unique entre l’état de synchronisation et tout serveur de boîtes aux lettres qui gère l’abonnement aux notifications n’est pas nécessaire.The synchronization-only approach is more resilient because the sync state is stored on the client at the mailbox level and a unique relationship between the sync state and any the mailbox server that maintains the notification subscription is not required. L’approche de synchronisation peut survivre à un basculement de boîte aux lettres en raison de son indépendance par rapport au serveur de boîtes aux lettres.The synchronization approach can survive a mailbox failover because of its independence from the mailbox server. Toutefois, l’approche de synchronisation augmente la latence de l’utilisateur, car les éléments sont synchronisés à intervalles réguliers ou intermittents, et non en temps réel lorsque les éléments arrivent.However, the synchronization approach increases latency for the user because items are synchronized on a timed or intermittent basis — not in real time when items arrive. Cette approche est également plus coûteuse, car vous effectuez des appels à la base de données Exchange lorsqu’il est possible qu’aucune modification ne se soit produite.This approach is also more costly, because you're making calls to the Exchange database when it's possible that no changes have occurred.

Meilleures pratiques en matière de synchronisationSynchronization best practices

Pour les applications hautement évolutives, nous vous recommandons d’appliquer les meilleures pratiques suivantes pour synchroniser des boîtes aux lettres dans votre application :For highly scalable applications, we recommend that you apply the following best practices to synchronize mailboxes in your application:

  • Lors de l’appel de la méthode SyncFolderItems ou OPÉRATIONSYNCFOLDERHIERARCHY de l’API managée EWS, utilisez la valeur IdOnly pour le paramètre PropertySet , ou lorsque vous utilisez les opérations EWS opérationsyncfolderhierarchy ou SyncFolderItems utilisez la valeur IdOnly pour la valeur BaseShape afin de réduire les appels à la base de données Exchange.When calling the EWS Managed API SyncFolderItems or SyncFolderHierarchy method use the IdOnly value for the propertySet parameter, or when using the EWS SyncFolderHierarchy or SyncFolderItems operations use the IdOnly value for the BaseShape value to reduce calls to the Exchange database. Plus le nombre de propriétés que vous demandez dans le jeu de propriétés de l’appel SyncFolderItems ou opérationsyncfolderhierarchy , plus les appels back-end sont créés.The more properties you request in the property set of the SyncFolderItems or SyncFolderHierarchy call, the more backend calls are created. Un nouvel appel RPC est effectué pour chaque valeur de propriété demandée, alors qu’un seul appel RPC est effectué pour extraire toutes les ItemIds pour une demande, quel que soit le nombre de résultats à signaler.A new RPC call is made for every property value requested, whereas only one RPC call is made to retrieve all the ItemIds for a request - no matter the number of results to report. Ainsi, une requête IdOnly entraîne un appel de base de données, tandis qu’une demande de conteneur de propriétés pour l’objet et l’expéditeur génère trois appels de base de données : un pour l' objet, un pour l' expéditeuret un pour l' ItemId.So an IdOnly request results in one database call, whereas a property bag request for the subject and sender results in three database calls: one for the Subject, one for the Sender, and one for the ItemId.

  • N’appelez pas les méthodes Load ou LOADPROPERTIESFORITEMS de l’API managée EWS, ou les opérations EWS ou GetFolder , sur chaque élément d’une réponse de synchronisation.Don't call the EWS Managed API Load or LoadPropertiesForItems methods, or the EWS GetItem or GetFolder operations, on every item in a synchronization response. Analysez plutôt les résultats ; Recherchez les modifications qui ne nécessitent pas toutes les propriétés à récupérer, comme les modifications de l’état de lecture.Instead, parse the results; look for changes that don't require all the properties to be retrieved, like read state changes. Si une réponse inclut un changement d’état de lecture, mettez simplement à jour l’indicateur sur le client et vous avez terminé ; Il n’est pas nécessaire d’obtenir toutes les propriétés d’élément.If a response includes a read state change, just update the flag on the client and you're done; no need to get all the item properties. Et assurez-vous que vous ne dupliquez pas les efforts en effectuant des modifications provenant du même client.And make sure that you don't duplicate effort by making changes that originated from the same client. Par exemple, si la réponse de synchronisation inclut la suppression d’un élément et que la suppression s’est produite sur le client local, vous n’avez pas besoin de supprimer de nouveau le message ou d’obtenir toutes les propriétés de cet élément.For example, if the synchronization response includes the deletion of an item, and the deletion happened on the local client, you don't need to delete the message again or get all the properties for that item.

  • Évitez d’être limité en procédant comme suit :Avoid getting throttled, by doing the following:

    • Lorsque vous appelez la méthode LoadPropertiesForItems de l’API managée EWS ou l’opération EWS GetItem pour obtenir les éléments dans un lot, ne confondez pas trop d’éléments dans votre demande ; dans le cas contraire, vous pouvez être limité.When you do call the EWS Managed API LoadPropertiesForItems method or the EWS GetItem operation to get the items in a batch, do not batch too many items in your request; otherwise, you might get throttled. Nous vous recommandons d’inclure 10 éléments par lot.We recommend that you include 10 items per batch.

    • Ne pas faire trop de demandes trop rapidement.Don't make too many requests in too short a time. Cela entraînera également une limitation et augmentera le temps de réponse, plutôt que de le raccourcir.This will also cause throttling, and increase the response time, rather than shorten it.

    • Si vous effectuez le traitement par lots des éléments, tous les éléments sont regroupés avec les mêmes valeurs pour les attributs ID et ChangeKey de l’élément FolderId .If you are batching items, batch all items with the same values for the Id and ChangeKey attributes of the FolderId element.

    • Si vous obtenez des limitations, arrêtez l’envoi de demandes.If you do get throttled, stop sending requests. Les demandes de renvoi vont prolonger l’effort de récupération.Resending requests will prolong the recovery effort. Au lieu de cela, patientez jusqu’à ce qu’il expire, puis essayez à nouveau d’envoyer vos demandes de synchronisation.Instead, wait for the back off time to expire, and then try sending your sync requests again.

  • Selon le type d’événement de notification reçu :Depending on the type of notification event received:

    • Pour les événements NewMail ou modifié , appelez la méthode SyncFolderItems de l’API managée EWS ou l’opération EWS SyncFolderItems car les notifications ne fournissent pas de ChangeKey, et les notifications n’appellent pas les modifications de l’état de lecture.For NewMail or Modified events, call the EWS Managed API SyncFolderItems method or the EWS SyncFolderItems operation because notifications do not provide a ChangeKey, and notifications do not call out read state changes.

    • Pour les événements supprimés , si l’abonnement aux notifications était actif avant la synchronisation précédente, supprimez simplement l’événement localement.For Deleted events, if the notification subscription was active before the previous sync, just delete the event locally. Il n’est pas nécessaire d’appeler la méthode SyncFolderItems de l’API managée EWS ou l’opération EWS SyncFolderItems immédiatement après la suppression.You do not need to call the EWS Managed API SyncFolderItems method or the EWS SyncFolderItems operation immediately after the deletion.

    • Si un événement modifié est dû à une modification de l’état de lecture, n’appelez pas la méthode LOADPROPERTIESFORITEMS de l’API managée EWS ou l’opération de GetItem , il suffit de modifier l’indicateur sur l’élément.If a Modified event was caused by a read state change, do not call the EWS Managed API LoadPropertiesForItems method or the EWS GetItem operation , just change the flag on the item.

  • Lors de la synchronisation des données de calendrier, procédez comme suit :When synchronizing calendar data, proceed as follows:

    • Utilisez une approche similaire à la synchronisation basée sur les notifications.Use an approach similar to notification-based synchronization. Étant donné que SyncFolderItem n’inclut aucune logique de calendrier, utilisez la méthode FINDAPPOINTMENTSPOUR de l’API managée EWS ou l' opération EWS FindItem avec l’élément CalendarView pour afficher les rendez-vous entre deux dates, puis appelez la méthode LoadPropertiesForItems de l’API managée EWS ou l’opération de GetItem EWS pour extraire les propriétés de l’élément de calendrier.Because SyncFolderItem does not include any calendaring logic, use the EWS Managed API FindAppointments method, or the EWS FindItem operation with the CalendarView element to view appointments between two dates, and then call the EWS Managed API LoadPropertiesForItems method, or the EWS GetItem operation to retrieve the item properties for the calendar item.

    • Ne pas effectuer d’interrogation à l’aide de la méthode findappointmentspour de l’API managée EWS, ni de l’opération EWS FindItem avec un élément CalendarView .Do not poll using the EWS Managed API FindAppointments method, or the EWS FindItem operation with a CalendarView element.

  • Lors de la synchronisation des dossiers de recherche :When synchronizing search folders:

    • Utilisez une approche similaire à la synchronisation basée sur les notifications.Use an approach similar to notification-based synchronization.

    • Utilisez les notifications pour déterminer quand les données sont modifiées.Use notifications to determine when data changes.

    • Étant donné que vous ne pouvez pas utiliser SyncFolderItem dans un dossier de recherche, utilisez une méthode FINDITEMS de l’API managée EWS triée et paginée, ou une opération EWS FindItem avec l’ensemble d’éléments FractionalPageItemView et SortOrder , pour déterminer ce qui a été modifié.Because you can't use SyncFolderItem in a search folder, use a sorted and paged EWS Managed API FindItems method, or EWS FindItem operation with the FractionalPageItemView and SortOrder element set, to determine what changed.

    • Utilisez la méthode LoadPropertiesForItems de l’API managée EWS ou l’opération de GetItem pour extraire des données.Use the EWS Managed API LoadPropertiesForItems method or the EWS GetItem operation to retrieve data.

Synchronisation filtréeFiltered synchronization

La méthode SyncFolderItems de l’API managée EWS et l’opération EWS SyncFolderItems vous permettent d’ignorer des éléments spécifiques, en fonction de leur ItemIds, en définissant le paramètre ignoreItemIds dans l’API managée EWS ou l’élément ignore dans EWS.The EWS Managed API SyncFolderItems method and the EWS SyncFolderItems operation enable you to ignore specific items, based on their ItemIds, by setting the ignoreItemIds parameter in the EWS Managed API or the Ignore element in EWS. Ceci est idéal lorsque, par exemple, des personnes commencent à répondre à tous dans un message électronique envoyé à tous les membres de l’entreprise.This is ideal when, for example, individuals begin to reply all to an email message sent to everyone in the company.

Vous pouvez vous demander s’il est possible de filtrer mes notifications (et par conséquent de déclencher uniquement la synchronisation) si des propriétés spécifiques changent ?.You might wonder, can I filter my notifications (and therefore only trigger synchronization) if specific properties change? Bien que cela semble raisonnable, étant donné que les abonnements aux notifications sont basés sur le type de modification (Create, Update, Delete) et non sur la propriété en cours de mise à jour, vous ne pouvez pas filtrer les notifications de cette façon.Although that does seem reasonable, because notification subscriptions are based on the type of change (create, update, delete), and not the property being updated, you cannot filter notifications in this way. Au lieu de cela, vous pouvez effectuer les opérations suivantes :Instead, you can do the following:

  • Utilisez le modèle de conception de l’abonnement basé sur les notifications.Use the notification-based subscription design pattern.

  • Appelez de manière répétée les méthodes SyncFolderItems et OPÉRATIONSYNCFOLDERHIERARCHY de l’API managée EWS avec le paramètre PropertySet défini sur IdOnly pour que votre état de synchronisation soit actif.Call the EWS Managed API SyncFolderItems and SyncFolderHierarchy methods repeatedly with the propertySet parameter set to IdOnly to make your sync state current. Ou, si vous utilisez EWS, appelez les opérations opérationsyncfolderhierarchy et SyncFolderItems à plusieurs reprises, avec la valeur BaseShape définie sur IdOnly.Or if using EWS, call the SyncFolderHierarchy and SyncFolderItems operations repeatedly with the BaseShape value set to IdOnly.

  • Ignorez la réponse (ne l’analysez pas ou n’effectuez pas de comparaisons de propriétés).Discard the response (don't parse it or do any property comparisons).

  • Utilisez la méthode FindItems de l’API managée EWS ou l’opération FindItem EWS et le tri et la page pour préremplir les éléments de l’étendue filtrée qui vous intéressent.Use the EWS Managed API FindItems method or the EWS FindItem operation and sort and page to prepopulate the items in the filtered scope that you care about.

  • Utilisez votre état de synchronisation pour continuer à appeler la méthode SyncFolderItems de l’API managée EWS ou l’opération EWS SyncFolderItems , mais uniquement surveiller les modifications apportées à l’ensemble d’éléments filtré.Use your synchronization state to continue to call the EWS Managed API SyncFolderItems method or the EWS SyncFolderItems operation, but only monitor the changes in the filtered item set. Si de nouveaux éléments sont créés, vous devez voir si ces nouveaux éléments se trouvent dans votre portée filtrée.If new items are created, you'll have to see if those new items are within your filtered scope.

Dans cette sectionIn this section

Voir aussiSee also