Rebex Graph

.NET client library for MS Graph API (Exchange Online)

Download 30-day free trial Buy from $199
More .NET libraries

Back to feature list...

Folder operations

The sample code on this page assumes you have already connected and authenticated to Microsoft 365 (Exchange Online) server.

Folder IDs 

A folder ID uniquely identifies a folder at the Exchange Online (Microsoft 365) server. In Rebex Graph, folder IDs are represented by GraphFolderId class.

// create Graph client, connect, log in
// ...

// get list of folders in the mailbox
GraphFolderCollection folders = client.GetFolderList();

// display IDs and names of those folders
foreach (GraphFolderInfo folder in folders)
    Console.WriteLine("{0}: {1}", folder.Id, folder.Name);

Tip: To get a list of subfolders, use GetFolderList() method and specify the GraphFolderId argument.

Tip: Accessing shared mailboxes is possible as well.

Well-known folder IDs 

Well-known folders such as 'Inbox', 'Drafts' or 'Sent Items' are accessible using a set predefined folder IDs. These constant IDs are accessible through static properties of GraphFolderId class:

  • GraphFolderId.Root - The root folder.
  • GraphFolderId.Inbox - The "Inbox" folder.
  • GraphFolderId.Drafts - The "Drafts" folder.
  • GraphFolderId.SentItems - The "Sent Items" folder.
  • GraphFolderId.Outbox - The "Outbox" folder.
  • GraphFolderId.Archive - The "Archive" folder.
  • GraphFolderId.DeletedItems - The "Deleted Items" folder.
  • GraphFolderId.Deletions - The "Deletions" folder.
  • GraphFolderId.JunkEmail - The "Junk E-mail" folder.
  • GraphFolderId.Scheduled - The "Scheduled" folder (also known as "Snoozed").
  • GraphFolderId.SearchFolders - The "Search Folders" folder (also known as "Finder").

Getting list of subfolders 

To get a list of subfolders, use GetFolderList() method:

// create Graph client instance, connect, log in
// ...

// find the 'Orders' folder (in the root folder)
GraphFolderCollection folders = client.GetFolderList();
GraphFolderInfo folderOrders = folders.Where(s => s.Name == "Orders").First();

// list subfolders of the 'Orders' folder
GraphFolderCollection subfolders = client.GetFolderList(folderOrders.Id);

Back to feature list...