Microsoft Exchange Serverは、電子メール、予定表、連絡先管理、およびその他のコラボレーションサービスを提供するメールサーバーです。 Webまたはデスクトップアプリケーション内から簡単に接続してアクセスできます。したがって、Exchange Serverと通信して、電子メール、連絡先、カレンダーなどにアクセスできます。この記事では、Javaを使用してMSExchangeServerに接続して電子メールを読む方法を学習します。

MSExchangeServerと連携するJavaAPI

Aspose.Email for Javaは、さまざまなメール管理機能を提供する強力なAPIです。これにより、Javaアプリケーション内から機能豊富な電子メールクライアントを実装できます。さらに、APIを使用すると、MS Exchange Serverからフォルダー、サブフォルダー、電子メール、カレンダー、連絡先などにアクセスできます。 APIのJARをダウンロードするか、次の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>

JavaでMSExchangeServerに接続する

MS Exchange Serverを使用するには、最初に接続を確立する必要があります。 Aspose.Email for Javaは、ExchangeServerに接続するための次の方法を提供します。

  • Exchange Webサービス(EWS)の使用
  • インターネットメッセージアクセスプロトコル(IMAP)の使用

EWSを使用してExchangeServerに接続する

以下は、EWSを介してExchangeServerに接続するための手順です。

次のコードサンプルは、JavaでEWSを使用してMSExchangeServerに接続する方法を示しています。

// ExchangeServerに接続するIEWSClientクラスのインスタンスを作成します
IEWSClient client = EWSClient.getEWSClient("https://exchange.domain.com/ews/Exchange.asmx/", "user", "password", "");

IMAPを使用してExchangeServerに接続する

IMAPを使用してExchangeServerに接続する前に、IMAPサービスが有効になっていることを確認してください。完了したら、IMAPを使用してExchangeServerに接続する手順は次のとおりです。

  • ImapClientクラスのインスタンスを作成し、アドレス、ポート、ユーザー名、およびパスワードで初期化します。
  • ImapClientオブジェクトを使用して、メッセージや連絡先などにアクセスします。

次のコードサンプルは、IMAPを使用してExchangeサーバーに接続する方法を示しています。

// ImapClientクラスを使用してExchangeServerに接続します
ImapClient imapClient = new ImapClient("imap.gmail.com", 993, "username", "password");

JavaでMSExchangeServerからの電子メールを読む

Exchange Serverに接続すると、サーバーからメッセージを読み取ることができます。 EWSまたはIMAPを使用してそれを行うことができます。

EWSを使用してMSExchangeServerからの電子メールを読み取る

以下は、EWSを使用してExchangeServerから電子メールを読み取る手順です。

次のコードサンプルは、JavaでEWSを介してExchangeServerからメッセージを読み取る方法を示しています。

// 資格情報を指定して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());
	}
}

IMAPを使用してMSExchangeServerからの電子メールを読み取る

以下は、IMAPを使用してExchangeServerから電子メールを読み取る手順です。

  • ImapClientクラスのインスタンスを作成し、アドレス、ポート、ユーザー名、およびパスワードで初期化します。
  • ImapClient.listMessages()メソッドを使用して、メッセージ情報のリストをImapMessageInfoCollectionオブジェクトに取得します。
  • コレクション内の各ImapMessageInfoオブジェクトをループして、電子メールを読み取ります。

次のコードサンプルは、Javaを使用してIMAP経由でExchangeServerから電子メールを読み取る方法を示しています。

// ImapClientクラスを使用してExchangeServerに接続します
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 for Javaを試すことができます。

ライブデモ

結論

この記事では、MS Exchange Serverに接続し、Javaを使用して電子メールを読み取る方法を学習しました。さらに、EWSまたはIMAPを使用してMSExchangeServerにアクセスする方法を見てきました。 ドキュメントを使用して、Aspose.Email for Javaの詳細を調べることができます。ご不明な点やご質問がございましたら、フォーラムからお気軽にお問い合わせください。

関連項目