Microsoft Graph का उपयोग करके संदेशों के साथ काम करें
Aspose.Email for Java Microsoft Graph के माध्यम से संदेश प्रबंधन के लिए APIs का समृद्ध सेट प्रदान करता है। आप संदेशों को सूचीबद्ध, प्राप्त, बनाना, अपडेट, मूव, कॉपी और डिलीट कर सकते हैं, साथ ही पेजिनेशन और अटैचमेंट को संभाल सकते हैं। नीचे दिए गए कोड नमूने सबसे सामान्य ऑपरेशन्स के उदाहरण हैं।
संदेश सूचीबद्ध करें
आप किसी विशेष फ़ोल्डर, जैसे इनबॉक्स, से संदेश प्राप्त कर सकते हैं और उनकी पूरी सामग्री प्राप्त कर सकते हैं:
GraphMessageInfoCollection messageInfoColl = client.listMessages(GraphKnownFolders.Inbox);
for (GraphMessageInfo messageInfo : messageInfoColl) {
MapiMessage message = client.fetchMessage(messageInfo.getItemId());
}
भेजे गए तिथि के अनुसार संदेश सूचीबद्ध करें
भेजे गए तिथि के आरोही क्रम में संदेशों को सॉर्ट करने के लिए, आप उपयोग कर सकते हैं OrderBy की सुविधा GraphQueryBuilder:
// create orderby messages query 'ASC'
GraphQueryBuilder builder = new GraphQueryBuilder();
builder.getSentDate().orderBy(true);
MailQuery query = builder.getQuery();
GraphMessagePageInfo pageInfo = client.listMessages(GraphKnownFolders.Inbox, new PageInfo(10), query);
संदेश प्राप्त करें
एक बार जब आपके पास संदेश का रेफ़रेंस हो, तो आप उसकी पूरी सामग्री प्राप्त कर सकते हैं:
GraphMessageInfo messageInfo = messageInfoColl.get(0);
MapiMessage fetchedMessage = client.fetchMessage(messageInfo.getItemId());
संदेश अपडेट करें
एक संदेश प्राप्त करने के बाद, आप उसकी सामग्री संशोधित कर सकते हैं और सर्वर पर अपडेट कर सकते हैं:
fetchedMessage.setSubject("Update message");
MapiMessage updatedMessage = client.updateMessage(fetchedMessage);
संदेश सूची में पेजिनेशन
जब आप बड़े मेलबॉक्स के साथ काम कर रहे हों, तो आप पेजिंग का उपयोग करके संदेशों को हिस्सों में प्राप्त कर सकते हैं। नीचे दिया गया उदाहरण दो आइटम प्रति पेज में अनरीड संदेशों की सूची दिखाता है:
// send ping test messages
for (int i = 0; i < 5; i++) {
MailMessage eml = new MailMessage(user.EMail, user.EMail, "ping" + i, "test body");
client.send(MapiMessage.fromMailMessage(eml));
}
// waiting for inbox
Thread.sleep(10000);
// paging option
int itemsPerPage = 2;
// create unread messages filter
GraphQueryBuilder builder = new GraphQueryBuilder();
builder.isRead().equals(false);
MailQuery query = builder.getQuery();
// list messages
GraphMessagePageInfo pageInfo = client.listMessages(GraphKnownFolders.Inbox, new PageInfo(itemsPerPage), query);
GraphMessageInfoCollection messages = pageInfo.getItems();
while (!pageInfo.getLastPage())
{
pageInfo = client.listMessages(GraphKnownFolders.Inbox, pageInfo.getNextPage(), query);
// add next page items to common collection
messages.addRange(pageInfo.getItems());
}
// set messages state as read
for (GraphMessageInfo message : messages) {
client.setRead(message.getItemId());
}
संदेश बनाएं
आप विषय, बॉडी और प्रॉपर्टीज़ के साथ नया संदेश बना सकते हैं:
MapiMessage message = new MapiMessage();
message.setSubject("Subject");
message.setBody("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(GraphKnownFolders.Inbox, message);
संदेश भेजें
आप सीधे एक संदेश भेज सकते हैं:
client.send(message);
या ड्राफ्ट्स फ़ोल्डर में बनाकर ड्राफ्ट संदेश भेजें:
MapiMessage draftMessage = client.createMessage(GraphKnownFolders.Drafts, message);
client.send(draftMessage.getItemId());
संदेशों को कॉपी और मूव करें
संदेशों को फ़ोल्डरों के बीच कॉपी या मूव किया जा सकता है:
MapiMessage copiedMessage = client.copyMessage(GraphKnownFolders.Inbox, draftMessage.getItemId());
MapiMessage movedMessage = client.moveMessage(GraphKnownFolders.Inbox, draftMessage.getItemId());
अटैचमेंट प्रबंधित करें
संदेश से अटैचमेंट सूचीबद्ध और हटाने के लिए, निम्नलिखित कोड नमूना उपयोग करें:
MapiAttachmentCollection attachments = client.listAttachments(fetchedMessage.getItemId());
for (MapiAttachment att : attachments) {
client.deleteAttachment(att.getItemId());
}
संदेश हटाएँ
अंत में, आप संदेश को स्थायी रूप से हटा सकते हैं:
client.delete(message.getItemId());