Os contatos são uma parte essencial de qualquer cliente de e-mail, pois facilitam o usuário ao lembrar de todos os seus contatos, semelhante aos contatos do seu smartphone. Os contatos do Outlook armazenam muitas informações sobre uma pessoa, como nome, endereço, número de contato, endereço de e-mail etc. Esses contatos podem ser armazenados nos formatos MSG e VCF. Você pode se encontrar em cenários em que precisa criar ou alterar contatos MSG ou VCF programaticamente. Para isso, este artigo ensinará como trabalhar com contatos MSG e VCF usando C++.

API C++ para trabalhar com contatos MSG e VCF

Aspose.Email for C++ é uma biblioteca nativa de C++ para criar, manipular e enviar e-mails sem exigir a instalação do Microsoft Outlook. A API também suporta o trabalho com contatos e calendários. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção Downloads.

PM> Install-Package Aspose.Email.Cpp

Criar contatos MSG e VCF

Nesta seção, você aprenderá como criar um contato do Outlook e salvá-lo no formato MSG e VCF. A seguir estão os passos para conseguir isso.

O código de exemplo a seguir demonstra como criar um contato do Outlook e salvá-lo no formato MSG e VCF usando C++.

// Crie uma instância da classe MapiContact para representar o contato
System::SharedPtr<MapiContact> contact = System::MakeObject<MapiContact>();

// Definir propriedades do contato
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");

// Adicionar uma foto
{
    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));
}

// Salve o contato no formato MSG
contact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);

// Salve o contato no formato VCF
contact->Save(u"OutputDirectory\\MapiContact_out.vcf", Aspose::Email::Mapi::ContactSaveFormat::VCard);
Contato gerado pelo código de amostra

Contato gerado pelo código de amostra

Ler contatos MSG e VCF

Aspose.Email para C++ suporta a leitura de contatos nos formatos MSG e VCF. Aqui, você verá como abrir contatos MSG e VCF usando C++.

Ler contato MSG

A seguir estão as etapas para ler um contato MSG.

A seguir está o código de exemplo para ler um contato MSG usando C++.

// Carregar o arquivo de contato
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// Exibir informações de contato
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());

Abrir contato VCF

Para ler um contato VCF, basta carregar o contato usando o método MapiContact::FromVCard. O código de exemplo a seguir mostra como ler um contato VCF usando C++.

// Carregar o arquivo de contato
System::SharedPtr<MapiContact> mapiContact = MapiContact::FromVCard(u"SourceDirectory\\Contact.vcf");

// Exibir informações de contato
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());

Modificar contatos MSG e VCF

Para modificar um contato MSG/VCF, abra o contato conforme demonstrado na seção anterior e altere suas propriedades. A seguir estão as etapas para modificar contatos.

O código de exemplo a seguir demonstra como modificar contatos MSG/VCF usando C++.

// Carregar o arquivo de contato
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// Modificar propriedades do contato
mapiContact->set_NameInfo(System::MakeObject<MapiContactNamePropertySet>(u"John", u"A.", u"Doe"));

// Salve o contato
mapiContact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Demonstração ao vivo

Conclusão

Neste artigo, você aprendeu como trabalhar com contatos MSG e VCF usando C++. Especificamente, você aprendeu como criar, ler e modificar contatos usando a API Aspose.Email para C++. A API fornece vários recursos adicionais para automatizar suas tarefas relacionadas a e-mail. Você pode explorar a API em detalhes visitando a documentação oficial. Se você tiver alguma dúvida, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.

Veja também