Kontakty jsou nezbytnou součástí každého e-mailového klienta, protože usnadňují uživateli zapamatování všech jeho kontaktů, podobně jako kontakty na vašem smartphonu. Kontakty aplikace Outlook ukládají mnoho informací o osobě, jako je její jméno, adresa, kontaktní číslo, e-mailová adresa atd. Tyto kontakty lze uložit ve formátech MSG a VCF. Můžete se ocitnout ve scénářích, kdy potřebujete vytvořit nebo upravit kontakty MSG nebo VCF programově. Tento článek vás proto naučí, jak pracovat s kontakty MSG a VCF pomocí C++.

C++ API pro práci s MSG a VCF kontakty

Aspose.Email for C++ je nativní knihovna C++ pro vytváření, manipulaci a odesílání e-mailů bez nutnosti instalace Microsoft Outlook. API také podporuje práci s kontakty a kalendáři. Rozhraní API můžete nainstalovat buď prostřednictvím NuGet, nebo si jej stáhnout přímo ze sekce Downloads.

PM> Install-Package Aspose.Email.Cpp

Vytvořte kontakty MSG a VCF

V této části se dozvíte, jak vytvořit kontakt aplikace Outlook a uložit jej ve formátu MSG a VCF. Níže jsou uvedeny kroky, jak toho dosáhnout.

Následující ukázkový kód ukazuje, jak vytvořit kontakt aplikace Outlook a uložit jej ve formátu MSG a VCF pomocí C++.

// Vytvořte instanci třídy MapiContact, která bude reprezentovat kontakt
System::SharedPtr<MapiContact> contact = System::MakeObject<MapiContact>();

// Nastavte vlastnosti kontaktu
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");

// Přidat fotku
{
    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));
}

// Uložte kontakt ve formátu MSG
contact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);

// Uložte kontakt ve formátu VCF
contact->Save(u"OutputDirectory\\MapiContact_out.vcf", Aspose::Email::Mapi::ContactSaveFormat::VCard);
Kontakt vygenerovaný ukázkovým kódem

Kontakt vygenerovaný ukázkovým kódem

Přečtěte si kontakty MSG a VCF

Aspose.Email for C++ podporuje čtení kontaktů ve formátech MSG i VCF. Zde uvidíte, jak otevřít kontakty MSG a VCF pomocí C++.

Přečtěte si MSG Contact

Následují kroky ke čtení kontaktu MSG.

Následuje ukázkový kód pro čtení kontaktu MSG pomocí C++.

// Načtěte soubor kontaktu
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// Zobrazit kontaktní informace
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());

Otevřete kontakt VCF

Chcete-li číst kontakt VCF, jednoduše načtěte kontakt pomocí metody MapiContact::FromVCard. Následující ukázkový kód ukazuje, jak číst kontakt VCF pomocí C++.

// Načtěte soubor kontaktu
System::SharedPtr<MapiContact> mapiContact = MapiContact::FromVCard(u"SourceDirectory\\Contact.vcf");

// Zobrazit kontaktní informace
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());

Upravte kontakty MSG a VCF

Chcete-li upravit kontakt MSG/VCF, otevřete kontakt, jak je ukázáno v předchozí části, a poté změňte jeho vlastnosti. Následují kroky pro úpravu kontaktů.

Následující ukázkový kód ukazuje, jak upravit kontakty MSG/VCF pomocí C++.

// Načtěte soubor kontaktu
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// Upravit vlastnosti kontaktu
mapiContact->set_NameInfo(System::MakeObject<MapiContactNamePropertySet>(u"John", u"A.", u"Doe"));

// Uložte kontakt
mapiContact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);

Získejte bezplatnou licenci

Rozhraní API můžete vyzkoušet bez omezení hodnocení tím, že požádáte o bezplatnou dočasnou licenci.

Živá ukázka

Závěr

V tomto článku jste se naučili pracovat s kontakty MSG a VCF pomocí C++. Konkrétně jste se naučili vytvářet, číst a upravovat kontakty pomocí Aspose.Email for C++ API. Rozhraní API poskytuje řadu dalších funkcí pro automatizaci vašich úkolů souvisejících s e-mailem. Rozhraní API můžete podrobně prozkoumat na oficiální dokumentaci. Pokud máte nějaké dotazy, neváhejte nás kontaktovat na našem bezplatném fóru podpory.

Viz také