Управление почтовыми папками с помощью IGraphClient

Aspose.Email IGraphClient интерфейс предоставляет методы для создания, вывода, обновления, копирования, перемещения и удаления папок с использованием Microsoft Graph.

Список папок

Используйте ListFolders метод для получения всех папок, доступных текущему пользователю. Каждая папка возвращается как FolderInfo объект, который включает свойства, такие как DisplayName, ItemId, HasSubFolders и другие.

var folders = client.ListFolders();

foreach (var folder in folders)
{
    Console.WriteLine(folder.DisplayName);
}

Асинхронный вывод папок

Следующий пример показывает, как получить все папки в почтовом ящике и отобразить их имена с использованием ListFoldersAsync метод.

var folders = await client.ListFoldersAsync();
foreach (var folder in folders)
{
    Console.WriteLine(folder.DisplayName);
}

var folderId = folders.Find(x => x.DisplayName == "Inbox").ItemId;
var msgsPage = await client.ListMessagesAsync(folderId, new PageInfo(15) { PageOffset = 0 }, null);
var msgs = msgsPage.Items;
foreach (var msg in msgs)
{
    Console.WriteLine(msg.Subject);
}

Создание и обновление папки

Чтобы создать новую папку, вызовите CreateFolder метода. Он возвращает FolderInfo объект, который затем можно изменить и обновить с помощью UpdateFolder() метод.

var folderInfo = client.CreateFolder("FolderName");
folderInfo.DisplayName = "FolderAnotherName";
client.UpdateFolder(folderInfo);

Копировать папку

Используйте CopyFolder метод для копирования папки в новое родительское местоположение. Этот метод требует ID целевой родительской папки и ID копируемой папки.

var folderInfo1 = client.CreateFolder("Folder1");
var folderInfo2 = client.CreateFolder("Folder2");
    
// copy Folder2 to Folder1
client.CopyFolder(folderInfo1.ItemId, folderInfo2.ItemId);

Перемещение и удаление папки

  • Чтобы переместить папку, используйте MoveFolder метод, который принимает newParentId и itemId.
  • Чтобы удалить папку, используйте Удалить метод и предоставьте ItemId папки.
var folderInfo1 = client.CreateFolder("Folder1");
var folderInfo2 = client.CreateFolder("Folder2");
    
// move Folder2 to Folder1
client.MoveFolder(folderInfo1.ItemId, folderInfo2.ItemId);
    
// delete Folder1
client.Delete(folderInfo1.ItemId)