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.
Spludlow.Exchange.DLL
This optional assembly contains some methods for querying
folders and there contained items.