在 Java 中從 Microsoft Exchange Server 添加或刪除聯繫人

Microsoft Exchange Server 是一個電子郵件和日曆服務器,提供不同的協作服務,如電子郵件、日曆、聯繫人管理等。在我的一篇文章 中,我向您展示瞭如何訪問和閱讀電子郵件從 Microsoft Exchange Server 以編程方式使用 Java。但是,我們經常需要 MS Exchange Server 上的聯繫人列表。因此在本文中,您將學習如何使用 Java 在 Microsoft Exchange Server 上添加、刪除或更新聯繫人。

用於訪問 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 中刪除聯繫人的步驟。

以下代碼示例顯示瞭如何使用 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 上的聯繫人。以下是執行此操作的步驟。

以下代碼示例顯示瞭如何使用 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 的更多信息。此外,您可以在我們的 論壇 上發布您的疑問。

也可以看看