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

Microsoft Exchange Server 是一個流行的平台,提供電子郵件、日曆、聯繫人等各種協作服務。在上一篇文章 中,我們向您展示瞭如何從 Microsoft Exchange Server 讀取電子郵件。但是,您可能還需要以編程方式處理 Exchange Server 上的聯繫人。在本文中,您將了解如何使用 C# .NET 在 Microsoft Exchange Server 上添加、刪除或更新聯繫人。

用於訪問 MS Exchange 服務器上的聯繫人的 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 服務器刪除聯繫人

您還可以從 MS Exchange Server 中刪除聯繫人。要過濾聯繫人,您可以使用姓名、電子郵件或任何其他合適的屬性。以下是使用 C# 從 Microsoft Exchange Server 中刪除聯繫人的步驟。

以下代碼示例顯示如何使用 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 服務器上的聯繫人

您還可以使用 Aspose.Email for .NET 更新 MS Exchange Server 上的聯繫人。以下是執行此操作的步驟。

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

也可以看看