Часто электронное письмо состоит из нескольких сообщений (или ответов), образующих цепочку. В Microsoft Exchange Server эти потоки называются диалогами. При программной работе с MS Exchange Server вам может потребоваться доступ к диалогам и управление ими. Для этого в этой статье вы узнаете, как находить, копировать, перемещать и удалять разговоры на Microsoft Exchange Server в Java.
- Java API для работы с диалогами на MS Exchange Server
- Найти беседу на сервере MS Exchange в Java
- Скопируйте беседу на MS Exchange Server в Java
- Переместить беседу на MS Exchange Server в Java
- Удалить беседу на сервере MS Exchange в Java
Java API для работы с диалогами на MS Exchange Server
Для работы с беседами на 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 с помощью 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 Server в 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 Server в 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 в 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 для Java без ограничений пробной версии.
Вывод
В этой статье вы узнали, как управлять диалогами в Microsoft Exchange Server с помощью Java. Вы видели, как программно на Java находить, копировать, перемещать и удалять диалоги на MS Exchange Server. Кроме того, вы можете изучить документацию, чтобы узнать больше об Aspose.Email для Java. Также вы можете задать свои вопросы через наш форум.