ניהול תיבת דואר עם Microsoft Graph
בנוסף לעבודה עם הודעות, תיקיות וקבצים מצורפים, Aspose.Email for Java מאפשר גם לנהל תכונות ברמת תיבת דואר כגון קטגוריות, Overrides של תיבת דואר ממוקדת, וכללים. ניתן גם לעבוד עם תיבות דואר מרובות על ידי החלפת הקשר המשאב. פעולות אלו זמינות דרך אינטגרציית Graph API.
כיצד לעבוד עם קטגוריות Outlook
קטגוריות ב-Outlook מאפשרות לקבץ ולתייג הודעות לצורך ארגון נוח יותר. עם Aspose.Email ניתן ליצור, לאחזר, לעדכן, לרשום ולמחוק קטגוריות בתכנית.
String categoryName = "Test Category";
int preset = CategoryPreset.Preset10;
// create a new category
OutlookCategory category = client.createCategory(categoryName, preset);
// fetch a category
OutlookCategory fetchedCategory = client.fetchCategory(category.getId());
// list categories
List<OutlookCategory> categories = client.listCategories();
// update a category
fetchedCategory.setDisplayName("Update Category");
fetchedCategory.setPreset(CategoryPreset.Preset11);
OutlookCategory updatedCategory = client.updateCategory(fetchedCategory);
// delete a category
client.delete(category.getId());
כיצד לעבוד עם Overrides
החלפות (Overrides) משנות איך הודעות ממשלחים מסוימים מטופלות בתיבת הדואר הממוקדת. לדוגמה, ניתן להכתיב שהודעות ממשלח ספציפי תמיד יופיעו בתצוגה הממוקדת.
int focusedType = ClassificationType.Focused;
// create or update an override for a sender
ClassificationOverride override = client.createOrUpdateOverride(
new MailAddress("testUser@host.com", "testUser"), focusedType
);
// list overrides
List<ClassificationOverride> list = client.listOverrides();
for (ClassificationOverride item : list)
System.out.println(item.getSender().getAddress());
// update override classification
ClassificationOverride fetchedOverride = list.get(0);
fetchedOverride.setClassifyAs(ClassificationType.Other);
fetchedOverride.getSender().setDisplayName("testUser_1");
ClassificationOverride updatedOverride = client.createOrUpdateOverride(fetchedOverride);
// reset classification
fetchedOverride.setClassifyAs(ClassificationType.Focused);
updatedOverride = client.updateOverride(fetchedOverride);
// delete override
client.delete(updatedOverride.getId());
כיצד לעבוד עם כללי Outlook
כללי תיבת הדואר מאפשרים אוטומציה של פעולות כגון הפניית הודעות או סינון על פי תנאים. ה-Graph API מאפשר ליצור, לאחזר, לעדכן, לרשום ולמחוק כללי תיבת דואר נכנסת.
// create a new rule
InboxRule rule = new InboxRule();
rule.setDisplayName("Test rule");
rule.setPriority(1);
rule.setEnabled(true);
rule.setConditions(new RulePredicates());
rule.getConditions().containsSenderStrings(new StringCollection());
rule.getConditions().containsSenderStrings().addItem("testUser");
// define actions
rule.setActions(new RuleActions());
rule.getActions().setForwardToRecipients(new MailAddressCollection());
rule.getActions().getForwardToRecipients()
.addMailAddress(new MailAddress("testUser@host.com", "testUser", true));
rule.getActions().setStopProcessingRules(true);
InboxRule createdRule = client.createRule(rule);
// list rules
List<InboxRule> listedRules = client.listRules();
for (InboxRule item : listedRules)
System.out.println(item.getDisplayName());
// fetch and update a rule
InboxRule fetchedRule = client.fetchRule(createdRule.getRuleId());
createdRule.setDisplayName("Test rule 1");
createdRule.setEnabled(false);
InboxRule updatedRule = client.updateRule(createdRule);
// delete rule
client.delete(createdRule.getRuleId());
עבודה עם תיבות דואר מרובות - החלפת הקשר תיבת הדואר
בברירת מחדל, הפעולות מתבצעות על תיבת הדואר של המשתמש הנוכחי. ניתן להחליף את ההקשר לתיבת דואר אחרת (למשל, כדי לרשום הודעות מתיבת דואר משותפת) על ידי קביעת סוג המשאב וזהות המשאב.
// switch to another mailbox
client.setResource(ResourceType.Users);
client.setResourceId("mailbox");
client.listMessages("mailfolder");
// switch back to the current user mailbox
client.setResource(ResourceType.Me);
שאילתות OData עם Microsoft Graph
Aspose.Email for Java מספק תמיכה בשאילתות OData בעת עבודה עם Microsoft Graph. היא מאפשרת לבצע סינון מתקדם, מיון, בחירה, דפדוף והרחבה בעת אחזור משאבים כגון תיקיות, הודעות, אנשי קשר ופריטי לוח שנה. ה- ODataQueryBuilder מחלקה זו מאפשרת לבנות פרמטרי שאילתות OData בצורה מובנית וניתנת למימוש חוזר במקום לבנות מחרוזות שאילתה ידנית. השיטות הבאות ניתנות לשימוש לספירה וחיפוש במערכי נתונים גדולים:
Selectלאחזר רק את המאפיינים שהינך צריך.Filterלהחלת פילטרים.OrderByלמיון תוצאות.TopוSkipלדפדוף.Expandלהרחיב ישויות קשורות בשאילתה אחת.
מספר GraphClient השיטות מקבלות אופציונלי ODataQueryBuilder פרמטר ליישום שאילתות OData, כולל:
- listFolders
- listMessages
- listContacts
- listCalendarItems
- listAttachments
- listCategories
- listOverrides
- listRules
- listTaskLists
- listTasks
- listNotebooks
דוגמת הקוד הבאה מראה איך להשתמש ב- ODataQueryBuilder כדי לבצע שאילתות על תיקיות ולאחזר הודעות עם פילטרים מתקדמים ודפדוף:
IGraphClient client = GraphClient.GetClient();
client.setResource(ResourceType.Users);
client.setResourceId(username);
client.setEndpoint("https://graph.microsoft.com");
// Example 1: List folders ordered by name
ODataQueryBuilder builder = new ODataQueryBuilder();
builder.setOrderBy("name asc");
GraphFolderInfoCollection folders = client.listFolders(builder);
for (GraphFolderInfo folder : folders) {
System.out.println(folder.getDisplayName());
}
String folderId = folders.get(0).getItemId();
// Example 2: Retrieve filtered and paged messages
builder = new ODataQueryBuilder();
{
builder.setFilter("startswith(name,'A')");
builder.setOrderBy("name asc");
builder.setTop(10);
builder.setSkip(5);
builder.setSelect(new String[]{"name", "age"});
builder.setExpand(new String[]{"children", "parents"});
builder.setCount(true);
builder.setSearch("\"John Doe\"");
builder.setFormat("json");
};
GraphMessageInfoCollection msgs = client.listMessages(folderId, builder);
for (GraphMessageInfo msg : msgs) {
System.out.println(msg.getSubject());
}