The approach: Exchange Web Services Managed API

It has been a busy month for me so far. My research into development options for Exchange Server led me to several options, each not quite so straightforward as making an Outlook add-in – but still workable.

To put development options into context for Exchange Server, there are numerous solutions available for development targeting Exchange server; however these solutions affect different aspects of Exchange Server. There were only three that really stood out to me as potential solutions for my goal – manipulating items in user mailboxes. Those three options were:

  1. Messaging API (MAPI) [This is the first standard Microsoft used for Exchange functionality]
  2. Exchange Web Services Managed API (EWS) [This is a new standard Microsoft is using for Exchange functionality]
  3. Exchange Management Console (EMC) [Powershell interface to Exchange Server]

The best solution (at least at first) appeared to be Exchange Management Console. It looked to give the exact functionality I needed: the ability to push new items into Exchange Mailboxes programmatically. However this solution didn’t seem to fly with the senior I pitched the idea to. I didn’t like the idea of having to interface through PowerShell either so I explored other options.

I looked at MAPI and it had functionality for what I needed, particularly through Collaboration Data Objects (CDO). However CDO seemed to be getting phased out as it was taken out of the base Exchange Server install configuration starting with Exchange 2007. MAPI itself looked to have the potential to do what was needed; that changed however when I came across a blog post on the Microsoft Developer Network (MSDN) that neither CDO or MAPI is supported in .Net managed code.

So that left the Exchange Web Services Managed API. It looked to be largely the solution encouraged from Microsoft, and it had good documentation on MSDN. So I started looking into that. My next post tomorrow will outline what I found.

Leave a comment