Microsoft Exchange Server — это почтовый сервер, который предоставляет электронную почту, календарь, управление контактами и другие службы совместной работы. Его можно легко подключить и получить к нему доступ из веб-приложений или настольных приложений. Таким образом, вы можете общаться с сервером Exchange и получать доступ к электронной почте, контактам, календарям и т. д. В этой статье вы узнаете, как подключиться к серверу MS Exchange и читать электронную почту с помощью Java.

Java API для работы с MS Exchange Server

Aspose.Email для Java — это мощный API, предоставляющий широкий спектр функций управления электронной почтой. Он позволяет вам реализовывать многофункциональные почтовые клиенты из ваших Java-приложений. Кроме того, API позволяет вам получать доступ к папкам, подпапкам, электронной почте, календарям, контактам и т. д. с сервера MS Exchange. Вы можете либо скачать JAR-файл 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>21.2</version>
    <classifier>jdk16</classifier>
</dependency>

Подключиться к серверу MS Exchange на Java

Для работы с MS Exchange Server необходимо сначала установить соединение. Aspose.Email для Java предоставляет следующие способы подключения к серверу Exchange.

  • Использование веб-службы Exchange (EWS)
  • Использование протокола доступа к сообщениям в Интернете (IMAP)

Подключиться к Exchange Server с помощью EWS

Ниже приведены шаги для подключения к Exchange Server через EWS.

В следующем примере кода показано, как подключиться к серверу MS Exchange с помощью EWS в Java.

// Создайте экземпляр класса IEWSClient для подключения к Exchange Server.
IEWSClient client = EWSClient.getEWSClient("https://exchange.domain.com/ews/Exchange.asmx/", "user", "password", "");

Подключиться к Exchange Server по протоколу IMAP

Прежде чем пытаться подключиться к Exchange Server с помощью IMAP, убедитесь, что вы включили службы IMAP. После этого выполните следующие действия для подключения к серверу Exchange с использованием IMAP.

  • Создайте экземпляр класса ImapClient и инициализируйте его адресом, портом, именем пользователя и паролем.
  • Доступ к сообщениям, контактам и т. д. с помощью объекта ImapClient.

В следующем примере кода показано, как подключиться к серверу Exchange с помощью IMAP.

// Подключиться к Exchange Server с помощью класса ImapClient
ImapClient imapClient = new ImapClient("imap.gmail.com", 993, "username", "password");

Чтение электронных писем с сервера MS Exchange в Java

После подключения к серверу Exchange вы можете читать сообщения с сервера. Вы можете сделать это с помощью EWS или IMAP.

Чтение электронных писем с сервера MS Exchange с помощью EWS

Ниже приведены шаги для чтения сообщений электронной почты с Exchange Server с помощью EWS.

В следующем примере кода показано, как читать сообщения с Exchange Server через EWS на Java.

// Создайте экземпляр класса ExchangeWebServiceClient, предоставив учетные данные
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// Вызовите метод ListMessages, чтобы просмотреть информацию о сообщениях из папки «Входящие».
ExchangeMessageInfoCollection msgCollection = client.listMessages(client.getMailboxInfo().getInboxUri());

// Прокрутите коллекцию, чтобы получить URI сообщения.
for (ExchangeMessageInfo msgInfo : msgCollection) {
	String strMessageURI = msgInfo.getUniqueUri();

	// Теперь получите детали сообщения, используя FetchMessage().
	MailMessage msg = client.fetchMessage(strMessageURI);

	// Показать детали сообщения
	System.out.println("Subject: " + msg.getSubject());
	//Console.WriteLine("Тело HTML: " + msg.HtmlBody);

	// Сколько вложений
	System.out.println("Number of attachments: " + msg.getAttachments().size());

	// Список вложений
	for (Attachment att : msg.getAttachments()) {
		System.out.println("Attachment Name: " + att.getName());
	}
}

Чтение электронной почты с сервера MS Exchange с использованием IMAP

Ниже приведены шаги для чтения электронной почты с Exchange Server с использованием IMAP.

  • Создайте экземпляр класса ImapClient и инициализируйте его адресом, портом, именем пользователя и паролем.
  • Получить список информации о сообщении в объект ImapMessageInfoCollection с помощью метода ImapClient.listMessages().
  • Прокрутите каждый объект ImapMessageInfo в коллекции, чтобы прочитать электронные письма.

В следующем примере кода показано, как читать электронные письма с Exchange Server через IMAP с помощью Java.

// Подключиться к Exchange Server с помощью класса ImapClient
ImapClient imapClient = new ImapClient("imap.gmail.com", 993, "username", "password");

// Выберите папку «Входящие»
imapClient.selectFolder(ImapFolderInfo.IN_BOX);

// Получить список сообщений
ImapMessageInfoCollection msgCollection = imapClient.listMessages();
for (ImapMessageInfo msgInfo : msgCollection) {
	System.out.println(msgInfo.getSubject());
}

Получите бесплатную лицензию API

Вы можете попробовать Aspose.Email для Java без оценочных ограничений, получив временную лицензию.

Живая демонстрация

Вывод

В этой статье вы узнали, как подключиться к серверу MS Exchange и читать электронную почту с помощью Java. Кроме того, вы видели, как получить доступ к серверу MS Exchange с помощью EWS или IMAP. Вы можете узнать больше об Aspose.Email для Java, используя документацию. Если у вас возникнут какие-либо вопросы или вопросы, сообщите нам об этом через наш форум.

Смотрите также