Los contactos son una parte esencial de cualquier cliente de correo electrónico, ya que facilitan al usuario recordar todos sus contactos, de forma similar a los contactos de su teléfono inteligente. Los contactos de Outlook almacenan mucha información sobre una persona, como su nombre, dirección, número de contacto, dirección de correo electrónico, etc. Estos contactos se pueden almacenar en formatos MSG y VCF. Es posible que se encuentre en escenarios en los que necesite crear o modificar contactos MSG o VCF mediante programación. Para eso, este artículo te enseñará cómo trabajar con contactos MSG y VCF usando C++.

API de C++ para trabajar con contactos MSG y VCF

Aspose.Email for C++ es una biblioteca nativa de C++ para crear, manipular y enviar correos electrónicos sin necesidad de instalar Microsoft Outlook. La API también admite trabajar con contactos y calendarios. Puede instalar la API a través de NuGet o descargarla directamente desde la sección Descargas.

PM> Install-Package Aspose.Email.Cpp

Crear contactos MSG y VCF

En esta sección, aprenderá cómo crear un contacto de Outlook y guardarlo en formato MSG y VCF. Los siguientes son los pasos para lograrlo.

El siguiente código de ejemplo demuestra cómo crear un contacto de Outlook y guardarlo en formato MSG y VCF usando C++.

// Cree una instancia de la clase MapiContact para representar el contacto
System::SharedPtr<MapiContact> contact = System::MakeObject<MapiContact>();

// Establecer propiedades del contacto
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");

// Agregar una 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));
}

// Guardar el contacto en formato MSG
contact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);

// Guardar el contacto en formato VCF
contact->Save(u"OutputDirectory\\MapiContact_out.vcf", Aspose::Email::Mapi::ContactSaveFormat::VCard);
Contacto generado por el código de muestra

Contacto generado por el código de muestra

Leer contactos MSG y VCF

Aspose.Email for C++ admite la lectura de contactos en formato MSG y VCF. Aquí, verá cómo abrir contactos MSG y VCF usando C++.

Leer MSG Contacto

Los siguientes son los pasos para leer un contacto MSG.

El siguiente es el código de muestra para leer un contacto de MSG usando C++.

// Cargar el archivo de contacto
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// Mostrar información de contacto
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 contacto VCF

Para leer un contacto VCF, simplemente cargue el contacto usando el método MapiContact::FromVCard. El siguiente código de ejemplo muestra cómo leer un contacto VCF usando C++.

// Cargar el archivo de contacto
System::SharedPtr<MapiContact> mapiContact = MapiContact::FromVCard(u"SourceDirectory\\Contact.vcf");

// Mostrar información de contacto
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 contactos MSG y VCF

Para modificar un contacto MSG/VCF, abra el contacto como se muestra en la sección anterior y luego cambie sus propiedades. Los siguientes son los pasos para modificar contactos.

El siguiente código de ejemplo muestra cómo modificar los contactos de MSG/VCF mediante C++.

// Cargar el archivo de contacto
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// Modificar propiedades de contacto
mapiContact->set_NameInfo(System::MakeObject<MapiContactNamePropertySet>(u"John", u"A.", u"Doe"));

// Guardar el contacto
mapiContact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Demo en vivo

Conclusión

En este artículo, ha aprendido a trabajar con contactos MSG y VCF usando C++. Específicamente, ha aprendido a crear, leer y modificar contactos usando Aspose.Email for C++. La API proporciona un montón de funciones adicionales para automatizar sus tareas relacionadas con el correo electrónico. Puede explorar la API en detalle visitando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también