العمل مع المجلدات باستخدام Microsoft Graph
Aspose.Email for Java يتيح لك تنفيذ مجموعة متنوعة من عمليات المجلدات في Microsoft Graph، مثل القائمة، الإنشاء، التحديث، النسخ، النقل، والحذف. أدناه أمثلة على السيناريوهات الشائعة.
قائمة المجلدات
يسترجع المثال التالي جميع المجلدات ويطبع أسماء العرض الخاصة بها مع خصائصها:
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());
}
}
قائمة المجلدات الفرعية من مجلد الوارد
يمكنك أيضًا سرد المجلدات الفرعية داخل مجلد معين، مثل الوارد:
GraphFolderInfoCollection inboxFolders = client.listFolders(GraphKnownFolders.Inbox);
إنشاء المجلدات
يمكنك إنشاء مجلدات على مستوى الجذر وكذلك المجلدات الفرعية.
إنشاء مجلد جذر
GraphFolderInfo newFolder = client.createFolder("TEST_FOLDER");
إنشاء مجلدات فرعية
تظهر عينة الشفرة التالية كيفية إنشاء مجلد فرعي داخل مجلد الوارد:
GraphFolderInfo inboxTestSubFolder1 = client.createFolder(GraphKnownFolders.Inbox, "TEST_SUBFOLDER_1");
GraphFolderInfo inboxTestSubFolder2 = client.createFolder(newFolder.getItemId(), "TEST_SUBFOLDER_2");
الحصول على المجلد
تظهر عينة الشفرة التالية كيفية استرجاع مجلد معين، مثل العناصر المرسلة:
GraphFolderInfo sentItemsFolder = client.getFolder(GraphKnownFolders.SentItems);
تحديث المجلد
يمكنك تحديث خصائص المجلد، على سبيل المثال اسمه المعروض:
GraphFolderInfo originalFolder = client.createFolder("TEST_FOLDER");
originalFolder.setDisplayName("NEW_TEST_FOLDER");
GraphFolderInfo updatedFolder = client.updateFolder(originalFolder);
نسخ المجلد ومحتوياته
يوضح المثال التالي كيفية نسخ مجلد مع جميع المجلدات الفرعية والرسائل الخاصة به:
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());
نقل المجلد ومحتوياته
يمكنك أيضًا نقل مجلد مع كل محتوياته إلى موقع آخر:
GraphFolderInfo folder = client.moveFolder(parentFolder.getItemId(), testFolder.getItemId());
حذف المجلد
استخدم عينة الشفرة التالية لإزالة مجلد بشكل دائم:
client.delete(testFolder.getItemId());