Práce s hlasovací volbou pomocí MapiMessage
Vytvoření hlasovací volby pomocí MapiMessage
Microsoft Outlook umožňuje uživatelům vytvořit anketu při psaní nové zprávy. Umožňuje zahrnout hlasovací možnosti jako Ano, Ne, Možná, atd. Aspose.Email umožňuje totéž při vytváření nové Outlook zprávy. FollowUpOptions třída poskytuje VotingButtons vlastnost, která může být použita pro nastavení nebo získání hodnoty hlasovacích možností. Tento článek poskytuje podrobný příklad vytvoření MapiMessage s hlasovacími možnostmi pro vytvoření ankety.
Vytvoření ankety pomocí MapiMessage
Následující úryvek kódu vám ukáže, jak vytvořit anketu, FollowUpManager třída může být použita, jak je ukázáno v následujícím úryvku kódu.
// 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);
Čtení hlasovacích možností z MapiMessage
Následující úryvek kódu ukazuje, jak číst hlasovací možnosti 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();
Čtení pouze hlasovacích tlačítek
Následující úryvek kódu ukazuje, jak číst pouze hlasovací tlačítka.
// 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);
Přidání hlasovacího tlačítka do existující zprávy
Následující úryvek kódu ukazuje, jak přidat hlasovací tlačítko do existující zprávy.
// 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");
Odstranění hlasovacího tlačítka ze zprávy
Následující úryvek kódu ukazuje, jak odstranit hlasovací tlačítko ze zprávy.
// 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");
Přečíst informace o výsledcích hlasování
Následující úryvek kódu vám ukáže, jak přečíst informace o výsledcích hlasování.
// 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();
}
Ukázkové metody použité v příkladech
Následující úryvek kódu ukazuje, jak vytvořit ukázkovou zprávu používanou v příkladech.
// 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;
}