Public folder access with EWS in Exchange

Exchange Server 2013

Learn about how to use EWS and the EWS Managed API to access public folders in Exchange.

Last modified: April 01, 2014

Applies to: EWS Managed API | Exchange Online | Exchange Server 2013 | Office 365

In this article
EWS operations and EWS Managed API methods for public folder access
Scenarios for using EWS and the EWS Managed API to work with public folders
Version differences
Additional resources

Public folders provide a shared repository of items that users in your organization can access. Exchange Online, Exchange Online as part of Office 365, and versions of Exchange starting with Exchange Server 2013 introduce a new architecture for public folders. Public folders in Exchange Online and Exchange 2013 use a specialized mailbox design (instead of a public folder database) to store the public folder hierarchy and public folder content. Public folder permissions are managed through Role Based Access Control (RBAC).

Client access technologies, like Exchange Web Services (EWS) and the EWS Managed API, provide programmatic access to both the public folder hierarchy and content items in a public folder database. This article provides information about how you can use EWS and the EWS Managed API to access public folders and public folders and public folder data.

Most of the core EWS operations support public folder access. You can use the folder and item operations and the EWS Managed API methods listed in the following table to work with public folders.

For information about EWS Managed API methods, see EWS Managed API namespaces.

EWS operation

EWS Managed API method

CreateFolder operation

Folder.Save()

UpdateFolder operation

Folder.Update()

DeleteFolder operation

Folder.Delete()

MoveFolder operation  1

Folder.Move()

CopyFolder operation  2

Folder.Copy()

GetFolder operation

Folder.Bind()

EmptyFolder operation  3

Folder.Empty()

FindFolder operation

ExchangeService.FindFolders()

Folder.FindFolders()

CreateItem operation

Item.Save()

MoveItem operation

Item.Move()

CopyItem operation

Item.Copy()

UpdateItem operation

Item.Update()

DeleteItem operation

Item.Delete()

FindItem operation  4

ExchangeService.FindItems()

Folder.FindItems()

GetItem operation

Item.Bind()

ConvertId operation  5

ExchangeService.ConvertId()

ExchangeService.ConvertIds()

1 Moving folders within a public folder is not available in versions of Exchange starting with Exchange 2013.
2 This operation is only applicable to public folders in Exchange Server 2007 and Exchange Server 2010.
3 This operation is only applicable to public folders in Exchange 2010.
4 Full text indexed search within a single public folder by means of the QueryString search option is supported in versions of Exchange starting with Exchange 2013.
5 The ConvertId operation does not correctly convert public folder identifiers from the EWS identifier to the store identifier. You can manually update the identifier that is returned as a workaround.

The following operations are not supported, or are partially supported, for public folders in versions of Exchange starting with Exchange 2013:

  • CopyFolder (not supported). You can use CreateFolder with the CopyItems operation to implement CopyFolder operation functionality.

  • EmptyFolder (not supported). You can use FindItem with the DeleteItem operation to implement EmptyFolder operation functionality.

  • MoveFolder (partially supported). You cannot move folders between private and public folders. You can move folders between private and public folders in Exchange 2007 and Exchange 2010. You can move folders within a public folder in all versions of Exchange.

EWS and the EWS Managed API do not support the following functionality for public folders:

  • Using the SyncFolderHierarchy and SyncFolderItems. Use the FindItem, GetItem, GetFolder, and FindFolder operations to synchronize items and folders in a public folder mailbox.

  • Deep-traversal searches of a public folder hierarchy. Use recursive FindFolder operation calls to traverse the public folder hierarchy.

  • Using the CreateFolderPath operation to create a folder hierarchy for public folders. You will need to use the CreateFolder operation for each folder level in a distinct folder hierarchy when you target a public folder mailbox.

  • Using the CreateItem operation to save copies of sent email messages. Instead, use the MoveItem operation to move a copy of the message into a public folder.

Public folders enable many important scenarios for Exchange mailbox users. You can empower users by using EWS and the EWS Managed API to implement custom solutions for accessing and using public folders and their contents.

Programmatically access email messages that have been sent to distribution lists

Exchange mailbox users can use public folders to store email messages that are sent to distribution lists. This is a convenient way to save distribution list history. You can use the FindItem operation in EWS or the ExchangeService.FindItems() and Folder.FindItems() methods in the EWS Managed API to access stored distribution list email messages.

Share important email messages and other mailbox items

Mailbox users can use public folders as a shared repository for mailbox items. Different users in an organization can share important email messages or contacts by using public folders. EWS can provide the access to these shared mailbox items. You can use the MoveItem operation in EWS or the Item.Move() method in the EWS Managed API to move email messages, contacts, and other mailbox items into and out of a public folder.

Public discussions with post items

Public folders are a convenient container for post items. Post items provide a way to use threaded conversations without having to send email messages between users. Users can use public folders and post items to host and maintain threaded conversations between different mailbox users in an organization. This way, mailbox users can access the shared history of a conversation that uses post items even if they were not part of the conversation. You can use the CreateItem operation in EWS or the Item.Save() method in the EWS Managed API to both create and respond to post items stored in a public folder.

In Exchange 2007 and Exchange 2010, the ConvertId operation works as expected when converting public folder identifiers from the EWS identifier to the store identifier.

Show:
© 2014 Microsoft