联系人是任何电子邮件客户端的重要组成部分,因为它们通过记住所有联系人来方便用户,类似于智能手机上的联系人。 Outlook 联系人存储了很多关于一个人的信息,例如他们的姓名、地址、联系电话、电子邮件地址等。这些联系人可以存储为 MSGVCF 格式。您可能会发现自己需要以编程方式创建或更改 MSG 或 VCF 联系人。为此,本文将教您如何使用 C++ 处理 MSG 和 VCF 联系人。

用于处理 MSG 和 VCF 联系人的 C++ API

Aspose.Email for C++ 是一个本地 C++ 库,用于创建、操作和发送电子邮件,无需安装 Microsoft Outlook。 API 还支持使用联系人和日历。您可以通过 NuGet 安装 API,也可以直接从 Downloads 部分下载。

PM> Install-Package Aspose.Email.Cpp

创建 MSG 和 VCF 联系人

在本节中,您将学习如何创建 Outlook 联系人并将其保存为 MSG 和 VCF 格式。以下是实现这一目标的步骤。

以下示例代码演示了如何使用 C++ 创建 Outlook 联系人并将其保存为 MSG 和 VCF 格式。

// 创建 MapiContact 类的实例来表示联系人
System::SharedPtr<MapiContact> contact = System::MakeObject<MapiContact>();

// 设置联系人属性
System::SharedPtr<MapiContact> contact = System::MakeObject<MapiContact>();
contact->set_NameInfo(System::MakeObject<MapiContactNamePropertySet>(u"John", u"A.", u"Doe"));
contact->set_ProfessionalInfo(System::MakeObject<MapiContactProfessionalPropertySet>(u"Awthentikz", u"Social work assistant"));
contact->get_PersonalInfo()->set_PersonalHomePage(u"aspose.com");
contact->get_PhysicalAddresses()->get_HomeAddress()->set_Address(u"Im Astenfeld 59 8580 EDELSCHROTT");
contact->get_ElectronicAddresses()->set_Email1(System::MakeObject<MapiContactElectronicAddress>(u"test", u"SMTP", u"JohnADoe@test.com"));
contact->set_Telephones(System::MakeObject<MapiContactTelephonePropertySet>(u"06605045265"));
contact->get_PersonalInfo()->set_Children(System::MakeArray<System::String>({ u"child1", u"child2", u"child3" }));
contact->set_Categories(System::MakeArray<System::String>({ u"category1", u"category2", u"category3" }));
contact->set_Mileage(u"Some test mileage");
contact->set_Billing(u"Test billing information");
contact->get_OtherFields()->set_ReminderTime(System::DateTime(2022, 1, 1, 0, 0, 55));
contact->get_OtherFields()->set_UserField1(u"ContactUserField1");
contact->get_OtherFields()->set_UserField2(u"ContactUserField2");
contact->get_OtherFields()->set_UserField3(u"ContactUserField3");
contact->get_OtherFields()->set_UserField4(u"ContactUserField4");

// 添加照片
{
    System::SharedPtr<System::IO::FileStream> fs = System::IO::File::OpenRead(u"SourceDirectory\\Desert.jpg");
    System::ArrayPtr<uint8_t> buffer = System::MakeArray<uint8_t>(fs->get_Length(), 0);
    fs->Read(buffer, 0, buffer->get_Length());
    contact->set_Photo(System::MakeObject<MapiContactPhoto>(buffer, Aspose::Email::Mapi::MapiContactPhotoImageFormat::Jpeg));
}

// 将联系人保存为 MSG 格式
contact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);

// 以 VCF 格式保存联系人
contact->Save(u"OutputDirectory\\MapiContact_out.vcf", Aspose::Email::Mapi::ContactSaveFormat::VCard);
示例代码生成的联系方式

示例代码生成的联系方式

阅读 MSG 和 VCF 联系人

Aspose.Email for C++ 支持读取 MSG 和 VCF 格式的联系人。在这里,您将看到如何使用 C++ 打开 MSG 和 VCF 联系人。

阅读味精联系方式

以下是读取 MSG 联系人的步骤。

以下是使用 C++ 读取 MSG 联系人的示例代码。

// 加载联系人文件
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// 显示联系信息
System::Console::WriteLine(mapiContact->get_NameInfo()->get_DisplayName());
System::Console::WriteLine(mapiContact1->get_PhysicalAddresses()->get_HomeAddress()->get_Address());
System::Console::WriteLine(mapiContact->get_Telephones()->get_PrimaryTelephoneNumber());
System::Console::WriteLine(mapiContact->get_ElectronicAddresses()->get_Email1());

打开 VCF 联系人

要读取 VCF 联系人,只需使用 MapiContact::FromVCard 方法加载联系人。以下示例代码显示了如何使用 C++ 读取 VCF 联系人。

// 加载联系人文件
System::SharedPtr<MapiContact> mapiContact = MapiContact::FromVCard(u"SourceDirectory\\Contact.vcf");

// 显示联系信息
System::Console::WriteLine(mapiContact->get_NameInfo()->get_DisplayName());
System::Console::WriteLine(mapiContact1->get_PhysicalAddresses()->get_HomeAddress()->get_Address());
System::Console::WriteLine(mapiContact->get_Telephones()->get_PrimaryTelephoneNumber());
System::Console::WriteLine(mapiContact->get_ElectronicAddresses()->get_Email1());

修改 MSG 和 VCF 联系人

要修改 MSG/VCF 联系人,请按照上一节中的说明打开联系人,然后更改其属性。以下是修改联系人的步骤。

以下示例代码演示了如何使用 C++ 修改 MSG/VCF 联系人。

// 加载联系人文件
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// 修改联系人属性
mapiContact->set_NameInfo(System::MakeObject<MapiContactNamePropertySet>(u"John", u"A.", u"Doe"));

// 保存联系人
mapiContact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);

获得免费许可证

您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。

现场演示

结论

在本文中,您学习了如何使用 C++ 处理 MSG 和 VCF 联系人。具体来说,您已经学习了如何使用 Aspose.Email for C++ API 创建、读取和修改联系人。该 API 提供了一系列附加功能,用于自动执行与电子邮件相关的任务。您可以通过访问 官方文档 来详细探索 API。如果您有任何问题,请随时通过我们的 免费支持论坛 联系我们。

也可以看看