Контакты являются неотъемлемой частью любого почтового клиента, поскольку они облегчают пользователю запоминание всех его контактов, подобно контактам на вашем смартфоне. Контакты Outlook хранят много информации о человеке, например его имя, адрес, контактный номер, адрес электронной почты и т. д. Эти контакты можно хранить в форматах MSG и VCF. Вы можете столкнуться с ситуациями, когда вам нужно программно создавать или изменять контакты MSG или VCF. Для этого в этой статье вы научитесь работать с контактами MSG и VCF, используя C++.
- C++ API для работы с контактами MSG и VCF
- Создание контактов MSG и VCF
- Читать контакты MSG и VCF
- Изменить контакты MSG и VCF
- Получить бесплатную лицензию
C++ API для работы с контактами MSG и VCF
Aspose.Email для C++ — это собственная библиотека C++ для создания, обработки и отправки электронных писем, не требующая установки Microsoft Outlook. API также поддерживает работу с контактами и календарями. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.
PM> Install-Package Aspose.Email.Cpp
Создание контактов MSG и VCF
В этом разделе вы узнаете, как создать контакт Outlook и сохранить его в формате MSG и VCF. Ниже приведены шаги для достижения этого.
- Создайте экземпляр класса MapiContact.
- Установите свойства контакта, такие как Имя, Адрес, Телефон и т. д.
- Сохраните контакт с помощью метода MapiContact->Save(System::String filePath, Aspose::Email::Mapi::ContactSaveFormat saveFormat).
В следующем примере кода показано, как создать контакт Outlook и сохранить его в формате MSG и VCF с помощью C++.
// Создайте экземпляр класса 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 для C++ поддерживает чтение контактов в форматах MSG и VCF. Здесь вы увидите, как открывать контакты MSG и VCF с помощью C++.
Читать контакт MSG
Ниже приведены шаги для чтения контакта MSG.
- Загрузите контакт с помощью класса MapiMessage.
- Преобразуйте MapiMessage в IMapiMessageItem с помощью метода MapiMessage->ToMapiMessageItem() и приведите его к MapiContact.
- Прочтите свойства контакта.
Ниже приведен пример кода для чтения контакта MSG с помощью C++.
// Загрузите файл контактов
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. В следующем примере кода показано, как прочитать контакт VCF с помощью C++.
// Загрузите файл контактов
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, откройте контакт, как показано в предыдущем разделе, а затем измените его свойства. Ниже приведены шаги для изменения контактов.
- Загрузите контакт MSG/VCF, как показано в разделе Чтение контактов MSG и VCF.
- Измените нужные свойства контакта.
- Сохраните контакт с помощью метода MapiContact->Save(System::String filePath, Aspose::Email::Mapi::ContactSaveFormat saveFormat).
В следующем примере кода показано, как изменить контакты MSG/VCF с помощью C++.
// Загрузите файл контактов
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 без ограничений по ознакомительной версии, запросив бесплатную временную лицензию.
Живая демонстрация
Вывод
В этой статье вы узнали, как работать с контактами MSG и VCF с помощью C++. В частности, вы узнали, как создавать, читать и изменять контакты с помощью Aspose.Email для C++ API. API предоставляет множество дополнительных функций для автоматизации ваших задач, связанных с электронной почтой. Вы можете подробно изучить API, посетив официальную документацию. Если у вас есть какие-либо вопросы, свяжитесь с нами на нашем бесплатном форуме поддержки.