Часто електронний лист складається з кількох повідомлень (або відповідей), які утворюють ланцюжок. У Microsoft Exchange Server ці потоки називаються розмовами. Під час програмної роботи з MS Exchange Server вам може знадобитися отримати доступ до розмов і керувати ними. Щоб досягти цього, у цій статті ви дізнаєтесь, як знаходити, копіювати, переміщувати та видаляти розмови на Microsoft Exchange Server у Java.
- Java API для роботи з розмовами на сервері MS Exchange
- Знайдіть розмову на сервері MS Exchange у Java
- Скопіюйте розмову на сервер MS Exchange у Java
- Перемістіть розмову на сервер MS Exchange у Java
- Видалення розмови на сервері MS 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.
- Спочатку створіть та ініціалізуйте об’єкт NetworkCredential з іменем користувача, паролем і доменом.
- Потім ініціалізуйте IEWSClient за допомогою URI поштової скриньки та об’єкта NetworkCredential.
- Викличте метод IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri())) і отримайте розмови в масиві ExchangeConversation.
- Перегляньте кожен об’єкт ExchangeConversation у масиві та відфільтруйте потрібний об’єкт(и).
- Нарешті, скопіюйте розмову за допомогою методу IEWSClient.copyConversationItems(ExchangeConversation.getConversationId(), IEWSClient.getMailboxInfo().getDeletedItemsUri()).
У наведеному нижче прикладі коду показано, як скопіювати розмову на сервері 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.
- Спочатку створіть та ініціалізуйте об’єкт NetworkCredential з іменем користувача, паролем і доменом.
- Потім ініціалізуйте IEWSClient за допомогою URI поштової скриньки та об’єкта NetworkCredential.
- Викличте метод IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri())) і отримайте розмови в масиві ExchangeConversation.
- Перегляньте кожен об’єкт ExchangeConversation у масиві та відфільтруйте потрібний об’єкт(и).
- Нарешті, перемістіть бесіду за допомогою методу IEWSClient.moveConversationItems(ExchangeConversation.getConversationId(), IEWSClient.getMailboxInfo().getDeletedItemsUri()).
У наведеному нижче прикладі коду показано, як перемістити розмову на сервері 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.
- Спочатку створіть та ініціалізуйте об’єкт NetworkCredential з іменем користувача, паролем і доменом.
- Потім ініціалізуйте IEWSClient за допомогою URI поштової скриньки та об’єкта NetworkCredential.
- Викличте метод IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri()) і отримайте розмови в масиві ExchangeConversation.
- Перегляньте кожен об’єкт ExchangeConversation у масиві та відфільтруйте потрібний об’єкт(и).
- Нарешті видаліть розмову за допомогою методу IEWSClient.deleteConversationItems(ExchangeConversation.getConversationId()).
У наведеному нижче прикладі коду показано, як видалити розмову з 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. Ви також можете поставити свої запитання через наш форум.