Práce s možnostmi hlasování a reakcemi v MSG

Vytvořit volební možnosti pomocí MapiMessage

Microsoft Outlook poskytuje funkci vytvořit anketu při psaní nového e‑mailu, což umožňuje uživatelům zahrnout volební možnosti jako Ano, Ne, Možná atd. Aspose.Email umožňuje podobnou funkcionalitu při programatickém vytvoření nové Outlook zprávy. The FollowUpOptions třída poskytuje VotingButtons vlastnost, kterou lze použít k nastavení nebo získání volebních možností. MapiMessage odkazuje na třídu v rámci jmenného prostoru Aspose.Email, která představuje e‑mailovou zprávu ve formátu Messaging Application Programming Interface (MAPI), běžně používaném v Microsoft Outlook. Použitím třídy MapiMessage mohou vývojáři přidat tlačítka ankety do e‑mailu. Tento článek poskytuje podrobný příklad, jak vytvořit MapiMessage s volebními možnostmi pro vytvoření ankety.

Vytvořit ankety

Následující úryvek kódu ukazuje, jak vytvořit anketu v Outlook zprávě pomocí Aspose.Email. The FollowUpManager třída usnadňuje nastavení volebních možností.

// 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: Poskytuje vlastnosti pro konfiguraci následných akcí, jako jsou tlačítka pro hlasování.
  • VotingButtons: Řetězcová vlastnost, kde jsou různé hlasovací možnosti odděleny středníky.
  • FollowUpManager.SetOptions: Aplikuje zadané následné možnosti na zprávu.

Číst hlasovací možnosti

Pro získání hlasovacích možností z MapiMessage, můžete použít GetOptions metoda. Tato metoda nejen získává hlasovací tlačítka, ale může také poskytnout další parametry jako kategorie, pokud je to potřeba.

// 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: Získá FollowUpOptions objekt ze zprávy, který zahrnuje hlasovací tlačítka a případně další vlastnosti.
  • VotingButtons: Možnosti jsou extrahovány jako řetězec oddělený středníky, což usnadňuje zobrazení nebo manipulaci.

Číst hlasovací tlačítka

Pokud potřebujete přistupovat jen k hlasovacím tlačítkům jako seznamu jednotlivých řetězců, můžete použít GetVotingButtons metoda, která je vrací jako kolekci.

// 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: Vrací kolekci řetězců hlasovacích tlačítek, což usnadňuje jejich procházení a provádění operací jako je zobrazení nebo úprava.

Přidat hlasovací tlačítka

Můžete přidat další hlasovací tlačítka do existující zprávy pomocí AddVotingButton metoda. To může být užitečné pro dynamické aktualizování hlasovacích možností.

// Add a new voting button to the existing message
FollowUpManager.AddVotingButton(msg, "Indeed!");
  • AddVotingButton: Přidává novou hlasovací možnost k existujícím hlasovacím tlačítkům zprávy, což umožňuje dynamické přizpůsobení anket.

Smazat hlasovací tlačítka

Možná budete chtít odstranit konkrétní hlasovací tlačítka nebo vymazat všechna tlačítka ze zprávy. Následující kód demonstruje oba úkony pomocí RemoveVotingButton a ClearVotingButtons metod.

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

// Or delete all voting buttons from the MapiMessage
FollowUpManager.ClearVotingButtons(msg);
  • RemoveVotingButton: Odstraňuje konkrétní hlasovací tlačítko podle názvu.
  • ClearVotingButtons: Odstraňuje všechna hlasovací tlačítka, čímž efektivně resetuje možnosti hlasování.

Číst výsledky hlasování

Aspose.Email také umožňuje čtení výsledků hlasování od příjemců zprávy. Můžete přistupovat k vlastnostem jako je odpověď příjemce a čas odpovědi.

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

Získat informace o reakcích z MSG

The GetReactions metoda třídy FollowUpManager třída vám umožní získat seznam reakcí na MAPI zprávu, což usnadňuje analýzu zapojení uživatelů. Následující ukázka kódu demonstruje, jak získat dostupné reakce pro konkrétní zprávu, poskytující přehled o interakcích uživatelů:

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