Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Exchange Web Service FolderId for a not well known folder name

I have a folder in an Exchange mailbox that is a child of the root (not Inbox).

How do I get the ID of such folder using EWS Managed API?

Only examples I find are those relating to WellKnownFolderNames.

like image 544
marcwenger Avatar asked Oct 27 '11 06:10

marcwenger


People also ask

What is folder bind?

Bind(ExchangeService, FolderId) Binds to an existing folder, whatever its actual type is, and loads its first class properties. Bind(ExchangeService, WellKnownFolderName) Binds to an existing folder, whatever its actual type is, and loads its first class properties.

What is IPF note?

IPF.Note. Email messages or folders. This is the generic folder class or type for the following EWS Managed API WellKnownFolderName folders and EWS DistinguishedFolderId folders: Root (IPM subtree) NonIpmSubtree.

What is Exchange EWS service?

Exchange Web Services (EWS) is an application program interface (API) that allows programmers to access Microsoft Exchange items such as calendars, contacts and email.

What is EWS Managed API?

The EWS Managed API provides an intuitive, easy-to-use object model for sending and receiving web service messages from client applications, portal applications, and service applications.


1 Answers

You can find all Folders with the FindFolders method. Use WellKnownFolderName.Root to show all your folders of your Inbox. You have to create a FolderView and add the properties you want to see (ID and DisplayName for example). Set the traversal to Deep to find all of your folders. In my example, I'm looking for the folder with the DisplayName "Test".

// set Server ExchangeService server = new ExchangeService(ExchangeVersion.Exchange2007_SP1); server.UseDefaultCredentials = true; string configUrl = @"https://yourServerAddress.asmx"; server.Url = new Uri(configUrl);  // set View FolderView view = new FolderView(100); view.PropertySet = new PropertySet(BasePropertySet.IdOnly); view.PropertySet.Add(FolderSchema.DisplayName); view.Traversal = FolderTraversal.Deep;  FindFoldersResults findFolderResults = server.FindFolders(WellKnownFolderName.Root, view);  // find specific folder foreach (Folder f in findFolderResults) {     // show FolderId of the folder "Test"     if (f.DisplayName == "Test")     {         Console.WriteLine(f.Id);     } } 
like image 190
andreaspfr Avatar answered Sep 22 '22 09:09

andreaspfr