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…

CreateItem

Create items in a mailbox, as well as to create response objects.

SendItem

Send unsent e-mail items.

MoveItem

Move items from one folder to another folder in a mailbox.

CopyItem

Copy an item. This operation creates a new item that has the same properties as the original, but has a unique identifier.

UpdateItem

Update item properties.

GetItem

Get properties for specific items. Use this operation to get item information, rather than to find items. See also FindItem.

DeleteItem

Delete items from a mailbox.

FindItem

Query for items in a mailbox. Use this operation to find items, rather than get item information. See also GetItem.

FindFolder

Query for folders in a mailbox. Use this operation to get folders, rather than folder property information. See also GetFolder.

CreateAttachment

Create an attachment and attach it to an item in a mailbox.

GetAttachment

Get an attachment stream from a mailbox.

DeleteAttachment

Delete an attachment from a mailbox.

CreateManagedFolder

Add a managed folder to a mailbox.

CreateFolder

Create a folder in a mailbox.

MoveFolder

Move a folder from one folder to another location in a mailbox.

CopyFolder

Copy a folder from one location and place the copy at another location in a mailbox.

UpdateFolder

Update the property of a in a mailbox.

GetFolder

Get properties for specific folders. Use this operation to get folder property information, rather than to get folders. See also FindFolder.

DeleteFolder

Delete a folder in a mailbox.

Subscribe

Create subscriptions for push and pull notifications.

GetEvents

Get notifications for pull notification clients.

Unsubscribe

Unsubscribe a client from a pull notifications.

ExpandDL

Expand the membership of a distribution list.

ResolveNames

Attempt to resolve ambiguous names against Active Directory and contact items in a mailbox.

SyncFolderHierarchy

Synchronize a folder hierarchy between a mailbox and a client application.

SyncFolderItems

Synchronize items in a folder between a mailbox and a client application.

SetUserOofSettings

Set the OOF status of a mailbox user.

GetUserOofSettings

Get the OOF status of a mailbox user.

GetUserAvailability

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.