Arbeta med röstningsalternativ och reaktioner i MSG

Skapa röstningsalternativ med MapiMessage

Microsoft Outlook erbjuder en funktion för att skapa en omröstning när man skriver ett nytt e‑postmeddelande, vilket gör att användare kan inkludera röstningsalternativ som Ja, Nej, Kanske osv. Aspose.Email möjliggör liknande funktionalitet när man programatiskt skapar ett nytt Outlook‑meddelande. Den FollowUpOptions klass tillhandahåller VotingButtons egenskap som kan användas för att ange eller hämta röstningsalternativen. MapiMessage refererar till en klass inom Aspose.Email‑namnområdet som representerar ett e‑postmeddelande i Messaging Application Programming Interface (MAPI)‑formatet som vanligtvis används av Microsoft Outlook. Genom att använda MapiMessage‑klassen kan utvecklare lägga till röstningsknappar i ett e‑postmeddelande. Denna artikel ger ett detaljerat exempel på hur man skapar ett MapiMessage med röstningsalternativ för att skapa en omröstning.

Skapa omröstningar

Följande kodexempel visar hur man skapar en omröstning i ett Outlook‑meddelande med Aspose.Email. Den FollowUpManager klass underlättar inställning av röstningsalternativ.

// 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: Tillhandahåller egenskaper för att konfigurera uppföljningsåtgärder, såsom röstningsknappar.
  • VotingButtons: En strängegenskap där olika röstningsalternativ separeras med semikolon.
  • FollowUpManager.SetOptions: Tillämpa de specificerade uppföljningsalternativen på meddelandet.

Läs röstningsalternativ

För att hämta röstningsalternativ från en MapiMessage, kan du använda GetOptions metod. Denna metod hämtar inte bara röstningsknappar utan kan också tillhandahålla ytterligare parametrar som kategorier om så behövs.

// 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: Hämtar FollowUpOptions objekt från meddelandet, som inkluderar röstningsknapparna och eventuellt andra egenskaper.
  • VotingButtons: Alternativen extraheras som en semikolonseparerad sträng, vilket möjliggör enkel visning eller manipulering.

Läs röstningsknappar

Om du bara behöver komma åt röstningsknappar som en lista av individuella strängar kan du använda GetVotingButtons metod, som returnerar dem som en samling.

// 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: Returnerar en samling av röstningsknapp‑strängar, vilket gör det enkelt att iterera över dem och utföra operationer som att visa eller ändra.

Lägg till röstningsknappar

Du kan lägga till ytterligare röstningsknappar till ett befintligt meddelande med hjälp av AddVotingButton metod. Detta kan vara användbart för att dynamiskt uppdatera röstningsalternativen.

// Add a new voting button to the existing message
FollowUpManager.AddVotingButton(msg, "Indeed!");
  • AddVotingButton: Lägger till ett nytt röstningsalternativ till meddelandets befintliga röstningsknappar, vilket möjliggör dynamisk anpassning av omröstningar.

Ta bort röstningsknappar

Du kanske vill ta bort specifika röstningsknappar eller rensa alla knappar från ett meddelande. Följande kod demonstrerar båda handlingarna med hjälp av RemoveVotingButton och ClearVotingButtons metoder.

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

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

Läs röstningsresultat

Aspose.Email möjliggör också läsning av röstningsresultat från ett meddelandes mottagare. Du kan komma åt egenskaper som mottagarens svar och svarstid.

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

Hämta reaktionsinformation från MSG

Den GetReactions metod för FollowUpManager klassen låter dig hämta en lista över reaktioner på ett MAPI‑meddelande, vilket underlättar analys av användarengagemang. Följande kodexempel visar hur du hämtar tillgängliga reaktioner för ett specificerat meddelande, vilket ger insikt i användarinteraktioner:

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