Trabalhando com Contatos do Outlook usando a Biblioteca C++ Email Parser

Criando, Salvando e Lendo Contatos

Assim como o MapiMessage, a Aspose.Email permite criar contatos do Outlook. A classe MapiContact fornece todas as propriedades relacionadas a contatos necessárias para criar um contato do Outlook. Este artigo mostra como criar, salvar e ler um contato do Outlook usando a classe MapiContact.

Criar e Salvar Contato do Outlook

Para criar um contato e salvá-lo no disco:

  1. Instanciar um novo objeto da classe MapiContact.
  2. Inserir informações das propriedades do contato.
  3. Adicionar dados da foto (se houver).
  4. Salvar o contato no formato MSG ou VCard.

O seguinte trecho de código mostra como criar e salvar um contato do Outlook com a Biblioteca ou API C++ Email Parser.

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);

Lendo um MapiContact

A classe MapiContact pode ser usada para carregar contatos do Outlook nos formatos MSG e VCard. O seguinte trecho de código mostra como carregar contatos do Outlook salvos como MSG e VCF em um MapiContact.

Carregando um Contato de MSG

O seguinte trecho de código mostra como carregar um contato de 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());

Carregando um Contato de VCard

O seguinte trecho de código mostra como carregar um contato de 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");