Работа с контактами Outlook с использованием библиотеки разбора электронной почты C++
Создание, сохранение и чтение контактов
Как и MapiMessage, Aspose.Email позволяет вам создавать контакты Outlook. Класс MapiContact предоставляет все свойства, связанные с контактами, необходимые для создания контакта Outlook. Эта статья показывает, как создать, сохранить и прочитать контакт Outlook с использованием класса MapiContact.
Создание и сохранение контакта Outlook
Чтобы создать контакт и сохранить его на диск:
- Создайте новый объект класса MapiContact.
- Введите информацию о свойстве контакта.
- Добавьте данные фотографии (если есть).
- Сохраните контакт в формате 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"); |