This documentation is archived and is not being maintained.
Synchronizing Mailboxes in Exchange 2010
Exchange Server 2010
Last modified: May 21, 2009
Applies to: Exchange Server 2007 | Exchange Server 2010
You can use Exchange Web Services to synchronize items between a computer that is running Microsoft Exchange Server 2010 and the client.
This example shows you how to use the SyncFolderItems Operation to synchronize items.
static void SyncItems(string syncState, ExchangeServiceBinding esb) { // Create the synchronize items request. SyncFolderItemsType syncItemsRequest = new SyncFolderItemsType(); // Specify the properties to synchronize. syncItemsRequest.ItemShape = new ItemResponseShapeType(); syncItemsRequest.ItemShape.BaseShape = DefaultShapeNamesType.Default; // Specify the folder to synchronize. syncItemsRequest.SyncFolderId = new TargetFolderIdType(); DistinguishedFolderIdType drafts = new DistinguishedFolderIdType(); drafts.Id = DistinguishedFolderIdNameType.drafts; syncItemsRequest.SyncFolderId.Item = drafts; // Specify the synchronization state if this is not the first attempt to // synchronize the client and the Exchange server. if (syncState.Length != 0) { syncItemsRequest.SyncState = syncState; } // Specify the number of items to return. syncItemsRequest.MaxChangesReturned = 20; try { // Send the request and get the response. SyncFolderItemsResponseType syncItemsResponse = esb.SyncFolderItems(syncItemsRequest); SyncFolderItemsResponseMessageType responseMessage = new SyncFolderItemsResponseMessageType(); responseMessage = syncItemsResponse.ResponseMessages.Items[0] as SyncFolderItemsResponseMessageType; // Determine whether the request was a success. if (responseMessage.ResponseClass == ResponseClassType.Error) { throw new Exception(responseMessage.MessageText); } else { string changes = responseMessage.Changes.Items.Length.ToString(); Console.WriteLine("Number of items to synchronize: " + changes); } } catch (Exception e) { Console.WriteLine(e.Message); } }
<?xml version="1.0" encoding="utf-8" ?>
<SyncFolderItems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ItemShape xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<BaseShape xmlns="http://schemas.microsoft.com/exchange/services/2006/types">Default</BaseShape>
</ItemShape>
<SyncFolderId xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<DistinguishedFolderId Id="drafts" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
</SyncFolderId>
<MaxChangesReturned xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">20</MaxChangesReturned>
</SyncFolderItems>
<?xml version="1.0" encoding="utf-8" ?>
<SyncFolderItemsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ResponseMessages xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<SyncFolderItemsResponseMessage ResponseClass="Success">
<ResponseCode>NoError</ResponseCode>
<SyncState>H4sIAAAA=</SyncState>
<IncludesLastItemInRange>true</IncludesLastItemInRange>
<Changes>
<Create xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<Message>
<ItemId Id="AAAlAFVzA" ChangeKey="CQAAfYAD" />
<Subject>Test</Subject>
<Sensitivity>Normal</Sensitivity>
<Size>879</Size>
<DateTimeSent>2006-10-27T23:20:39Z</DateTimeSent>
<DateTimeCreated>2006-10-27T23:39:03Z</DateTimeCreated>
<HasAttachments>false</HasAttachments>
<From>
<Mailbox>
<Name>User1</Name>
<EmailAddress>User1@example.com</EmailAddress>
<RoutingType>SMTP</RoutingType>
</Mailbox>
</From>
<IsRead>true</IsRead>
</Message>
</Create>
<Create xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<Message>
<ItemId Id="AAAlAFVz" ChangeKey="CQAY+Z" />
<Subject>Project Action</Subject>
<Sensitivity>Normal</Sensitivity>
<Size>484</Size>
<DateTimeSent>2006-11-02T23:49:31Z</DateTimeSent>
<DateTimeCreated>2006-11-02T23:49:31Z</DateTimeCreated>
<HasAttachments>false</HasAttachments>
<From>
<Mailbox>
<Name>User1</Name>
<EmailAddress>User1@example.com</EmailAddress>
<RoutingType>SMTP</RoutingType>
</Mailbox>
</From>
<IsRead>true</IsRead>
</Message>
</Create>
</Changes>
</SyncFolderItemsResponseMessage>
</ResponseMessages>
</SyncFolderItemsResponse>
The SyncState and item identifiers have been shortened to preserve readability.
Show: