Lavorare con le cartelle usando Microsoft Graph

Aspose.Email per Java consente di eseguire una varietà di operazioni su cartelle in Microsoft Graph, come elencare, creare, aggiornare, copiare, spostare ed eliminare cartelle. Di seguito sono riportati esempi di scenari comuni.

Elenca cartelle

Il seguente esempio recupera tutte le cartelle e stampa i loro nomi visualizzati insieme alle loro proprietà:

GraphFolderInfoCollection folders = client.listFolders();
for (GraphFolderInfo folderInfo : folders) {
    System.out.println(folderInfo.getDisplayName());
    for (KeyValuePair<Long, MapiProperty> prop : folderInfo.getProperties()) {
        System.out.println(prop.getValue().getDescriptor().toString() + " " + prop.getValue().getString());
    }
}

Elenca sottocartelle dalla cartella Posta in arrivo

Puoi anche elencare le sottocartelle di una cartella specifica, ad esempio Posta in arrivo:

GraphFolderInfoCollection inboxFolders = client.listFolders(GraphKnownFolders.Inbox);

Crea cartelle

Puoi creare sia cartelle di livello radice che sottocartelle.

Crea una cartella radice

GraphFolderInfo newFolder = client.createFolder("TEST_FOLDER");

Crea sottocartelle

Il seguente esempio di codice mostra come creare una sottocartella nella cartella Posta in arrivo:

GraphFolderInfo inboxTestSubFolder1 = client.createFolder(GraphKnownFolders.Inbox, "TEST_SUBFOLDER_1");
GraphFolderInfo inboxTestSubFolder2 = client.createFolder(newFolder.getItemId(), "TEST_SUBFOLDER_2");

Ottieni cartella

Il seguente esempio di codice dimostra come recuperare una cartella specifica, ad esempio Posta inviata:

GraphFolderInfo sentItemsFolder = client.getFolder(GraphKnownFolders.SentItems);

Aggiorna cartella

Puoi aggiornare le proprietà della cartella, ad esempio il suo nome visualizzato:

GraphFolderInfo originalFolder = client.createFolder("TEST_FOLDER");
originalFolder.setDisplayName("NEW_TEST_FOLDER");
GraphFolderInfo updatedFolder = client.updateFolder(originalFolder);

Copia cartella e relativo contenuto

Il seguente esempio mostra come copiare una cartella insieme alle sue sottocartelle e messaggi:

GraphFolderInfo parentFolder = client.createFolder("PARENT_FOLDER");
GraphFolderInfo testFolder = client.createFolder("TEST_FOLDER");
GraphFolderInfo testSubFolder = client.createFolder(testFolder.getItemId(), "TEST_SUBFOLDER");

MapiMessage message = new MapiMessage();
message.setSubject("Test subject");
message.setBody("Test body");
message.setProperty(KnownPropertyList.DISPLAY_TO, "to@host.com");
message.setProperty(KnownPropertyList.SENDER_NAME, "from");
message.setProperty(KnownPropertyList.SENT_REPRESENTING_EMAIL_ADDRESS, "from@host.com");
MapiMessage createdMessage = client.createMessage(testSubFolder.getItemId(), message);

GraphFolderInfo folderCopy = client.copyFolder(parentFolder.getItemId(), testFolder.getItemId());

GraphFolderInfoCollection folderColl = client.listFolders(parentFolder.getItemId());
// TEST_FOLDER
System.out.println(folderColl.get(0).getDisplayName());

folderColl = client.listFolders(folderColl.get(0).getItemId());
// TEST_SUBFOLDER
System.out.println(folderColl.get(0).getDisplayName());

GraphMessageInfoCollection listMessages = client.listMessages(folderColl.get(0).getItemId());
// Test subject
System.out.println(listMessages.get(0).getSubject());

Sposta cartella e relativo contenuto

Puoi anche spostare una cartella con tutto il suo contenuto in un’altra posizione:

GraphFolderInfo folder = client.moveFolder(parentFolder.getItemId(), testFolder.getItemId());

Elimina cartella

Usa il seguente esempio di codice per rimuovere una cartella in modo permanente:

client.delete(testFolder.getItemId());