Arbeiten mit Abstimmungsoptionen und Reaktionen in MSG
Create Voting Options with MapiMessage
Microsoft Outlook bietet die Möglichkeit, beim Verfassen einer neuen E‑Mail eine Umfrage zu erstellen, sodass Nutzer Abstimmungsoptionen wie Ja, Nein, Vielleicht usw. einbinden können. Aspose.Email ermöglicht eine ähnliche Funktionalität beim programmgesteuerten Erstellen einer neuen Outlook‑Nachricht. Der FollowUpOptions class provides the VotingButtons Eigenschaft, die zum Festlegen oder Abrufen der Abstimmungsoptionen verwendet werden kann. MapiMessage bezieht sich auf eine Klasse im Aspose.Email‑Namespace, die eine E‑Mail‑Nachricht im Messaging Application Programming Interface (MAPI)‑Format darstellt, das häufig von Microsoft Outlook verwendet wird. Durch die Verwendung der MapiMessage‑Klasse können Entwickler Abstimmungs‑Schaltflächen zu einer E‑Mail hinzufügen. Dieser Artikel liefert ein ausführliches Beispiel, wie man eine MapiMessage mit Abstimmungsoptionen erstellt, um eine Umfrage zu erzeugen.
Create Polls
Das folgende Code‑Snippet demonstriert, wie man eine Umfrage in einer Outlook‑Nachricht mit Aspose.Email erstellt. Das FollowUpManager Klasse erleichtert das Festlegen der Abstimmungsoptionen.
// 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: Stellt Eigenschaften zur Verfügung, um Nachverfolgungsaktionen wie Abstimmungs‑Schaltflächen zu konfigurieren.
- VotingButtons: Eine Zeichenketten‑Eigenschaft, in der verschiedene Abstimmungsoptionen durch Semikolons getrennt sind.
- FollowUpManager.SetOptions: Wendet die angegebenen Follow‑Up‑Optionen auf die Nachricht an.
Abstimmungsoptionen lesen
Um Abstimmungsoptionen aus einem MapiMessage, Sie können die GetOptions Methode. Diese Methode ruft nicht nur die Abstimmungsbuttons ab, sondern kann bei Bedarf auch zusätzliche Parameter wie Kategorien bereitstellen.
// 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: Ruft ab FollowUpOptions Objekt aus der Nachricht, das die Abstimmungsbuttons und ggf. weitere Eigenschaften enthält.
- VotingButtons: Die Optionen werden als durch Semikolons getrennte Zeichenkette extrahiert, was eine einfache Anzeige oder Manipulation ermöglicht.
Abstimmungsbuttons lesen
Wenn Sie nur die Abstimmungsbuttons als Liste einzelner Strings benötigen, können Sie die GetVotingButtons Methode, die sie als Sammlung zurückgibt.
// 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: Gibt eine Sammlung von Abstimmungsbutton‑Strings zurück, was das Durchlaufen und das Durchführen von Vorgängen wie Anzeigen oder Ändern erleichtert.
Abstimmungsbuttons hinzufügen
Sie können zusätzliche Abstimmungsbuttons zu einer bestehenden Nachricht hinzufügen, indem Sie die AddVotingButton Methode. Dies kann nützlich sein, um Abstimmungsoptionen dynamisch zu aktualisieren.
// Add a new voting button to the existing message
FollowUpManager.AddVotingButton(msg, "Indeed!");
- AddVotingButton: Fügt eine neue Abstimmungsoption zu den bestehenden Abstimmungsbuttons der Nachricht hinzu und ermöglicht eine dynamische Anpassung von Umfragen.
Abstimmungsbuttons löschen
Möglicherweise möchten Sie bestimmte Abstimmungsbuttons entfernen oder alle Buttons aus einer Nachricht löschen. Der folgende Code demonstriert beide Aktionen mit RemoveVotingButton und ClearVotingButtons Methoden.
// Delete a specific voting button
FollowUpManager.RemoveVotingButton(msg, "Exactly!");
// Or delete all voting buttons from the MapiMessage
FollowUpManager.ClearVotingButtons(msg);
- RemoveVotingButton: Löscht einen bestimmten Abstimmungsbutton nach Namen.
- ClearVotingButtons: Entfernt alle Abstimmungsbuttons und setzt die Abstimmungsoptionen damit zurück.
Abstimmungsergebnisse lesen
Aspose.Email ermöglicht zudem das Lesen von Abstimmungsergebnissen von den Empfängern einer Nachricht. Sie können auf Eigenschaften wie die Antwort des Empfängers und die Antwortzeit zugreifen.
// 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: Stellt einen Empfänger in der MapiMessage dar und ermöglicht den Zugriff auf einzelne Antwortdaten.
- *PR_RECIPIENT_AUTORESPONSE_PROP_RESPONSE: Ein Property‑Tag, das die Abstimmungsantwort des Empfängers speichert.
- PR_RECIPIENT_TRACKSTATUS_TIME: Ein Property‑Tag, das die Zeit aufzeichnet, zu der der Empfänger geantwortet hat.
Reaktionsinformationen aus MSG abrufen
Die GetReactions Methode des FollowUpManager Klasse ermöglicht das Abrufen einer Liste von Reaktionen auf eine MAPI‑Nachricht, was die Analyse der Nutzerbeteiligung erleichtert. Das folgende Codebeispiel demonstriert, wie verfügbare Reaktionen für eine bestimmte Nachricht abgerufen werden, um Einblicke in Nutzerinteraktionen zu geben:
// 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}");
}