Communiquer avec EWS à l'aide de l'API managée EWS
Découvrez comment utiliser l’API gérée par EWS pour communiquer avec EWS dans Exchange.
Remarque
Nous supprimons la possibilité d'utiliser l'authentification de base dans Exchange Online pour EWS à partir d'octobre 2022 Dépréciation de l'authentification de base dans Exchange Online. Vous devez utiliser l’authentification OAuth à la place. Authentifier une application EWS à l’aide d’OAuth
La classe ExchangeService dans l’API gérée par EWS contient les méthodes et propriétés que vous utilisez pour définir les informations d’identification de l’utilisateur, identifier le point de terminaison EWS, envoyer et recevoir des messages SOAP et configurer la liaison pour communiquer avec EWS. Avant de pouvoir utiliser l’API gérée par EWS pour effectuer une tâche, vous devez créer une instance de la classe ExchangeService et la lier à EWS.
Après avoir configuré un objet ExchangeService avec les informations d’identification de l’utilisateur et le point de terminaison EWS, tout objet de boîte aux lettres qui fait référence à l’objet ExchangeService peut utiliser les types de méthodes suivants pour communiquer avec EWS :
- Méthodes d’objet ExchangeService – Toutes les méthodes de l’objet ExchangeService qui ne sont pas héritées du type objet de base effectuent des appels à EWS.
- Méthodes d’éléments de boîte aux lettres et de types de dossiers Exchange.
Tableau 1. Méthodes de type d’élément de boîte aux lettres et de dossier qui communiquent avec EWS
Méthode | Comportement | Opérations qu’il appelle |
---|---|---|
Load |
Obtient les propriétés d’un élément, d’une pièce jointe ou d’un objet de configuration utilisateur. |
Opération GetItem Opération GetAttachment Opération GetUserConfiguration |
Lier |
Remplit un nouvel élément sur le client avec des informations provenant d’un élément existant sur le serveur. |
Opération GetItem |
Save |
Enregistre la copie de l’élément client sur le serveur. |
Opération UpdateItem Opération UpdateFolder Opération CreateItem Opération CreateFolder |
Mettre à jour |
Met à jour le serveur avec les modifications apportées au client. Pour les éléments et les dossiers, la méthode Mettre à jour utilise l’opération UpdateItem et l’opération UpdateFolder. |
Opération UpdateItem Opération UpdateFolder |
Supprimer |
Supprime un élément sur le serveur. Pour les éléments et les dossiers, la méthode Effacer utilise l’opération DeleteItem et l’opération DeleteFolder. |
Opération DeleteItem Opération DeleteFolder |
Copier |
Crée une copie de l’élément ou des dossiers sur le serveur. |
Opération CopyItem Opération CopyFolder |
Move |
Déplace des éléments ou des dossiers sur le serveur. |
Opération MoveItem Opération MoveFolder |
Pour utiliser l’API gérée par EWS pour communiquer avec EWS
Instanciez la classe ExchangeService.
ExchangeService service = new ExchangeService();
Remarque
L’instanciation de la classe ExchangeService avec un constructeur vide crée une instance liée à la dernière version connue d’Exchange. Vous pouvez également cibler une version spécifique d’Exchange en spécifiant la version en tant que paramètre.
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
Définissez les informations d’identification de l’utilisateur qui envoie des demandes au serveur Exchange. Si vous souhaitez vous connecter à EWS à partir d’un ordinateur connecté au domaine, à l’aide des informations d’identification de l’utilisateur authentifié, définissez la propriété UseDefaultCredentials sur l’objet ExchangeService sur true.
// Connect by using the default credentials of the authenticated user. service.UseDefaultCredentials = true;
Si vous ne souhaitez pas vous connecter à l’aide des informations d’identification de l’utilisateur par défaut, définissez la propriété Credentials sur l’objet ExchangeService pour spécifier explicitement les informations d’identification d’un autre utilisateur. Si vous utilisez Exchange Online ou Exchange Online dans le cadre d’Office 365, vous utiliserez l’authentification de base, avec simplement un nom d’utilisateur et un mot de passe. Un nom de domaine est requis pour l’authentification NTLM.
// Connect by using the credentials of user1 at contoso.com. service.Credentials = new WebCredentials("user1@contoso.com", "password");
Vous pouvez également spécifier les informations d’identification de l’utilisateur à l’aide de son nom de domaine et de son mot de passe.
// Connect by using the credentials of contoso/user1. service.Credentials = new WebCredentials("user1", "password", "contoso");
Remarque
Si la propriété UseDefaultCredentials est définie sur true, la valeur de la propriété Credentials est ignorée.
Définissez l’URL du point de terminaison EWS. Cette URL localise le fichier exchange.asmx sur le serveur d’accès au client.
// Use Autodiscover to set the URL endpoint. service.AutodiscoverUrl("user1@contoso.com");
Remarque
Bien que vous puissiez définir explicitement la propriété URL du ExchangeService sur une valeur codée en dur, nous vous recommandons d’utiliser le service de découverte automatique à la place, pour les raisons suivantes :
- La découverte automatique détermine le meilleur point de terminaison pour un utilisateur donné (point de terminaison le plus proche du serveur de boîtes aux lettres de l’utilisateur).
- L’URL EWS peut changer si de nouveaux serveurs d’accès au client sont déployés. Dans ce scénario, l’utilisation d’Autodiscover signifie qu’aucune modification de code n’est nécessaire.
- Vous devez définir l’URL explicitement ou appeler autodiscoverUrl, mais vous ne devez pas effectuer les deux.