Arbeiten mit Abstimmungsoptionen mittels MapiMessage

Erstellen von Abstimmungsoptionen mit MapiMessage

Microsoft Outlook ermöglicht es Benutzern, beim Verfassen einer neuen Nachricht eine Umfrage zu erstellen. Sie können Abstimmungsoptionen wie Ja, Nein, Vielleicht usw. einbinden. Aspose.Email ermöglicht dasselbe beim Erstellen einer neuen Outlook‑Nachricht. Die FollowUpOptions class provides the VotingButtons Eigenschaft, die verwendet werden kann, um den Wert von Abstimmungsoptionen zu setzen oder abzurufen. Dieser Artikel liefert ein ausführliches Beispiel zum Erstellen einer MapiMessage mit Abstimmungsoptionen zur Erstellung einer Umfrage.

Erstellen einer Umfrage mit MapiMessage

Das folgende Code‑Snippet zeigt, wie man eine Umfrage erstellt, die FollowUpManager Klasse kann wie im folgenden Code‑Snippet gezeigt verwendet werden.

// 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);

Lesen von Abstimmungsoptionen aus einem MapiMessage

Das folgende Code‑Snippet zeigt, wie man Abstimmungsoptionen aus einem 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();

Nur Abstimmungs‑Buttons lesen

Das folgende Code‑Snippet zeigt, wie man nur Abstimmungs‑Buttons liest.

// 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);

Hinzufügen eines Abstimmungs‑Buttons zu einer bestehenden Nachricht

Das folgende Code‑Snippet zeigt, wie man einer bestehenden Nachricht einen Abstimmungs‑Button hinzufügt.

// 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");

Löschen eines Abstimmungs‑Buttons aus einer Nachricht

Das folgende Code‑Snippet zeigt, wie man einen Abstimmungs‑Button aus einer Nachricht löscht.

// 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");

Lesen der Abstimmungsergebnis‑Informationen

Das folgende Code‑Snippet zeigt, wie man die Abstimmungsergebnis‑Informationen liest.

// 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();
}

Beispielmethoden, die in Beispielen verwendet werden

Das folgende Code‑Snippet zeigt, wie man eine Beispielnachricht erstellt, die in Beispielen verwendet wird.

// 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;
}