Управление элементами беседы

Aspose.Email для .NET может использоваться для управления элементами беседы на Exchange Server с помощью класса EWSClient. Этот класс использует веб-службы Exchange, которые доступны только в Exchange Server 2007 и более поздних версиях. Эта статья показывает, как найти, скопировать, переместить и удалить элементы беседы на Exchange Server 2010. Для всех функций, включенных в этот раздел, требуется Microsoft Exchange Server 2010 Service Pack 1.

Нахождение бесед

Чтобы получить информацию о беседе из конкретной папки на Exchange Server:

  1. Подключитесь к Exchange Server, используя интерфейс IEWSClient.
  2. Вызовите метод IEWSClient.FindConversations(), чтобы найти все элементы беседы из папки.
  3. Отобразите свойства элемента беседы, такие как ID, тема беседы и статус флага.

Следующий фрагмент кода показывает, как находить беседы.

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

Копирование бесед

Чтобы скопировать беседы из одной папки в другую:

  1. Подключитесь к Exchange Server, используя интерфейс IEWSClient.
  2. Вызовите метод IEWSClient.CopyConversationItems(), чтобы скопировать элемент беседы из исходной папки в папку назначения.

Следующий фрагмент кода показывает, как копировать беседы.

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

Перемещение бесед

Чтобы переместить беседы из одной папки в другую:

  1. Подключитесь к Exchange Server, используя интерфейс IEWSClient.
  2. Вызовите метод IEWSClient.MoveConversationItems(), чтобы переместить беседу из исходной папки в папку назначения.

Следующий фрагмент кода показывает, как перемещать беседы.

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

Удаление бесед

Чтобы удалить беседы из папки:

  1. Подключитесь к Exchange Server, используя интерфейс IEWSClient.
  2. Вызовите метод IEWSClient.DeleteConversationItems(), чтобы удалить элемент беседы из исходной папки.

Следующий фрагмент кода показывает, как удалять беседы.

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