العمل مع خيار التصويت باستخدام MapiMessage
إنشاء خيار تصويت باستخدام MapiMessage
يتيح Microsoft Outlook للمستخدمين إنشاء استطلاع عند كتابة رسالة جديدة. يسمح لهم بتضمين خيارات تصويت مثل نعم، لا، ربما، إلخ. يتيح Aspose.Email نفس ذلك عند إنشاء رسالة Outlook جديدة. الـ FollowUpOptions class يوفر الـ VotingButtons خاصية يمكن استخدامها لتعيين أو الحصول على قيمة خيارات التصويت. تقدم هذه المقالة مثالًا مفصلاً لإنشاء MapiMessage مع خيارات تصويت لإنشاء استطلاع.
إنشاء استطلاع باستخدام MapiMessage
يوضح مقطع الشفرة التالي كيفية إنشاء استطلاع، الـ FollowUpManager يمكن استخدام الفئة كما هو موضح في مقطع الشفرة التالي.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
String address = "firstname.lastname@aspose.com";
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
MailMessage message = createTestMessage(address);
// Set FollowUpOptions Buttons
FollowUpOptions options = new FollowUpOptions();
options.setVotingButtons("Yes;No;Maybe;Exactly!");
client.send(message, options);
قراءة خيارات التصويت من MapiMessage
يوضح مقطع الشفرة التالي كيفية قراءة خيارات التصويت من MapiMessage.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String fileName = "outlook/message.msg";
MapiMessage message = MapiMessage.fromFile(fileName);
// This method can be useful when except voting buttons it is necessary to get other parameters (ex. a category)
FollowUpOptions options = FollowUpManager.getOptions(message);
// Voting buttons will be introduced as a string with semi-column as a separator
String votingButtons = options.getVotingButtons();
قراءة أزرار التصويت فقط
يوضح مقطع الشفرة التالي كيفية قراءة أزرار التصويت فقط.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
InputStream ms = new FileInputStream(dataDir + "MapiMsgWithPoll_out.msg");
MapiMessage testMsg = MapiMessage.fromStream(ms);
// This method can be useful when it is necessary to read only voting buttons
// Voting buttons will be introduced as a collection of string values
IList buttons = FollowUpManager.getVotingButtons(testMsg);
إضافة زر تصويت إلى رسالة موجودة
يوضح مقطع الشفرة التالي كيفية إضافة زر تصويت إلى رسالة موجودة.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
MapiMessage mapi = MapiMessage.fromFile(dataDir + "message.msg");
FollowUpManager.addVotingButton(mapi, "Indeed!");
mapi.save(dataDir + "AddVotingButtonToExistingMessage_out.msg");
حذف زر التصويت من رسالة
يوضح مقطع الشفرة التالي كيفية حذف زر التصويت من رسالة.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
// Create New Message and set FollowUpOptions, FollowUpManager properties
MapiMessage msg = createTestMessage(false);
FollowUpOptions options = new FollowUpOptions();
options.setVotingButtons("Yes;No;Maybe;Exactly!");
FollowUpManager.setOptions(msg, options);
msg.save(dataDir + "MapiMsgWithPoll.msg");
FollowUpManager.removeVotingButton(msg, "Exactly!"); // Deleting a single button OR
FollowUpManager.clearVotingButtons(msg); // Deleting all buttons from a MapiMessage
msg.save(dataDir + "MapiMsgWithPoll.msg");
قراءة معلومات نتائج التصويت
يوضح مقطع الشفرة التالي كيفية قراءة معلومات نتائج التصويت.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
MapiMessage msg = MapiMessage.fromFile(dataDir + "AddVotingButtonToExistingMessage.msg");
for (MapiRecipient recipient : msg.getRecipients()) {
System.out.println("Recipient: " + recipient.getDisplayName());
// Get the PR_RECIPIENT_AUTORESPONSE_PROP_RESPONSE property
System.out.println("Response: " + recipient.getProperties().get_Item(MapiPropertyTag.PR_RECIPIENT_AUTORESPONSE_PROP_RESPONSE).getString());
// Get the PR_RECIPIENT_TRACKSTATUS_TIME property
System.out.println("Response time: " + recipient.getProperties().get_Item(MapiPropertyTag.PR_RECIPIENT_TRACKSTATUS_TIME).getDateTime());
System.out.println();
}
الطرق النموذجية المستخدمة في الأمثلة
يوضح مقطع الشفرة التالي كيفية إنشاء رسالة نموذجية تُستخدم في الأمثلة.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
public static MapiMessage createTestMessage(boolean draft) {
MapiMessage msg = new MapiMessage("from@test.com", "to@test.com", "Flagged message",
"Make it nice and short, but descriptive. The description may appear in search engines' search results pages...");
if (!draft) {
msg.setMessageFlags(msg.getFlags() ^ MapiMessageFlags.MSGFLAG_UNSENT);
}
return msg;
}