Trabajando con la Opción de Votación Usando MapiMessage

Creando Opción de Votación Usando MapiMessage

Microsoft Outlook permite a los usuarios crear una encuesta al redactar un nuevo mensaje. Les permite incluir opciones de votación como Sí, No, Quizás, etc. Aspose.Email permite lo mismo al crear un nuevo mensaje de Outlook. La clase FollowUpOptions proporciona la propiedad VotingButtons que se puede usar para establecer o obtener el valor de las opciones de votación. Este artículo proporciona un ejemplo detallado de cómo crear un MapiMessage con opciones de votación para crear una encuesta.

Creando una Encuesta usando MapiMessage

El siguiente fragmento de código muestra cómo crear una encuesta, la clase FollowUpManager se puede usar como se muestra en el siguiente fragmento de código.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
string address = "firstname.lastname@aspose.com";
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
MailMessage message = CreateTestMessage(address);
// Set FollowUpOptions Buttons
FollowUpOptions options = new FollowUpOptions();
options.VotingButtons = "Yes;No;Maybe;Exactly!";
client.Send(message, options);

Leyendo Opciones de Votación de un MapiMessage

El siguiente fragmento de código muestra cómo leer opciones de votación de un MapiMessage.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
MapiMessage message = MapiMessage.FromFile(fileName);
// This method can be useful when except voting buttons it is necessary to get other parameters (ex. a category)
FollowUpOptions options = FollowUpManager.GetOptions(message);
// Voting buttons will be introduced as a string with semi-column as a separator
string votingButtons = options.VotingButtons;

Leyendo Solo Botones de Votación

El siguiente fragmento de código muestra cómo leer solo botones de votación.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
MapiMessage testMsg = MapiMessage.FromStream(ms);
// This method can be useful when it is necessary to read only voting buttons Voting buttons will be introduced as a collection of string values
IList buttons = FollowUpManager.GetVotingButtons(testMsg);

Agregando un botón de votación a un Mensaje Existente

El siguiente fragmento de código muestra cómo agregar un botón de votación a un mensaje existente.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// The path to the File directory.
string dataDir = RunExamples.GetDataDir_Outlook();
MapiMessage mapi = MapiMessage.FromFile(dataDir + "message.msg");
FollowUpManager.AddVotingButton(mapi, "Indeed!");
mapi.Save(dataDir + "AddVotingButtonToExistingMessage_out.msg");

Eliminando un botón de Votación de un Mensaje

El siguiente fragmento de código muestra cómo eliminar el botón de votación de un Mensaje.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// The path to the File directory.
string dataDir = RunExamples.GetDataDir_Outlook();
// Create New Message and set FollowUpOptions, FollowUpManager properties
MapiMessage msg = CreateTestMessage(false);
FollowUpOptions options = new FollowUpOptions();
options.VotingButtons = "Yes;No;Maybe;Exactly!";
FollowUpManager.SetOptions(msg, options);
msg.Save(dataDir + "MapiMsgWithPoll.msg");
FollowUpManager.RemoveVotingButton(msg, "Exactly!"); // Deleting a single button OR
FollowUpManager.ClearVotingButtons(msg); // Deleting all buttons from a MapiMessage
msg.Save(dataDir + "MapiMsgWithPoll.msg");

Leer la Información de Resultados de Votación

El siguiente fragmento de código muestra cómo leer la información de resultados de votación.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
MapiMessage msg = MapiMessage.FromFile(dataDir + @"AddVotingButtonToExistingMessage.msg");
foreach (MapiRecipient recipient in msg.Recipients)
{
Console.WriteLine(string.Format("Recipient: {0}", recipient.DisplayName));
// Get the PR_RECIPIENT_AUTORESPONSE_PROP_RESPONSE property
Console.WriteLine(string.Format("Response: {0}", recipient.Properties[MapiPropertyTag.PR_RECIPIENT_AUTORESPONSE_PROP_RESPONSE].GetString()));
// Get the PR_RECIPIENT_TRACKSTATUS_TIME property
Console.WriteLine(string.Format("Response time: {0}", recipient.Properties[MapiPropertyTag.PR_RECIPIENT_TRACKSTATUS_TIME].GetDateTime()));
Console.WriteLine();
}

Métodos de Ejemplo Usados en Ejemplos

El siguiente fragmento de código muestra cómo crear el mensaje de ejemplo utilizado en los ejemplos.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
private static MapiMessage CreateTestMessage(bool draft)
{
MapiMessage 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...");
if (!draft)
{
msg.SetMessageFlags(msg.Flags ^ MapiMessageFlags.MSGFLAG_UNSENT);
}
return msg;
}