Manage MS Contacts

有效的聯絡人管理對於專業人員和企業至關重要。它確保您能在需要時輕鬆找到並聯繫到合適的人。無論是安排會議、發送電子郵件還是共享文件,擁有組織良好且最新的聯絡人資料都能顯著提高您的生產力。

MSG 文件是用於存儲電子郵件消息、聯絡人和其他項目的常用格式。從 Outlook MSG 文件中編程提取聯絡人資訊可能是各種情境下的關鍵任務,例如數據遷移或自動化數據處理。本文將探討如何從 Outlook MSG 文件中載入、提取和保存聯絡人資訊。

開始使用先進的 C# API

要處理 MSG 文件,我們將使用 Aspose.Email for .NET。這是一個強大而多功能的電子郵件處理和管理庫,為開發人員提供了一整套工具和功能,以便在 .NET 應用程式中處理電子郵件消息、任務、日曆、聯絡人和各種電子郵件相關任務。因此,在我們開始之前,請確保您已在項目中安裝並引用 Aspose.Email。如果尚未這樣做,您可以 下載 它的 DLL 或從 NuGet 安裝。

從 MSG 文件載入聯絡人

要從 MSG 文件中提取聯絡人資訊,我們需要使用 Aspose.Email 的 MapiMessage.Load 方法將文件載入到 MapiMessage 對象中。您可以將聯絡人載入到 MapiMessage 中,並像正常的 MAPI 消息一樣處理它:讀取屬性、修改、保存、添加到存儲、發送。 以下代碼範例將顯示如何載入和處理 Outlook 聯絡人:

  1. 使用 MapiMessage.Load 方法載入 MSG 文件中的現有聯絡人項目。該方法讀取指定 MSG 文件的內容並創建一個表示電子郵件消息的 MapiMessage 對象。
  2. 使用 SetBodyContent 方法設置 HTML 主體內容以替換內容。
  3. 指定 BodyContentType.Html 參數,這表示提供的內容為 HTML 格式。這確保內容在電子郵件客戶端查看時正確解釋為 HTML。
  4. 使用 Save 方法將修改後的 MapiMessage 對象保存回 MSG 文件。
var msg = MapiMessage.Load("Lynna M. Dyer.msg");
msg.SetBodyContent("<!DOCTYPE html><html><body><h1>Lynna M. Dyer</h1></body></html>", BodyContentType.Html);
msg.Save("Lynna M. Dyer.msg");

提取聯絡人詳細資訊

一旦我們載入了 MSG 文件,我們可以使用 MapiContact 類提取聯絡人詳細資訊。MapiContact 提供方便的屬性以訪問特定的聯絡人字段。提供的代碼範例演示了如何從 MSG 電子郵件中提取和顯示聯絡人資訊。

  1. 首先檢查 MSG 是否為聯絡人項目。使用 SupportedType 屬性,該屬性表示 Outlook 項目的類型。
  2. 將 msg 對象轉換為 MapiContact 對象。此轉換允許訪問特定於聯絡人項目的專用屬性和方法。
  3. 擷取並顯示聯絡人資訊。在此範例中,我們訪問 DisplayNameEmailCompanyNameTitle 屬性,這些屬性分別表示聯絡人的姓名、電子郵件地址、公司名稱和職稱。您可以根據需求訪問 MapiContact 對象的其他屬性。
if (msg.SupportedType == MapiItemType.Contact)
{
    var contact = (MapiContact)msg.ToMapiMessageItem();

    Console.WriteLine(contact.NameInfo.DisplayName);
    Console.WriteLine(contact.ElectronicAddresses.Email1);
    Console.WriteLine(contact.ProfessionalInfo.CompanyName);
    Console.WriteLine(contact.ProfessionalInfo.Title);
}

保存聯絡人照片

如果 MSG 文件包含聯絡人的照片,我們可以使用以下代碼將其保存到文件中:

  1. 檢查聯絡人是否有照片。這是通過評估聯絡人.Photo 屬性是否為 null 來完成的。
  2. 如果存在照片,代碼將繼續將其保存為文件。
if (contact.Photo != null)
{
    System.IO.File.WriteAllBytes($"{contact.NameInfo.DisplayName}.{MapiContactPhotoImageFormat.Jpeg.ToString()}", contact.Photo.Data);
}

將聯絡人保存為 VCF

此外,將聯絡人從 MSG 轉換為更通用的格式如 VCARD 通常是必要的。**VCard(虛擬聯絡人文件)**是一種用於存儲聯絡人資訊的標準文件格式。以下代碼範例演示如何將由聯絡人對象表示的聯絡人項目保存為 VCard 文件:

該代碼使用聯絡人對象的 Save 方法來啟動將聯絡人保存為 VCard 的過程。

contact.Save("Lynna M. Dyer.vcf", ContactSaveFormat.VCard);

從 VCF 載入聯絡人

您也可以將現有的 VCARD 文件載入到 MapiContact 對象中。以下代碼範例演示如何從 VCard 載入聯絡人資訊並創建 MapiContact 對象:

  1. 代碼首先使用 MapiContact.FromVCard 方法從 VCard 載入聯絡人資訊。
  2. contact 變數保存這個新創建的 MapiContact 對象,可以用來編程訪問和操作聯絡人的詳細資訊。
var contact = MapiContact.FromVCard("Lynna M. Dyer.vcf");

結論

在本文中,我們探討了如何使用 Aspose.Email 編程提取 Outlook MSG 文件中的聯絡人資訊。我們逐步介紹了載入 MSG 文件、使用 MapiContact 類提取聯絡人詳細資訊以及以不同格式保存聯絡人的過程。Aspose.Email 簡化了處理 MSG 文件的過程,並提供了廣泛的功能來處理電子郵件數據。

請記得修改文件路徑並根據您的具體需求調整代碼。Aspose.Email 的全面 文檔 和有用的社群 論壇 將進一步幫助您有效利用其功能來提取聯絡人資訊。

另請參閱