Microsoft Exchange Server 是一个流行的平台,提供各种协作服务,如电子邮件、日历、联系人等。在上一篇文章 中,我们向您展示了如何从 Microsoft Exchange Server 读取电子邮件。但是,您可能还需要以编程方式处理 Exchange Server 上的联系人。在本文中,您将了解如何使用 C# .NET 在 Microsoft Exchange Server 上添加、删除或更新联系人。
- .NET API 用于访问 MS Exchange Server 上的联系人
- 将联系人添加到 MS Exchange Server
- 从 MS Exchange Server 中删除联系人
- 更新 MS Exchange Server 上的联系人
用于访问 MS Exchange Server 上的联系人的 C# .NET API
要在 Microsoft Exchange Server 上处理联系人,我们将使用 Aspose.Email for .NET。它是一个众所周知的 API,可与 .NET 应用程序中的不同电子邮件客户端一起工作。您可以 下载 API 的 DLL 或使用以下命令从 NuGet 安装它。
PM> Install-Package Aspose.Email
在 C# 中将联系人添加到 MS Exchange Server
以下是使用 C# 将联系人添加到 Microsoft Exchange Server 的步骤。
- 首先,使用用户名、密码和域创建并初始化 NetworkCredential 对象。
- 然后,使用邮箱 URI 和 NetworkCredential 对象初始化 IEWSClient。
- 创建一个 Contact 类的对象并设置其属性,例如姓名、工作、性别、电话、相关人员等。
- 最后调用EWSClient.CreateContact(Contact)添加联系人。
以下代码示例展示了如何使用 C# 将联系人添加到 Microsoft Exchange Server。
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.Gender = Gender.Male;
contact.DisplayName = "Frank Lin";
contact.CompanyName = "ABC Co.";
contact.JobTitle = "Executive Manager";
// 添加电话号码
contact.PhoneNumbers.Add(new PhoneNumber { Number = "123456789", Category = PhoneNumberCategory.Home });
// 联系人的相关人员
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Catherine", Category = AssociatedPersonCategory.Spouse });
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Bob", Category = AssociatedPersonCategory.Child });
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Merry", Category = AssociatedPersonCategory.Sister });
// 网址
contact.Urls.Add(new Url { Href = "www.blog.com", Category = UrlCategory.Blog });
contact.Urls.Add(new Url { Href = "www.homepage.com", Category = UrlCategory.HomePage });
// 设置联系人的电子邮件地址
contact.EmailAddresses.Add(new EmailAddress { Address = "Frank.Lin@Abc.com", DisplayName = "Frank Lin", Category = EmailAddressCategory.Email1 });
try
{
client.CreateContact(contact);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
在 C# 中从 MS Exchange Server 中删除联系人
您还可以从 MS Exchange Server 中删除联系人。要过滤联系人,您可以使用姓名、电子邮件或任何其他合适的属性。以下是使用 C# 从 Microsoft Exchange Server 中删除联系人的步骤。
- 首先,初始化 IEWSClient 对象。
- 然后,使用 IEWSClient.GetContacts(EWSClient.MailboxInfo.ContactsUri) 方法从 MS Exchange Server 获取联系人。
- 遍历联系人并过滤所需的联系人。
- 最后,使用 IEWSClient.DeleteItem(Contact.Id.EWSId, DeletionOptions.DeletePermanently) 方法删除过滤后的联系人。
以下代码示例展示了如何使用 C# 从 Microsoft Exchange Server 中删除联系人。
// 初始化 EWSClient
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
string strContactToDelete = "John Teddy";
// 获取联系人
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);
// 过滤联系人
foreach (Contact contact in contacts)
{
// 删除联系人
if (contact.DisplayName.Equals(strContactToDelete))
client.DeleteItem(contact.Id.EWSId, DeletionOptions.DeletePermanently);
}
client.Dispose();
在 C# 中更新 Exchange Server 上的联系人
您还可以使用 Aspose.Email for .NET 更新 MS Exchange Server 上的联系人。以下是执行此操作的步骤。
- 首先,使用用户名、密码和域创建并初始化 NetworkCredential 对象。
- 然后,使用邮箱 URI 和 NetworkCredential 对象初始化 IEWSClient。
- 使用 IEWSClient.GetContacts(EWSClient.MailboxInfo.ContactsUri) 方法从 Exchange Server 获取联系人。
- 之后,遍历联系人并过滤所需的联系人。
- 最后,更新联系人的属性并调用IEWSClient.UpdateContact(Contact)保存。
以下代码示例显示了如何在 C# 中更新 MS Exchange Server 上的联系人。
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);
// 初始化 EWSClient
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
// 列出所有联系人并循环访问所有联系人
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);
// 选择所需的联系人
Contact contact = contacts[0];
Console.WriteLine("Name: " + contact.DisplayName);
contact.DisplayName = "David Ch";
// 更新联系人
client.UpdateContact(contact);
获取免费 API 许可证
您可以获得 免费临时许可证 以使用 Aspose.Email for .NET,而不受评估限制。
结论
在本文中,您学习了如何使用 C# 在 Microsoft Exchange Server 上处理联系人。我们已经演示了如何在 C# 中以编程方式从 MS Exchange Server 添加、删除和更新联系人。此外,您可以浏览 文档 以了解更多关于 Aspose.Email for .NET 的信息。此外,您可以通过我们的 论坛 提问。