Spludlow Web Header

Exchange API

Exchange Server

Exchange Server is Microsoft’s email server product. It has to be run on a computer that is a member of a Windows Domain, you can’t run it stand alone. It has been around for ages and has many features but the primary functionality is to send and receive email and store messages (provide mailboxes).

The primary client is Microsoft Outlook (part of Office) this gives the user the most functionality possible. Exchange also provides OWA (Outlook Web Access) this is a web based user interface that runs on the Exchange server in IIS that provides a pretty good feature set but not as much as Outlook. For remote users and people without Outlook installed then OWA is a pretty good option.

This rest of this page will discuss how to write code against exchange.

EWS the Lowest Level

Over the years there have been many ways to interface with Exchange but these days the only real option is EWS (Exchange Web Services).

EWS is a standard SOAP XML Web Service running on the Exchange server, you HTTP POST an XML request and it returns back an XML response. Provided your XML request is correctly formed and you can parse the XML response then this technique can be used from any platform that can do HTTP like Linux or a toaster running an embedded OS.

You can look up all the XML stuff in the “EWS reference for Exchange” on the Microsoft site.

EWS Web Service Reference

As EWS is a SOAP web service you can add a service reference to it from Visual Studio just like you would with your own web services. This way is officially NOT recommended for Windows development see the next section.

If you are running SOAP tools on other platforms then this may be a good option to get you started quickly as you can browse the automatically created proxy classes without having to read too many docs.

EWS Managed API

The recommended way of interfacing with Exchange from .net is the Managed API. It’s a DLL library that contains everything you need in an easy to use way. You can just link to the DLL and start using it.

The latest version can be found in GitHub there is plenty of documentation on how to use it on the Microsoft site.


This optional assembly contains some methods for querying folders and there contained items.




Spludlow Web Footer