Работа с контактами Outlook с использованием библиотеки разбора электронной почты C++

Создание, сохранение и чтение контактов

Как и MapiMessage, Aspose.Email позволяет вам создавать контакты Outlook. Класс MapiContact предоставляет все свойства, связанные с контактами, необходимые для создания контакта Outlook. Эта статья показывает, как создать, сохранить и прочитать контакт Outlook с использованием класса MapiContact.

Создание и сохранение контакта Outlook

Чтобы создать контакт и сохранить его на диск:

  1. Создайте новый объект класса MapiContact.
  2. Введите информацию о свойстве контакта.
  3. Добавьте данные фотографии (если есть).
  4. Сохраните контакт в формате MSG или VCard.

Следующий фрагмент кода показывает, как создать и сохранить контакт Outlook с помощью библиотеки или API разбора электронной почты C++.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
// The path to the File directory.
System::String dataDir = RunExamples::GetDataDir_Outlook();
System::SharedPtr<MapiContact> contact = System::MakeObject<MapiContact>();
contact->set_NameInfo(System::MakeObject<MapiContactNamePropertySet>(L"Bertha", L"A.", L"Buell"));
contact->set_ProfessionalInfo(System::MakeObject<MapiContactProfessionalPropertySet>(L"Awthentikz", L"Social work assistant"));
contact->get_PersonalInfo()->set_PersonalHomePage(L"B2BTies.com");
contact->get_PhysicalAddresses()->get_WorkAddress()->set_Address(L"Im Astenfeld 59 8580 EDELSCHROTT");
contact->get_ElectronicAddresses()->set_Email1(System::MakeObject<MapiContactElectronicAddress>(L"Experwas", L"SMTP", L"BerthaABuell@armyspy.com"));
contact->set_Telephones(System::MakeObject<MapiContactTelephonePropertySet>(L"06605045265"));
contact->get_PersonalInfo()->set_Children(System::MakeArray<System::String>({L"child1", L"child2", L"child3"}));
contact->set_Categories(System::MakeArray<System::String>({L"category1", L"category2", L"category3"}));
contact->set_Mileage(L"Some test mileage");
contact->set_Billing(L"Test billing information");
contact->get_OtherFields()->set_Journal(true);
contact->get_OtherFields()->set_Private(true);
contact->get_OtherFields()->set_ReminderTime(System::DateTime(2014, 1, 1, 0, 0, 55));
contact->get_OtherFields()->set_ReminderTopic(L"Test topic");
contact->get_OtherFields()->set_UserField1(L"ContactUserField1");
contact->get_OtherFields()->set_UserField2(L"ContactUserField2");
contact->get_OtherFields()->set_UserField3(L"ContactUserField3");
contact->get_OtherFields()->set_UserField4(L"ContactUserField4");
// Add a photo
{
System::SharedPtr<System::IO::FileStream> fs = System::IO::File::OpenRead(dataDir + L"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::Outlook::MapiContactPhotoImageFormat::Jpeg));
}
// Save the Contact in MSG format
contact->Save(dataDir + L"MapiContact_out.msg", Aspose::Email::Outlook::ContactSaveFormat::Msg);
// Save the Contact in VCF format
contact->Save(dataDir + L"MapiContact_out.vcf", Aspose::Email::Outlook::ContactSaveFormat::VCard);

Чтение MapiContact

Класс MapiContact может быть использован для загрузки контактов как в формате MSG, так и в формате VCard. Следующий фрагмент кода показывает, как загрузить контакты Outlook, сохраненные в формате MSG и VCF, в MapiContact.

Загрузка контакта из MSG

Следующий фрагмент кода показывает, как загрузить контакт из MSG.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(dataDir + L"Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Outlook::MapiContact>(msg->ToMapiMessageItem());

Загрузка контакта из VCard

Следующий фрагмент кода показывает, как загрузить контакт из VCard.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
auto vcfTest = VCardContact::Load(dataDir + L"Contact.vcf");
System::SharedPtr<MapiContact> contact = MapiContact::FromVCard(dataDir + L"Contact.vcf");