Работа с вариантами голосования с использованием MapiMessage

Создание варианта голосования с использованием MapiMessage

Microsoft Outlook позволяет пользователям создавать опрос при написании нового сообщения. Он позволяет им включать варианты голосования, такие как Да, Нет, Может быть и т.д. Aspose.Email позволяет сделать то же самое при создании нового сообщения Outlook. Класс FollowUpOptions предоставляет свойство VotingButtons, которое можно использовать для установки или получения значения вариантов голосования. В этой статье приводится подробный пример создания MapiMessage с вариантами голосования для создания опроса.

Создание опроса с использованием MapiMessage

Следующий пример кода показывает, как использовать свойство voting_buttons класса FollowUpOptions для создания опроса:

import aspose.email as ae

msg = ae.mapi.MapiMessage.load("my.msg")

# Установка кнопок FollowUpOptions
options = ae.mapi.FollowUpOptions()
options.voting_buttons = "Yes;No;Maybe;Exactly!"

msg.save("voting_btns.msg")

Чтение вариантов голосования из MapiMessage

Следующий фрагмент кода показывает, как читать варианты голосования из MapiMessage.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
message = MapiMessage.from_file("MessageWithVotingResponded.msg")
# This method can be useful when except voting buttons it is necessary to get other parameters (ex. a category)
options = FollowUpManager.get_options(message)
# Voting buttons will be introduced as a string with semi-column as a separator
votingButtons = options.voting_buttons
print(votingButtons)

Чтение только кнопок голосования

Следующий фрагмент кода показывает, как читать только кнопки голосования.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
message = MapiMessage.from_file("MessageWithVotingResponded.msg")
buttons = FollowUpManager.get_voting_buttons(message)
for button in buttons:
print(button)

Добавление кнопки голосования к существующему сообщению

Следующий фрагмент кода показывает, как добавить кнопку голосования к существующему сообщению.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
message = MapiMessage.from_file("message.msg")
FollowUpManager.add_voting_button(message, "Indeed!")
message.save(dataDir + "AddVotingButtonToExistingMessage_out.msg")

Удаление кнопки голосования из сообщения

Следующий фрагмент кода показывает, как удалить кнопку голосования из сообщения.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
message = MapiMessage.from_file("message.msg")
FollowUpManager.add_voting_button(message, "Indeed!")
message.save(dataDir + "AddVotingButtonToExistingMessage_out.msg")
eml = MailMessage("from@gmail.com", "to@gmail.com", "Subject", "Body")
eml.is_draft = False
msg = MapiMessage.from_mail_message(eml)
options = FollowUpOptions()
options.voting_buttons = "Yes;No;Maybe;Exactly!"
FollowUpManager.set_options(msg, options)
msg.save(dataDir + "MapiMsgWithPoll.msg")
FollowUpManager.remove_voting_button(msg, "Exactly!");#Deleting a single button OR
FollowUpManager.clear_voting_buttons(msg) # Deleting all buttons from a MapiMessage
msg.save(dataDir + "MapiMsgWithPoll_out.msg")

Чтение информации о результатах голосования

Следующий фрагмент кода показывает, как читать информацию о результатах голосования.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
msg = MapiMessage.from_file(dataDir + "AddVotingButtonToExistingMessage.msg");
for recipient in msg.recipients:
print("Recipient: {0}".format(recipient.display_name))
#get the PR_RECIPIENT_AUTORESPONSE_PROP_RESPONSE property
print("Response: {0}".format(recipient.properties[MapiPropertyTag.RECIPIENT_AUTORESPONSE_PROP_RESPONSE].get_string()))
#Get the PR_RECIPIENT_TRACKSTATUS_TIME property
mt = recipient.properties[MapiPropertyTag.RECIPIENT_TRACKSTATUS_TIME]
if mt is not None:
mt_value = mt.get_date_time()
print("Response time: {}".format(mt_value))

Установка флага несообщенного сообщения

Следующий фрагмент кода показывает, как использовать методы, используемые в примерах.

import aspose.email as ae

msg = ae.mapi.MapiMessage("from@test.com", "to@test.com", "Помеченное сообщение", "Сделайте его приятным и коротким, но описательным. Описание может появляться на страницах результатов поиска поисковых систем...")
msg.set_message_flags(msg.flags ^ ae.mapi.MapiMessageFlags.UNSENT)