Làm việc với Thư mục bằng Microsoft Graph

Aspose.Email cho Java cho phép bạn thực hiện nhiều thao tác thư mục trong Microsoft Graph, như liệt kê, tạo, cập nhật, sao chép, di chuyển và xóa thư mục. Dưới đây là các ví dụ về các kịch bản thường gặp.

Liệt kê thư mục

Ví dụ sau lấy tất cả các thư mục và in ra tên hiển thị cùng các thuộc tính của chúng:

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

Liệt kê thư mục con từ thư mục Inbox

Bạn cũng có thể liệt kê các thư mục con dưới một thư mục cụ thể, chẳng hạn Inbox:

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

Tạo thư mục

Bạn có thể tạo cả thư mục cấp gốc và thư mục con.

Tạo thư mục gốc

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

Tạo thư mục con

Mẫu mã sau đây cho thấy cách tạo thư mục con dưới thư mục Inbox:

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

Lấy thư mục

Mẫu mã sau đây minh họa cách lấy một thư mục cụ thể, chẳng hạn Thư đã gửi:

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

Cập nhật thư mục

Bạn có thể cập nhật các thuộc tính của thư mục, ví dụ như tên hiển thị:

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

Sao chép thư mục và nội dung của nó

Ví dụ sau đây cho thấy cách sao chép một thư mục cùng các thư mục con và tin nhắn của nó:

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

Di chuyển thư mục và nội dung của nó

Bạn cũng có thể di chuyển một thư mục cùng toàn bộ nội dung tới vị trí khác:

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

Xóa thư mục

Sử dụng mẫu mã sau để xóa vĩnh viễn một thư mục:

client.delete(testFolder.getItemId());