Administrar carpetas de correo con IGraphClient
El Aspose.Email IGraphClient interfaz que proporciona métodos para crear, listar, actualizar, copiar, mover y eliminar carpetas usando Microsoft Graph.
Listar carpetas
Utilice el ListFolders método para recuperar todas las carpetas disponibles para el usuario actual. Cada carpeta se devuelve como una FolderInfo objeto, que incluye propiedades como DisplayName, ItemId, HasSubFolders, y más.
var folders = client.ListFolders();
foreach (var folder in folders)
{
Console.WriteLine(folder.DisplayName);
}
Listar carpetas de forma asíncrona
El siguiente ejemplo muestra cómo recuperar todas las carpetas en un buzón y mostrar sus nombres usando el 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);
}
Crear y actualizar una carpeta
Para crear una nueva carpeta, llame al CreateFolder método. Esto devuelve un FolderInfo objeto, que luego puede ser modificado y actualizado usando el UpdateFolder() método.
var folderInfo = client.CreateFolder("FolderName");
folderInfo.DisplayName = "FolderAnotherName";
client.UpdateFolder(folderInfo);
Copiar una carpeta
Utilice el CopyFolder método para copiar una carpeta a una nueva ubicación padre. Este método requiere el ID de la carpeta padre de destino y el ID de la carpeta que se copia.
var folderInfo1 = client.CreateFolder("Folder1");
var folderInfo2 = client.CreateFolder("Folder2");
// copy Folder2 to Folder1
client.CopyFolder(folderInfo1.ItemId, folderInfo2.ItemId);
Mover y eliminar una carpeta
- Para mover una carpeta, use el MoveFolder método que acepta newParentId e itemId.
- Para eliminar una carpeta, use el Eliminar método y proporcione el ItemId de la carpeta.
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)