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

  1. 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);

  2. 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.

  3. 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.

Voir aussi