Microsoft Graph ile Klasörleri Yönetme

Aspose.Email for Java, Microsoft Graph’ta klasör listeleme, oluşturma, güncelleme, kopyalama, taşıma ve silme gibi çeşitli klasör işlemleri yapmanıza olanak tanır. Aşağıda yaygın senaryolara örnekler verilmiştir.

Klasörleri Listele

Aşağıdaki örnek, tüm klasörleri alır ve görüntü adlarını özellikleriyle birlikte yazdırır:

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

Inbox Klasöründen Alt Klasörleri Listele

Belirli bir klasörün, örneğin Inbox’ın alt klasörlerini listeleyebilirsiniz:

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

Klasörler Oluştur

Hem kök seviyesinde klasörler hem de alt klasörler oluşturabilirsiniz.

Kök Klasör Oluştur

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

Alt Klasörler Oluştur

Aşağıdaki kod örneği, Inbox klasörünün altında bir alt klasör nasıl oluşturulacağını gösterir:

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

Klasör Al

Aşağıdaki kod örneği, Sent Items gibi belirli bir klasörü nasıl alacağınızı gösterir:

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

Klasörü Güncelle

Klasör özelliklerini güncelleyebilirsiniz, örneğin, görüntülenen adını:

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

Klasörü ve İçeriğini Kopyala

Aşağıdaki örnek, bir klasörü alt klasörleri ve mesajlarıyla birlikte nasıl kopyalayacağınızı gösterir:

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

Klasörü ve İçeriğini Taşı

Ayrıca bir klasörü tüm içeriğiyle başka bir konuma taşıyabilirsiniz:

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

Klasörü Sil

Aşağıdaki kod örneğini kullanarak bir klasörü kalıcı olarak silin:

client.delete(testFolder.getItemId());