Les contacts sont une partie essentielle de tout client de messagerie car ils facilitent l’utilisateur en se souvenant de tous leurs contacts, similaires aux contacts sur votre smartphone. Les contacts Outlook stockent de nombreuses informations concernant une personne, telles que son nom, son adresse, son numéro de contact, son adresse e-mail, etc. Ces contacts peuvent être stockés aux formats MSG et VCF. Vous pouvez vous retrouver dans des scénarios où vous devez créer ou modifier des contacts MSG ou VCF par programmation. Pour cela, cet article vous apprendra comment travailler avec les contacts MSG et VCF en utilisant C++.

API C++ pour travailler avec les contacts MSG et VCF

Aspose.Email for C++ est une bibliothèque C++ native pour créer, manipuler et envoyer des e-mails sans nécessiter l’installation de Microsoft Outlook. L’API prend également en charge l’utilisation des contacts et des calendriers. Vous pouvez soit installer l’API via NuGet ou la télécharger directement à partir de la section Téléchargements.

PM> Install-Package Aspose.Email.Cpp

Créer des contacts MSG et VCF

Dans cette section, vous apprendrez à créer un contact Outlook et à l’enregistrer au format MSG et VCF. Voici les étapes pour y parvenir.

L’exemple de code suivant montre comment créer un contact Outlook et l’enregistrer au format MSG et VCF à l’aide de C++.

// Créer une instance de la classe MapiContact pour représenter le contact
System::SharedPtr<MapiContact> contact = System::MakeObject<MapiContact>();

// Définir les propriétés du contact
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");

// Ajouter une photo
{
    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));
}

// Enregistrer le contact au format MSG
contact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);

// Enregistrer le contact au format VCF
contact->Save(u"OutputDirectory\\MapiContact_out.vcf", Aspose::Email::Mapi::ContactSaveFormat::VCard);
Contact généré par l'exemple de code

Contact généré par l’exemple de code

Lire les contacts MSG et VCF

Aspose.Email for C++ prend en charge la lecture des contacts aux formats MSG et VCF. Ici, vous verrez comment ouvrir des contacts MSG et VCF en utilisant C++.

Lire le contact MSG

Voici les étapes pour lire un contact MSG.

Voici un exemple de code pour lire un contact MSG à l’aide de C++.

// Charger le fichier de contact
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// Afficher les coordonnées
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());

Ouvrir le contact VCF

Pour lire un contact VCF, chargez simplement le contact en utilisant la méthode MapiContact::FromVCard. L’exemple de code suivant montre comment lire un contact VCF à l’aide de C++.

// Charger le fichier de contact
System::SharedPtr<MapiContact> mapiContact = MapiContact::FromVCard(u"SourceDirectory\\Contact.vcf");

// Afficher les coordonnées
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());

Modifier les contacts MSG et VCF

Pour modifier un contact MSG/VCF, ouvrez le contact comme illustré dans la section précédente, puis modifiez ses propriétés. Voici les étapes pour modifier les contacts.

L’exemple de code suivant montre comment modifier des contacts MSG/VCF à l’aide de C++.

// Charger le fichier de contact
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// Modifier les propriétés des contacts
mapiContact->set_NameInfo(System::MakeObject<MapiContactNamePropertySet>(u"John", u"A.", u"Doe"));

// Enregistrer le contact
mapiContact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limitation d’évaluation en demandant une licence temporaire gratuite.

Démo en direct

Conclusion

Dans cet article, vous avez appris à travailler avec des contacts MSG et VCF à l’aide de C++. Plus précisément, vous avez appris à créer, lire et modifier des contacts à l’aide de l’API Aspose.Email for C++. L’API fournit un ensemble de fonctionnalités supplémentaires pour automatiser vos tâches liées aux e-mails. Vous pouvez explorer l’API en détail en visitant la documentation officielle. Si vous avez des questions, n’hésitez pas à nous contacter sur notre forum d’assistance gratuit.

Voir également