聯繫人是任何電子郵件客戶端的重要組成部分,因為它們通過記住所有聯繫人來方便用戶,類似於智能手機上的聯繫人。 Outlook 聯繫人存儲了很多關於一個人的信息,例如他們的姓名、地址、聯繫電話、電子郵件地址等。這些聯繫人可以以 MSGVCF 格式存儲。您可能會發現自己處於需要以編程方式創建或更改 MSG 或 VCF 聯繫人的場景中。為此,本文將教您如何使用 C++ 處理 MSG 和 VCF 聯繫人。

用於處理 MSG 和 VCF 聯繫人的 C++ API

Aspose.Email for C++ 是一個原生的 C++ 庫,用於創建、操作和發送電子郵件,無需安裝 Microsoft Outlook。 API 還支持使用聯繫人和日曆。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。

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 聯繫人

以下是讀取 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。如果您有任何疑問,請隨時通過我們的 免費支持論壇 與我們聯繫。

也可以看看