在 Java 中从 Microsoft Exchange Server 添加或删除联系人

Microsoft Exchange Server 是一个电子邮件和日历服务器,提供不同的协作服务,如电子邮件、日历、联系人管理等。在 我的一篇文章 中,我向您展示了如何访问和阅读电子邮件以 Java 编程方式从 Microsoft Exchange Server 获取。但是,我们经常需要 MS Exchange Server 上的联系人列表。因此,在本文中,您将学习如何使用 Java 在 Microsoft Exchange Server 上添加、删除或更新联系人。

用于访问 MS Exchange Server 上的联系人的 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,没有评估限制。

结论

在本文中,您学习了如何在 Microsoft Exchange Server 上使用 Java 处理联系人。我们已经演示了如何在 Java 中从 MS Exchange Server 添加、删除和更新联系人。此外,您可以浏览 文档 以阅读有关 Aspose.Email for Java 的更多信息。此外,您可以在我们的 论坛 上发布您的查询。

也可以看看