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
- Crear contactos MSG y VCF
- Leer contactos MSG y VCF
- Modificar contactos MSG y VCF
- Obtenga una licencia gratis
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.
- Cree una instancia de la clase MapiContact.
- Establezca las propiedades del contacto, como el Nombre, la Dirección, el Teléfono, etc.
- Guarde el contacto usando el método MapiContact->Save(System::String filePath, Aspose::Email::Mapi::ContactSaveFormat saveFormat).
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);
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.
- Cargue el contacto usando la clase MapiMessage.
- Convierta MapiMessage a IMapiMessageItem usando el método MapiMessage->ToMapiMessageItem() y envíelo a MapiContact.
- Leer las propiedades del contacto.
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.
- Cargue el contacto MSG/VCF como se muestra en la sección Leer contactos MSG y VCF.
- Cambie las propiedades deseadas del contacto.
- Guarde el contacto usando el método MapiContact->Save(System::String filePath, Aspose::Email::Mapi::ContactSaveFormat saveFormat).
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.