Praca z opcjami głosowania przy użyciu MapiMessage
Tworzenie opcji głosowania przy użyciu MapiMessage
Microsoft Outlook umożliwia użytkownikom tworzenie ankiety podczas komponowania nowej wiadomości. Pozwala na dodanie opcji głosowania, takich jak Tak, Nie, Może, itp. Aspose.Email umożliwia to samo przy tworzeniu nowej wiadomości Outlook. FollowUpOptions klasa udostępnia VotingButtons właściwość, której można użyć do ustawiania lub pobierania wartości opcji głosowania. Ten artykuł zawiera szczegółowy przykład tworzenia MapiMessage z opcjami głosowania do stworzenia ankiety.
Tworzenie ankiety przy użyciu MapiMessage
Poniższy fragment kodu pokazuje, jak utworzyć ankietę, FollowUpManager klasę można użyć, jak pokazano w poniższym fragmencie kodu.
// 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);
Odczytywanie opcji głosowania z MapiMessage
Poniższy fragment kodu pokazuje, jak odczytać opcje głosowania z 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();
Odczytywanie tylko przycisków głosowania
Poniższy fragment kodu pokazuje, jak odczytać tylko przyciski głosowania.
// 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);
Dodawanie przycisku głosowania do istniejącej wiadomości
Poniższy fragment kodu pokazuje, jak dodać przycisk głosowania do istniejącej wiadomości.
// 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");
Usuwanie przycisku głosowania z wiadomości
Poniższy fragment kodu pokazuje, jak usunąć przycisk głosowania z wiadomości.
// 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");
Odczytaj informacje o wynikach głosowania
Poniższy fragment kodu pokazuje, jak odczytać informacje o wynikach głosowania.
// 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();
}
Przykładowe metody użyte w przykładach
Poniższy fragment kodu pokazuje, jak utworzyć przykładową wiadomość używaną w przykładach.
// 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;
}