Microsoft Exchange Serverは、受信トレイ、送信トレイなどのさまざまなフォルダーに電子メールを保持します。さらに、事前定義されたフォルダー内に独自のフォルダーまたはサブフォルダーを作成できます。場合によっては、プログラムでExchangeServer上にカスタムフォルダーを作成する必要があります。これを実現するために、この記事では、JavaのMSExchangeServerでEWSを使用してフォルダーまたはサブフォルダーを作成または削除する方法について説明します。
- MSExchangeServerでEWSを使用してフォルダを作成するJavaAPI
- MSExchangeServerにフォルダを作成する
- MSExchangeServerでサブフォルダを作成する
- MSExchangeServer上のフォルダを削除する
MSExchangeServer上にフォルダを作成するためのJavaAPI
EWSを使用してMSExchangeServer上のフォルダーを操作するには、Aspose.Email for Javaを利用します。これは、Javaアプリケーション内からExchangeServerのサービスを操作するための強力なAPIです。 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>
JavaでMSExchangeServerにフォルダを作成する
以下は、JavaのMSExchangeServerにフォルダを作成する手順です。
- MS Exchange Serverに接続し、IEWSClientでEWSクライアントオブジェクトを取得します。
- ルートフォルダの名前と作成するフォルダを指定します。
- IEWSClient.createFolder(String, String)メソッドを使用してフォルダーを作成します。
次のコードサンプルは、JavaでEWSを使用してMSExchangeServerにフォルダを作成する方法を示しています。
// 資格情報を指定してEWSClientクラスのインスタンスを作成します
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd",
"domain");
// 受信トレイのURIを取得します(受信トレイにフォルダーを作成するため)
String inbox = client.getMailboxInfo().getInboxUri();
// フォルダ名を指定する
String folderName1 = "EMAILNET-35054";
try {
// フォルダーを作る
client.setUseSlashAsFolderSeparator(true);
client.createFolder(inbox, folderName1);
} catch (Exception e) {
// 何かをする
}
JavaのMSExchangeServerにサブフォルダを作成する
サブフォルダーを作成するには、最初に親フォルダーが存在するかどうかを確認する必要があります。含まれている場合は、サブフォルダーを作成するだけです。そうでない場合は、最初に親フォルダーを作成します。次の手順は、JavaのMSExchangeServerでサブフォルダを作成する方法を示しています。
- MS Exchange Serverに接続し、IEWSClientでEWSクライアントオブジェクトを取得します。
- ルートフォルダとサブフォルダの名前を指定します。
- IEWSClient.folderExists(String, String)メソッドを使用して、親フォルダーが存在するかどうかを確認します。そうでない場合は、作成します。
- IEWSClient.createFolder(String, String)メソッドを使用してサブフォルダーを作成します。
次のコードサンプルは、JavaのMSExchangeServerでサブフォルダを作成する方法を示しています。
// 資格情報を指定してEWSClientクラスのインスタンスを作成します
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// 受信トレイのURIを取得します(受信トレイにフォルダーを作成するため)
String inbox = client.getMailboxInfo().getInboxUri();
// フォルダ名を指定する
String folderName1 = "EMAILNET-35054";
// サブフォルダー名を指定します
String subFolderName = "2015";
String folderName2 = folderName1 + "/" + subFolderName;
try
{
// フォルダーを作る
client.setUseSlashAsFolderSeparator(true);
if (!client.folderExists(inbox, folderName1))
{
// フォルダーを作る
client.createFolder(inbox, folderName1);
}
// サブフォルダを作成する
client.createFolder(inbox, folderName2);
}
catch(Exception e)
{
// 何かをする
}
JavaでMSExchangeServer上のフォルダを削除する
以下は、JavaでMSExchangeServer上のフォルダを削除する手順です。
- MS Exchange Serverに接続し、IEWSClientでEWSクライアントオブジェクトを取得します。
- IEWSClient.folderExists(String, String, ExchangeFolderInfo [])メソッドを使用して、フォルダーが存在するかどうかを確認します。
- IEWSClient.deleteFolder(String, boolean)メソッドを使用してフォルダーを削除します。
次のコードサンプルは、JavaでMSExchangeServer上のフォルダを削除する方法を示しています。
// 資格情報を指定してEWSClientクラスのインスタンスを作成します
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// 受信トレイのURIを取得します(受信トレイにフォルダーを作成するため)
String inbox = client.getMailboxInfo().getInboxUri();
// フォルダ名を指定する
String folderName1 = "EMAILNET-35054";
ExchangeFolderInfo rootFolderInfo = null;
try
{
ExchangeFolderInfo[] referenceToRootFolderInfo = { rootFolderInfo };
// フォルダが存在するかどうかを確認します
boolean outRefCondition0 = client.folderExists(inbox, folderName1, /* out */ referenceToRootFolderInfo);
rootFolderInfo = referenceToRootFolderInfo[0];
if (outRefCondition0) {
// フォルダを削除
client.deleteFolder(rootFolderInfo.getUri(), true);
}
}
catch(Exception e)
{
// 何かをする
}
無料のAPIライセンスを取得する
無料の一時ライセンスを取得して、評価の制限なしにAspose.EmailforJavaを使用できます。
結論
この記事では、JavaでEWSを使用してMicrosoftExchangeServer上のフォルダーを操作する方法を学習しました。 JavaでプログラムによってMSExchangeServer上の特定のフォルダを作成および削除する方法を見てきました。さらに、ドキュメントからAspose.EmailforJavaの詳細を学ぶことができます。ご不明な点がございましたら、フォーラムに投稿してください。