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. 检查联系人是否有照片。这是通过评估 contact.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 的全面 文档 和有用的社区 论坛 将为您进一步利用其功能以有效提取联系信息提供帮助。

另请参见