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
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
You can find the java version of the EWS API here:
http://archive.msdn.microsoft.com/ewsjavaapi
I haven’t implemented anything in JAVA so far, so I won’t be able to give you any code.
There is this very useful forum you need to know if you have issues during EWS developement (and if you want to find some piece of code)
http://social.technet.microsoft.com/Forums/en-US/exchangesvrdevelopment/threads
Hope it helps!
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.