Lavorare con opzioni di voto e reazioni in MSG

Crea opzioni di voto con MapiMessage

Microsoft Outlook offre una funzionalità per creare un sondaggio durante la composizione di una nuova email, consentendo agli utenti di includere opzioni di voto come Sì, No, Forse, ecc. Aspose.Email consente una funzionalità simile quando si crea programmaticamente un nuovo messaggio Outlook. Il FollowUpOptions classe fornisce il VotingButtons proprietà che può essere usata per impostare o ottenere le opzioni di voto. MapiMessage fa riferimento a una classe nello spazio dei nomi Aspose.Email che rappresenta un messaggio email nel formato Messaging Application Programming Interface (MAPI) comunemente usato da Microsoft Outlook. Utilizzando la classe MapiMessage, gli sviluppatori possono aggiungere pulsanti di voto a un’email. Questo articolo fornisce un esempio dettagliato su come creare un MapiMessage con opzioni di voto per creare un sondaggio.

Crea sondaggi

Il seguente frammento di codice dimostra come creare un sondaggio in un messaggio Outlook usando Aspose.Email. Il FollowUpManager la classe facilita l’impostazione delle opzioni di voto.

// 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: Fornisce proprietà per configurare azioni di follow‑up come pulsanti di voto.
  • VotingButtons: Una proprietà stringa dove le diverse opzioni di voto sono separate da punti e virgola.
  • FollowUpManager.SetOptions: Applica le opzioni di follow-up specificate al messaggio.

Leggi opzioni di voto

Per recuperare le opzioni di voto da un MapiMessage, puoi usare il GetOptions metodo. Questo metodo non solo recupera i pulsanti di voto ma può anche fornire parametri aggiuntivi come le categorie se necessario.

// 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: Recupera il FollowUpOptions oggetto dal messaggio, che include i pulsanti di voto e potenzialmente altre proprietà.
  • VotingButtons: Le opzioni sono estratte come una stringa separata da punti e virgola, consentendo una facile visualizzazione o manipolazione.

Leggi pulsanti di voto

Se hai bisogno di accedere solo ai pulsanti di voto come elenco di stringhe individuali, puoi usare il GetVotingButtons metodo, che le restituisce come collezione.

// 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: Restituisce una collezione di stringhe di pulsanti di voto, rendendo comodo iterare su di esse ed eseguire operazioni come la visualizzazione o la modifica.

Aggiungi pulsanti di voto

Puoi aggiungere pulsanti di voto aggiuntivi a un messaggio esistente usando il AddVotingButton metodo. Questo può essere utile per aggiornare dinamicamente le opzioni di voto.

// Add a new voting button to the existing message
FollowUpManager.AddVotingButton(msg, "Indeed!");
  • AddVotingButton: Aggiunge una nuova opzione di voto ai pulsanti di voto esistenti del messaggio, consentendo la personalizzazione dinamica dei sondaggi.

Elimina pulsanti di voto

Potresti voler rimuovere pulsanti di voto specifici o cancellare tutti i pulsanti da un messaggio. Il seguente codice dimostra entrambe le azioni usando RemoveVotingButton e ClearVotingButtons metodi.

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

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

Leggi i risultati del voto

Aspose.Email consente anche di leggere i risultati del voto dai destinatari di un messaggio. È possibile accedere a proprietà come la risposta del destinatario e il tempo di risposta.

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

Recupera informazioni di reazione da MSG

Il GetReactions metodo del FollowUpManager La classe consente di recuperare un elenco di reazioni su un messaggio MAPI, facilitando l’analisi del coinvolgimento degli utenti. Il seguente esempio di codice dimostra come recuperare le reazioni disponibili per un messaggio specifico, fornendo approfondimenti sulle interazioni degli utenti:

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