magbo system

Introduction à Exchange EWS API

Aujourd’hui je vais expliquer brièvement les deux manières les plus communes afin d’interagir avec son serveur Exchange. Grâce à cela, nous pourrons ensuite effectuer des opérations du type réception et envoi d’email et bien plus encore…

Mais commençons par le début :

Partie I: Configuration et initialisation de la connexion avec le serveur Exchange

Introduction

Il y a plusieurs façons de se connecter et de communiquer avec le serveur Exchange, du plus simple (en utilisant la nouvelle API conçu récemment par Microsoft) jusqu’au plus compliqué (envoyer des requêtes XML/ SOAP).  Dans cet article je parlerai uniquement de l’API managée et du Webservice EWS offert par le serveur Exchange

Utilisation de l’API EWS Managed 1.1

Etape 0 : Que fait cette API ?

Elle permet de rendre plus facile l’utilisation des services offerts par le serveur exchange en encapsulant les fonctionnalités dans des méthodes bien pensées.

Etape 1 : Téléchargement de l’API

La DLL dont nous avons besoin (Microsoft.Exchange.WebServices.dll) se place par défaut dans le dossier C:\Program Files\Microsoft\Exchange\Web Services\1.1\

Etape 2 : Création d’un projet C# et ajout de la référence

Ouvrir Visual Studio, créer un nouveau projet Windows Forms Application et ajouter cette DLL dans références.

Etape 3 : Code basique nécessaire à l’initialisation du service

Copier ce qui suit dans votre code :

using Microsoft.Exchange.WebServices.Data; //Permet d'utiliser les fonctionnalités de l'API

Et ce qui suit dans le corps d’une méthode :

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
m_service.Credentials = new WebCredentials(sUser, sPwd, sDomain);
m_service.Url = new Uri("https://SERVER/EWS/Exchange.asmx");

Dans le cas d’une où le certificat de sécurité n’est pas signé, vous pourriez voir vos requêtes refusées, dans ce cas ajoutez ceci :

using System.Security.Cryptography.X509Certificates;
private static bool RemoteCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors){      return true;}

Et ce qui suit dans votre code :

ServicePointManager.ServerCertificateValidationCallback = RemoteCertificateValidationCallback;

Voilà, votre service est prêt à être utiliser. Voir chapitre suivant

Utilisation directe du Web Service EWS

L’utilisation du web service n’est pas conseillée par Microsoft, même si elle fournit quelques fonctionnalités poussées supplémentaires (pour le moment) par rapport à l’API(ExportItem par exemple, j’y reviendrais dans un prochain article)

Etape 1 : Création d’un projet C# et ajout de la web référence

Ouvrir Visual Studio, créer un nouveau projet Windows Form Application et ajouter dans une référence à un service. Taper ensuite l’adresse de votre service (https://SERVER/EWS/Exchange.asmx) et rechercher le service. Ajouter le  en spécifiant un namespace approprié (ici, je le nomme ExchangeWebRef)

Etape 2 : Code basique nécessaire à l’initialisation du service

using TestExchangeBasicFeatures.ExchangeWebRef;
//Connection directement avec le webservice:
m_exchangeServerBinding = new ExchangeServiceBinding();
ICredentials creds = new NetworkCredential(sUser, sPwd, sDomain);
m_exchangeServerBinding.Credentials = creds;
m_exchangeServerBinding.Url = @"https://SERVER/EWS/Exchange.asmx";
m_exchangeServerBinding.RequestServerVersionValue = new RequestServerVersion();
m_exchangeServerBinding.RequestServerVersionValue.Version = ExchangeVersionType.Exchange2010_SP1;

Voilà, votre WebService est prêt à être utilisé. Voir chapitre suivant

FAQ

Question : Dans le cas de l’utilisation du Web Service, je ne parviens pas à trouver la classe ExchangeServiceBinding dans la référence de service que j’ai ajouté.

Réponse : Ajouter le web service en passant par avancé>ajouter une référence web

3 réponses sur “Introduction à Exchange EWS API”

  1. Hi,

    Could you give me some help about EWS Exchange Managed API 1.1, in fact I have two questions

    1 I would like to know how to create a Exchange 2010 mailbox using java ? could I have a sample code

    2 On the msdn’s web site, i find that we can use Exchange 2010 EWS to create user configuration (this is the link http://msdn.microsoft.com/fr-fr/library/gg274402%28v=EXCHG.80%29.aspx ), for the example, what do xmldata and binarydata mean ? could i have a sample code

    thanks in advance

  2. L’API sera retirée dans 2 jours malheureusement :
    Please note: On Thursday May 15, 2014 this site will be retired. For code samples, please visit the MSDN Code Samples Gallery.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *