Gerenciar Pastas de Email com IGraphClient

O Aspose.Email IGraphClient interface fornece métodos para criar, listar, atualizar, copiar, mover e excluir pastas usando Microsoft Graph.

Listar Pastas

Use o ListFolders método para recuperar todas as pastas disponíveis para o usuário atual. Cada pasta é retornada como um FolderInfo objeto, que inclui propriedades como DisplayName, ItemId, HasSubFolders, e mais.

var folders = client.ListFolders();

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

Listar Pastas Assincronamente

O exemplo a seguir mostra como recuperar todas as pastas de uma caixa de correio e exibir seus nomes usando o ListFoldersAsync método.

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);
}

Criar e Atualizar uma Pasta

Para criar uma nova pasta, chame o CreateFolder método. Isso retorna um FolderInfo objeto, que pode então ser modificado e atualizado usando o UpdateFolder() método.

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

Copiar uma Pasta

Use o CopyFolder método para copiar uma pasta para um novo local pai. Este método exige o ID da pasta pai de destino e o ID da pasta que está sendo copiada.

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

Mover e Excluir uma Pasta

  • Para mover uma pasta, use o MoveFolder método que aceita newParentId e itemId.
  • Para excluir uma pasta, use o Excluir método e forneça o ItemId da pasta.
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)