Робота з бесідами на MS Exchange Server в Java

Часто електронний лист складається з кількох повідомлень (або відповідей), які утворюють ланцюжок. У Microsoft Exchange Server ці потоки називаються розмовами. Під час програмної роботи з MS Exchange Server вам може знадобитися отримати доступ до розмов і керувати ними. Щоб досягти цього, у цій статті ви дізнаєтесь, як знаходити, копіювати, переміщувати та видаляти розмови на Microsoft Exchange Server у Java.

Java API для роботи з розмовами на сервері MS Exchange

Для роботи з розмовами на Microsoft Exchange Server ми будемо використовувати Aspose.Email for Java. Це дивовижний API, який надає купу функцій для роботи з MS Exchange Server із програм Java. Ви можете завантажити API або встановити його за допомогою наведених нижче конфігурацій Maven.

Репозиторій:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>

Залежність:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>22.2</version>
    <classifier>jdk16</classifier>
</dependency>

Знайдіть розмови на сервері MS Exchange у Java

Нижче наведено кроки для пошуку розмов із папки на сервері MS Exchange Server за допомогою Java.

  • Спочатку створіть та ініціалізуйте об’єкт NetworkCredential з іменем користувача, паролем і доменом.
  • Потім ініціалізуйте IEWSClient за допомогою URI поштової скриньки та об’єкта NetworkCredential.
  • Викличте метод IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri()) і отримайте розмови в масиві ExchangeConversation.
  • Нарешті, прокрутіть кожен об’єкт ExchangeConversation у масиві та отримайте його деталі.

У наведеному нижче прикладі коду показано, як знайти розмови з папки на сервері MS Exchange Server у Java.

// Встановіть URI поштової скриньки, ім’я користувача, пароль, інформацію про домен
String mailboxUri = "https://ex2010/ews/exchange.asmx";
String username = "test.exchange";
String password = "pwd";
String domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

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

// Знайдіть елементи розмови в папці "Вхідні".
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Показати всі розмови
for (ExchangeConversation conversation : conversations) {
	// Відображення властивостей бесіди, таких як ідентифікатор і тема
	System.out.println("Topic: " + conversation.getConversationTopic());
	System.out.println("Flag Status: " + conversation.getFlagStatus());
	System.out.println();
}

Скопіюйте розмову на сервер MS Exchange у Java

Ви також можете копіювати розмови з однієї папки в іншу. Давайте розглянемо, як скопіювати розмови з папки «Вхідні» до папки видалених елементів Exchange Server у Java.

У наведеному нижче прикладі коду показано, як скопіювати розмову на сервері MS Exchange Server за допомогою Java.

// Встановіть URI поштової скриньки, ім’я користувача, пароль, інформацію про домен
String mailboxUri = "https://ex2010/ews/exchange.asmx";
String username = "test.exchange";
String password = "pwd";
String domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

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

// Знайдіть елементи розмови в папці "Вхідні".
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Показати всі розмови
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Скопіюйте елемент розмови на основі певної умови
    if (conversation.getConversationTopic().contains("test email")) {
        client.copyConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Copied the conversation item to another folder");
    }
}

Перемістіть розмову на сервер MS Exchange у Java

У попередньому розділі ми просто скопіювали розмови з однієї папки в іншу. Однак у деяких випадках вам може знадобитися перемістити бесіду до певної папки. Нижче наведено кроки для переміщення розмови на MS Exchange Server у Java.

У наведеному нижче прикладі коду показано, як перемістити розмову на сервері MS Exchange Server за допомогою Java.

// Встановіть URI поштової скриньки, ім’я користувача, пароль, інформацію про домен
String mailboxUri = "https://ex2010/ews/exchange.asmx";
String username = "test.exchange";
String password = "pwd";
String domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

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

// Знайдіть елементи розмови в папці "Вхідні".
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Показати всі розмови
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Перемістити елемент розмови на основі певної умови
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.moveConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Moved the conversation item to another folder");
    }
}

Видалення розмови на сервері MS Exchange Server у Java

Нарешті, давайте розглянемо, як видалити розмову з MS Exchange Server в Java.

У наведеному нижче прикладі коду показано, як видалити розмову з MS Exchange Server у Java.

// Встановіть URI поштової скриньки, ім’я користувача, пароль, інформацію про домен
String mailboxUri = "https://ex2010/ews/exchange.asmx";
String username = "test.exchange";
String password = "pwd";
String domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

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

// Знайдіть елементи розмови в папці "Вхідні".
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Показати всі розмови
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Видалити елемент розмови на основі певної умови
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.deleteConversationItems(conversation.getConversationId());
        System.out.println("Deleted the conversation item");
    }
}

Отримайте безкоштовну ліцензію API

Ви можете отримати безкоштовну тимчасову ліцензію на використання Aspose.Email for Java без оціночних обмежень.

Висновок

У цій статті ви дізналися, як керувати розмовами на сервері Microsoft Exchange Server за допомогою Java. Ви бачили, як програмно знайти, скопіювати, перемістити та видалити розмову на сервері MS Exchange Server у Java. Крім того, ви можете переглянути документацію, щоб дізнатися більше про Aspose.Email for Java. Ви також можете поставити свої запитання через наш форум.

Дивись також