Gestión de Elementos de Conversación

Aspose.Email para .NET se puede utilizar para gestionar los elementos de conversación en Exchange Server con la clase EWSClient. Esta clase utiliza Exchange Web Services, que solo están disponibles en Exchange Server 2007 y versiones posteriores. Este artículo muestra cómo encontrar, copiar, mover y eliminar elementos de conversación en Exchange Server 2010. Se requiere Microsoft Exchange Server 2010 Service Pack 1 para todas las funcionalidades incluidas en esta sección.

Encontrar Conversaciones

Para obtener la información de la conversación de una carpeta específica en el Exchange Server:

  1. Conéctese al Exchange Server utilizando la interfaz IEWSClient.
  2. Llame al método IEWSClient.FindConversations() para encontrar todos los elementos de conversación de una carpeta.
  3. Muestre las propiedades del elemento de conversación como ID, tema de conversación y estado de la bandera.

El siguiente fragmento de código le muestra cómo encontrar conversaciones.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010");
// Find Conversation Items in the Inbox folder
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
// Show all conversations
foreach (ExchangeConversation conversation in conversations)
{
// Display conversation properties like Id and Topic
Console.WriteLine("Topic: " + conversation.ConversationTopic);
Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
Console.WriteLine();
}

Copiar Conversaciones

Para copiar conversaciones de una carpeta a otra:

  1. Conéctese al Exchange Server utilizando la interfaz IEWSClient.
  2. Llame al método IEWSClient.CopyConversationItems() para copiar el elemento de conversación de la carpeta de origen a la carpeta de destino.

El siguiente fragmento de código le muestra cómo copiar conversaciones.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010");
// Find those Conversation Items in the Inbox folder which we want to copy
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// Copy the conversation item based on some condition
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
Console.WriteLine("Copied the conversation item to another folder");
}
}

Mover Conversaciones

Para mover conversaciones de una carpeta a otra:

  1. Conéctese al Exchange Server utilizando la interfaz IEWSClient.
  2. Llame al método IEWSClient.MoveConversationItems() para mover una conversación de la carpeta de origen a la carpeta de destino.

El siguiente fragmento de código le muestra cómo mover conversaciones.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010");
// Find those Conversation Items in the Inbox folder which we want to move
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// Move the conversation item based on some condition
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
Console.WriteLine("Moved the conversation item to another folder");
}
}

Eliminar Conversaciones

Para eliminar conversaciones de una carpeta:

  1. Conéctese al Exchange Server utilizando la interfaz IEWSClient.
  2. Llame al método IEWSClient.DeleteConversationItems() para eliminar el elemento de conversación de la carpeta de origen.

El siguiente fragmento de código le muestra cómo eliminar conversaciones.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010");
// Find those Conversation Items in the Inbox folder which we want to delete
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// Delete the conversation item based on some condition
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.DeleteConversationItems(conversation.ConversationId);
Console.WriteLine("Deleted the conversation item");
}
}