العمل مع خيارات التصويت وردود الفعل في MSG
إنشاء خيارات التصويت باستخدام MapiMessage
يتيح Microsoft Outlook ميزة إنشاء استطلاع عند كتابة بريد إلكتروني جديد، مما يسمح للمستخدمين بتضمين خيارات تصويت مثل نعم، لا، ربما، إلخ. يتيح Aspose.Email وظيفة مشابهة عند إنشاء رسالة Outlook جديدة برمجيًا. الـ FollowUpOptions class يوفر الـ VotingButtons خاصية يمكن استخدامها لتعيين أو الحصول على خيارات التصويت. MapiMessage تشير إلى فئة ضمن مساحة الأسماء Aspose.Email تمثل رسالة بريد إلكتروني بتنسيق واجهة برمجة تطبيقات رسائل المراسلة (MAPI) الشائعة في Microsoft Outlook. باستخدام فئة MapiMessage، يمكن للمطورين إضافة أزرار استطلاع إلى رسالة بريد إلكتروني. تقدم هذه المقالة مثالًا تفصيليًا حول كيفية إنشاء MapiMessage بخيارات تصويت لإنشاء استطلاع.
إنشاء استطلاعات
المقتطف البرمجي التالي يوضح كيفية إنشاء استطلاع في رسالة Outlook باستخدام Aspose.Email. الـ FollowUpManager الفئة تسهل تعيين خيارات التصويت.
// Create a MapiMessage with the sender, recipient, subject, and body
var 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..."
);
// Create FollowUpOptions and set the voting buttons
var options = new FollowUpOptions
{
VotingButtons = "Yes;No;Maybe;Exactly!"
};
// Apply the follow-up options to the message
FollowUpManager.SetOptions(msg, options);
- FollowUpOptions: يقدم خصائص لتكوين إجراءات المتابعة مثل أزرار التصويت.
- VotingButtons: خاصية سلسلة حيث يتم فصل خيارات التصويت المختلفة بفواصل منقوطة.
- FollowUpManager.SetOptions: يطبق خيارات المتابعة المحددة على الرسالة.
قراءة خيارات التصويت
لاسترجاع خيارات التصويت من MapiMessage، يمكنك استخدام GetOptions طريقة. لا تسترجع هذه الطريقة أزرار التصويت فحسب، بل يمكنها أيضًا تقديم معلمات إضافية مثل الفئات إذا لزم الأمر.
// Retrieve follow-up options from the message
var options = FollowUpManager.GetOptions(msg);
// Voting buttons are returned as a string with a semicolon separator
string votingButtons = options.VotingButtons;
// Display the voting buttons
Console.WriteLine($"Voting Options: {votingButtons}");
- GetOptions: يسترجع FollowUpOptions كائن من الرسالة، والذي يتضمن أزرار التصويت وربما خصائص أخرى.
- VotingButtons: يتم استخراج الخيارات كسلسلة مفصولة بفواصل منقوطة، مما يتيح عرضًا أو تعديلًا سهلاً.
قراءة أزرار التصويت
إذا كنت بحاجة للوصول إلى أزرار التصويت فقط كقائمة من السلاسل الفردية، يمكنك استخدام GetVotingButtons طريقة، تُعيدها كمجموعة.
// Read only voting buttons as a collection of string values
var votingButtons = FollowUpManager.GetVotingButtons(msg);
// Display each voting button
foreach (var button in votingButtons)
{
Console.WriteLine($"Voting Button: {button}");
}
- GetVotingButtons: تُعيد مجموعة من سلاسل أزرار التصويت، مما يسهل التكرار عليها وإجراء عمليات مثل العرض أو التعديل.
إضافة أزرار التصويت
يمكنك إضافة أزرار تصويت إضافية إلى رسالة موجودة باستخدام AddVotingButton طريقة. يمكن أن يكون ذلك مفيدًا لتحديث خيارات التصويت ديناميكيًا.
// Add a new voting button to the existing message
FollowUpManager.AddVotingButton(msg, "Indeed!");
- AddVotingButton: يضيف خيار تصويت جديد إلى أزرار التصويت الحالية للرسالة، مما يسمح بتخصيص استطلاعات الرأي بشكل ديناميكي.
حذف أزرار التصويت
قد ترغب في إزالة أزرار تصويت محددة أو مسح جميع الأزرار من رسالة. يوضح الكود التالي كلا الإجراءين باستخدام RemoveVotingButton و ClearVotingButtons الطرق.
// Delete a specific voting button
FollowUpManager.RemoveVotingButton(msg, "Exactly!");
// Or delete all voting buttons from the MapiMessage
FollowUpManager.ClearVotingButtons(msg);
- RemoveVotingButton: يحذف زر تصويت محدد حسب الاسم.
- ClearVotingButtons: يزيل جميع أزرار التصويت، مما يعيد ضبط خيارات التصويت.
قراءة نتائج التصويت
كما تسمح Aspose.Email بقراءة نتائج التصويت من مستلمي الرسالة. يمكنك الوصول إلى خصائص مثل استجابة المستلم ووقت الاستجابة.
// Load a MapiMessage from a file
var msg = MapiMessage.Load("sample.msg");
// Iterate through each recipient and display their vote information
foreach (var recipient in msg.Recipients)
{
Console.WriteLine($"Recipient: {recipient.DisplayName}");
// Get the recipient's response using the appropriate MapiPropertyTag
var response = recipient.Properties[MapiPropertyTag.PR_RECIPIENT_AUTORESPONSE_PROP_RESPONSE].GetString();
Console.WriteLine($"Response: {response}");
// Get the response time
var responseTime = recipient.Properties[MapiPropertyTag.PR_RECIPIENT_TRACKSTATUS_TIME].GetDateTime();
Console.WriteLine($"Response time: {responseTime}\n");
}
- MapiRecipient: يمثل مستلمًا في MapiMessage، مما يتيح الوصول إلى بيانات الاستجابة الفردية.
- *PR_RECIPIENT_AUTORESPONSE_PROP_RESPONSE: علامة خاصية تخزن استجابة تصويت المستلم.
- PR_RECIPIENT_TRACKSTATUS_TIME: علامة خاصية تسجل الوقت الذي استجاب فيه المستلم.
استرجاع معلومات رد الفعل من MSG
الـ GetReactions طريقة الـ FollowUpManager تتيح الفئة استرداد قائمة ردود الفعل على رسالة MAPI، مما يسهل تحليل تفاعل المستخدمين. يوضح مثال الشيفرة التالي كيفية استرداد ردود الفعل المتوفرة لرسالة محددة، مما يوفر نظرة على تفاعلات المستخدمين:
// Load the message file
var msg = MapiMessage.Load(fileName);
// Retrieve the list of reactions on the message
var reactions = FollowUpManager.GetReactions(msg);
// Iterate through each reaction and output the details to the console
foreach (var reaction in reactions)
{
Console.WriteLine($"User: {reaction.Name}, Email: {reaction.Email}, Reaction: {reaction.Type}, Date: {reaction.ReactionDateTime}");
}