Introduction to Exchange Web Services in Exchange 2007, Part 2
This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.
Topic Last Modified: 2007-11-05
By Michael Mainer, Programming Writer
In part one of this series, I explained how Web services technology and Exchange Web Services simplifies and improves Microsoft® Exchange Server 2007 application development. In this article, I will introduce you to the operations that you can perform from an Exchange Web Services client. These operations cover much of the core functionality that contemporary corporate communication clients require, including availability information sharing, folder- and item-related activities, event notification, synchronization, and more.
What are Operations?
No, you don't have to wear white masks and scrubs to perform operations. Operations, in the context of Exchange Web Services, are abstract descriptions of actions that are supported by the service. For more information, see Web Service Distribution Language (WSDL) 1.1 (http://www.w3.org/TR/2001/NOTE-wsdl-20010315.html).. Essentially, the operations described in the WSDL file identify the messages that can be sent to the server and received from the server. Operations often map to the Web methods that are exposed by .NET Web services. (I will cover Web methods in more detail in part three of this series.)
And Now, Introducing the Operations…
Exchange 2007 provides 29 operations that map to 29 .NET Web methods that are exposed on the Client Access server. These operations are listed in the following table.
Operation | Used to… |
---|---|
Create items in a mailbox, as well as to create response objects. |
|
Send unsent e-mail items. |
|
Move items from one folder to another folder in a mailbox. |
|
Copy an item. This operation creates a new item that has the same properties as the original, but has a unique identifier. |
|
Update item properties. |
|
Get properties for specific items. Use this operation to get item information, rather than to find items. See also FindItem. |
|
Delete items from a mailbox. |
|
Query for items in a mailbox. Use this operation to find items, rather than get item information. See also GetItem. |
|
Query for folders in a mailbox. Use this operation to get folders, rather than folder property information. See also GetFolder. |
|
Create an attachment and attach it to an item in a mailbox. |
|
Get an attachment stream from a mailbox. |
|
Delete an attachment from a mailbox. |
|
Add a managed folder to a mailbox. |
|
Create a folder in a mailbox. |
|
Move a folder from one folder to another location in a mailbox. |
|
Copy a folder from one location and place the copy at another location in a mailbox. |
|
Update the property of a in a mailbox. |
|
Get properties for specific folders. Use this operation to get folder property information, rather than to get folders. See also FindFolder. |
|
Delete a folder in a mailbox. |
|
Create subscriptions for push and pull notifications. |
|
Get notifications for pull notification clients. |
|
Unsubscribe a client from a pull notifications. |
|
Expand the membership of a distribution list. |
|
Attempt to resolve ambiguous names against Active Directory and contact items in a mailbox. |
|
Synchronize a folder hierarchy between a mailbox and a client application. |
|
Synchronize items in a folder between a mailbox and a client application. |
|
Set the OOF status of a mailbox user. |
|
Get the OOF status of a mailbox user. |
|
Obtain the free/busy status of a mailbox user, as well as suggested meeting times for a set of mailbox users. |
Still to Come…
This article is the second of a three-part series. In part three, I will introduce the use of autogenerated proxies and how they will make you taller and smarter. Okay, they will not make you taller and smarter, but they may make your life more interesting by enabling you to use a convenient autogenerated managed code API to develop applications.