Microsoft Exchange Server 將電子郵件保存在不同的文件夾中,例如收件箱、發件箱等。此外,它還允許您在預定義的文件夾中創建自己的文件夾或子文件夾。在某些情況下,您可能需要以編程方式在 Exchange Server 上創建自定義文件夾。為此,本文介紹瞭如何使用 Java 在 MS Exchange Server 上使用 EWS 創建或刪除文件夾或子文件夾。
- 用於在 MS Exchange Server 上使用 EWS 創建文件夾的 Java API
- 在 MS Exchange 服務器上創建文件夾
- 在 MS Exchange Server 上創建子文件夾
- 刪除 MS Exchange 服務器上的文件夾
用於在 MS Exchange 服務器上創建文件夾的 Java API
要使用 EWS 在 MS Exchange Server 上處理文件夾,我們將使用 Aspose.Email for Java。它是一個強大的 API,可以在 Java 應用程序中使用 Exchange Server 的服務。您可以 下載 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 在 MS Exchange Server 上創建文件夾
以下是使用 Java 在 MS Exchange Server 上創建文件夾的步驟。
- 連接到 MS Exchange Server 並在 IEWSClient 中獲取 EWS 客戶端對象。
- 指定根文件夾的名稱和要創建的文件夾。
- 使用 IEWSClient.createFolder(String, String) 方法創建文件夾。
以下代碼示例顯示如何使用 Java 中的 EWS 在 MS Exchange Server 上創建文件夾。
// 通過提供憑據創建 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 在 MS Exchange Server 上創建子文件夾
要創建子文件夾,您首先需要檢查父文件夾是否存在。如果是,只需創建子文件夾,否則先創建父文件夾。以下步驟演示瞭如何使用 Java 在 MS Exchange Server 上創建子文件夾。
- 連接到 MS Exchange Server 並在 IEWSClient 中獲取 EWS 客戶端對象。
- 指定根文件夾和子文件夾的名稱。
- 使用 IEWSClient.folderExists(String, String) 方法檢查父文件夾是否存在。如果沒有,請創建一個。
- 使用 IEWSClient.createFolder(String, String) 方法創建子文件夾。
以下代碼示例顯示瞭如何使用 Java 在 MS Exchange Server 上創建子文件夾。
// 通過提供憑據創建 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 中刪除 MS Exchange Server 上的文件夾
以下是使用 Java 刪除 MS Exchange Server 上的文件夾的步驟。
- 連接到 MS Exchange Server 並在 IEWSClient 中獲取 EWS 客戶端對象。
- 使用 IEWSClient.folderExists(String, String, ExchangeFolderInfo[]) 方法檢查文件夾是否存在。
- 使用 IEWSClient.deleteFolder(String, boolean) 方法刪除文件夾。
以下代碼示例顯示瞭如何使用 Java 刪除 MS Exchange Server 上的文件夾。
// 通過提供憑據創建 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.Email for Java。
結論
在本文中,您了解瞭如何使用 Java 中的 EWS 使用 Microsoft Exchange Server 上的文件夾。您已經了解瞭如何使用 Java 以編程方式在 MS Exchange Server 上創建和刪除特定文件夾。此外,您可以從文檔中了解更多關於Aspose.Email for Java 的信息。如果您有任何疑問,可以將其發佈到我們的論壇。