Microsoft Exchange Server 是一個電子郵件和日曆服務器,提供不同的協作服務,如電子郵件、日曆、聯繫人管理等。在我的一篇文章 中,我向您展示瞭如何訪問和閱讀電子郵件從 Microsoft Exchange Server 以編程方式使用 Java。但是,我們經常需要 MS Exchange Server 上的聯繫人列表。因此在本文中,您將學習如何使用 Java 在 Microsoft Exchange Server 上添加、刪除或更新聯繫人。
- 用於訪問 MS Exchange 服務器上的聯繫人的 Java API
- 將聯繫人添加到 MS Exchange 服務器
- 從 MS Exchange Server 中刪除聯繫人
- 更新 MS Exchange 服務器上的聯繫人
用於訪問 MS Exchange 服務器上的聯繫人的 Java API
Aspose.Email for Java 是一種流行的 API,用於在 Java 中實現電子郵件客戶端應用程序。此外,它還允許您使用 MS Exchange Server 並操作聯繫人、電子郵件和對話項目。我們將使用此 API 添加、更新和刪除 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>22.2</version>
<classifier>jdk16</classifier>
</dependency>
用 Java 將聯繫人添加到 MS Exchange Server
以下是使用 Java 將聯繫人添加到 Microsoft Exchange Server 的步驟。
- 首先,使用用戶名、密碼和域創建並初始化 NetworkCredential 對象。
- 然後,用郵箱 URI 和 NetworkCredential 對像初始化 IEWSClient。
- 創建一個Contact類的對象,並設置其屬性,如姓名、工作、性別、電話、關聯人員等。
- 最後調用EWSClient.createContact(Contact)方法添加聯繫人。
以下代碼示例顯示如何使用 Java 將聯繫人添加到 Microsoft Exchange Server。
// 設置郵箱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);
// 創建新聯繫人
Contact contact = new Contact();
// 設置一般信息
contact.setGender(Gender.Male);
contact.setDisplayName("Frank Lin");
contact.setCompanyName("ABC Co.");
contact.setJobTitle("Executive Manager");
PhoneNumber tmp0 = new PhoneNumber();
tmp0.setNumber("123456789");
tmp0.setCategory(PhoneNumberCategory.getHome());
// 添加電話號碼
contact.getPhoneNumbers().add(tmp0);
AssociatedPerson tmp1 = new AssociatedPerson();
tmp1.setName("Catherine");
tmp1.setCategory(AssociatedPersonCategory.getSpouse());
// 聯繫人的相關人員
contact.getAssociatedPersons().add(tmp1);
AssociatedPerson tmp2 = new AssociatedPerson();
tmp2.setName("Bob");
tmp2.setCategory(AssociatedPersonCategory.getChild());
contact.getAssociatedPersons().add(tmp2);
AssociatedPerson tmp3 = new AssociatedPerson();
tmp3.setName("Merry");
tmp3.setCategory(AssociatedPersonCategory.getSister());
contact.getAssociatedPersons().add(tmp3);
Url tmp4 = new Url();
tmp4.setHref("www.blog.com");
tmp4.setCategory(UrlCategory.getBlog());
// 網址
contact.getUrls().add(tmp4);
Url tmp5 = new Url();
tmp5.setHref("www.homepage.com");
tmp5.setCategory(UrlCategory.getHomePage());
contact.getUrls().add(tmp5);
EmailAddress tmp6 = new EmailAddress();
tmp6.setAddress("Frank.Lin@Abc.com");
tmp6.setDisplayName("Frank Lin");
tmp6.setCategory(EmailAddressCategory.getEmail1());
// 設置聯繫人的電子郵件地址
contact.getEmailAddresses().add(tmp6);
try {
// 創建聯繫人
client.createContact(contact);
} catch (java.lang.RuntimeException ex) {
System.out.println(ex.getMessage());
}
在 Java 中從 MS Exchange Server 中刪除聯繫人
您還可以從 MS Exchange Server 中刪除聯繫人。要過濾聯繫人,您可以使用姓名、電子郵件或任何其他合適的屬性。以下是使用 Java 從 Microsoft Exchange Server 中刪除聯繫人的步驟。
- 首先,創建並初始化 IEWSClient 對象。
- 然後,使用 IEWSClient.getContacts(EWSClient.getMailboxInfo().getContactsUri()) 方法從 MS Exchange Server 獲取所有聯繫人。
- 遍歷聯繫人並過濾所需的聯繫人。
- 最後,使用 IEWSClient.deleteItem(Contact.getId().getEWSId(), DeletionOptions.getDeletePermanently()) 方法刪除聯繫人。
以下代碼示例顯示瞭如何使用 Java 從 Microsoft Exchange Server 中刪除聯繫人。
// 初始化 EWS 客戶端
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// 聯繫人姓名
String strContactToDelete = "John Teddy";
// 獲取聯繫人
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
// 循環瀏覽聯繫人
for (Contact contact : contacts) {
if (contact.getDisplayName().equals(strContactToDelete))
// 刪除聯繫人
client.deleteItem(contact.getId().getEWSId(), DeletionOptions.getDeletePermanently());
}
client.dispose();
在 Java 中更新 Exchange Server 上的聯繫人
Aspose.Email for Java 還允許您更新 MS Exchange Server 上的聯繫人。以下是執行此操作的步驟。
- 首先,使用用戶名、密碼和域創建並初始化 NetworkCredential 對象。
- 然後,用郵箱 URI 和 NetworkCredential 對像初始化 IEWSClient。
- 使用 IEWSClient.getContacts(EWSClient.getMailboxInfo().getContactsUri()) 方法從 Exchange Server 獲取聯繫人。
- 之後,遍歷聯繫人並過濾所需的聯繫人。
- 最後,更新聯繫人的屬性並調用 IEWSClient.updateContact(Contact) 進行保存。
以下代碼示例顯示瞭如何使用 Java 更新 MS Exchange Server 上的聯繫人。
// 設置郵箱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);
// 初始化 EWS 客戶端
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
// 列出所有聯繫人並遍歷所有聯繫人
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
Contact contact = contacts[0];
// 更新聯繫方式
System.out.println("Name: " + contact.getDisplayName());
contact.setDisplayName("David Ch");
client.updateContact(contact);
獲取免費的 API 許可證
您可以獲得免費的臨時許可證,以在沒有評估限制的情況下使用 Aspose.Email for Java。
結論
在本文中,您了解瞭如何使用 Java 在 Microsoft Exchange Server 上處理聯繫人。我們已經演示瞭如何使用 Java 從 MS Exchange Server 添加、刪除和更新聯繫人。此外,您可以瀏覽 文檔 以閱讀有關 Aspose.Email for Java 的更多信息。此外,您可以在我們的 論壇 上發布您的疑問。