Praca z opcjami głosowania i reakcjami w MSG

Utwórz opcje głosowania za pomocą MapiMessage

Microsoft Outlook udostępnia funkcję tworzenia ankiety podczas komponowania nowej wiadomości e‑mail, umożliwiając użytkownikom dodanie opcji głosowania, takich jak Tak, Nie, Być może itp. Aspose.Email pozwala na podobną funkcjonalność przy programowym tworzeniu nowej wiadomości Outlook. The FollowUpOptions klasa udostępnia VotingButtons właściwość, którą można użyć do ustawiania lub pobierania opcji głosowania. MapiMessage odnosi się do klasy w przestrzeni nazw Aspose.Email, która reprezentuje wiadomość e‑mail w formacie Messaging Application Programming Interface (MAPI) powszechnie używanym przez Microsoft Outlook. Korzystając z klasy MapiMessage, programiści mogą dodać przyciski ankietowe do wiadomości e‑mail. Ten artykuł zawiera szczegółowy przykład, jak utworzyć MapiMessage z opcjami głosowania, aby stworzyć ankietę.

Utwórz ankiety

Poniższy fragment kodu demonstruje, jak utworzyć ankietę w wiadomości Outlook przy użyciu Aspose.Email. The FollowUpManager klasa ułatwia ustawianie opcji głosowania.

// 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: Dostarcza właściwości do konfigurowania działań następczych, takich jak przyciski głosowania.
  • VotingButtons: Właściwość typu string, w której różne opcje głosowania są oddzielone średnikami.
  • FollowUpManager.SetOptions: Stosuje określone opcje dalszych działań do wiadomości.

Odczytaj opcje głosowania

Aby pobrać opcje głosowania z MapiMessage, możesz użyć GetOptions metoda. Ta metoda nie tylko pobiera przyciski głosowania, ale może również dostarczyć dodatkowe parametry, takie jak kategorie, jeśli to konieczne.

// 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: Pobiera FollowUpOptions obiekt z wiadomości, który zawiera przyciski głosowania i ewentualnie inne właściwości.
  • VotingButtons: Opcje są wyodrębniane jako ciąg rozdzielony średnikami, co umożliwia łatwe wyświetlanie lub manipulację.

Odczytaj przyciski głosowania

Jeśli potrzebujesz uzyskać dostęp wyłącznie do przycisków głosowania jako listy pojedynczych ciągów, możesz użyć GetVotingButtons metoda, która zwraca je jako kolekcję.

// 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: Zwraca kolekcję ciągów przycisków głosowania, co ułatwia iterację i wykonywanie operacji, takich jak wyświetlanie lub modyfikacja.

Dodaj przyciski głosowania

Możesz dodać dodatkowe przyciski głosowania do istniejącej wiadomości używając AddVotingButton metoda. Może być przydatna do dynamicznej aktualizacji opcji głosowania.

// Add a new voting button to the existing message
FollowUpManager.AddVotingButton(msg, "Indeed!");
  • AddVotingButton: Dodaje nową opcję głosowania do istniejących przycisków głosowania w wiadomości, umożliwiając dynamiczną personalizację ankiet.

Usuń przyciski głosowania

Możesz chcieć usunąć określone przyciski głosowania lub wyczyścić wszystkie przyciski z wiadomości. Poniższy kod demonstruje oba działania przy użyciu RemoveVotingButton i ClearVotingButtons metod.

// Delete a specific voting button
FollowUpManager.RemoveVotingButton(msg, "Exactly!");

// Or delete all voting buttons from the MapiMessage
FollowUpManager.ClearVotingButtons(msg);

Odczytaj wyniki głosowania

Aspose.Email umożliwia także odczyt wyników głosowania od odbiorców wiadomości. Możesz uzyskać dostęp do właściwości, takich jak odpowiedź odbiorcy i czas odpowiedzi.

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

Pobierz informacje o reakcjach z MSG

Ten GetReactions metoda FollowUpManager klasa pozwala pobrać listę reakcji na wiadomość MAPI, ułatwiając analizę zaangażowania użytkowników. Poniższy przykład kodu pokazuje, jak pobrać dostępne reakcje dla określonej wiadomości, dostarczając wgląd w interakcje użytkowników:

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