Управление элементами разговора

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

Поиск разговоров

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

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

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

IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange 2010");

// Find Conversation Items in the Inbox folder
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());
// Show all conversations
for (ExchangeConversation conversation : conversations) {
    // Display conversation properties like Id and Topic
    System.out.println("Topic: " + conversation.getConversationTopic());
    System.out.println("Flag Status: " + conversation.getFlagStatus());
    System.out.println();
}

Копирование разговоров

Для копирования разговоров из одной папки в другую:

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

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

IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange 2010");

// Find those Conversation Items in the Inbox folder which we want to copy
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());
for (ExchangeConversation conversation : conversations) {
    System.out.println("Topic: " + conversation.getConversationTopic());
    // Copy the conversation item based on some condition
    if (conversation.getConversationTopic().contains("test email")) {
        client.copyConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Copied the conversation item to another folder");
    }
}

Перемещение разговоров

Для перемещения разговоров из одной папки в другую:

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

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

IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange 2010");

// Find those Conversation Items in the Inbox folder which we want to move
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

for (ExchangeConversation conversation : conversations) {
    System.out.println("Topic: " + conversation.getConversationTopic());
    // Move the conversation item based on some condition
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.moveConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Moved the conversation item to another folder");
    }
}

Удаление разговоров

Для удаления разговоров из папки:

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

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

IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange 2010");

// Find those Conversation Items in the Inbox folder which we want to delete
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());
for (ExchangeConversation conversation : conversations) {
    System.out.println("Topic: " + conversation.getConversationTopic());
    // Delete the conversation item based on some condition
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.deleteConversationItems(conversation.getConversationId());
        System.out.println("Deleted the conversation item");
    }
}