Kontakter är en viktig del av alla e-postklienter eftersom de underlättar användaren genom att komma ihåg alla deras kontakter, liknande kontakterna på din smartphone. Outlook-kontakter lagrar mycket information om en person, såsom deras namn, adress, kontaktnummer, e-postadress, etc. Dessa kontakter kan lagras i formaten MSG och VCF. Du kan hamna i scenarier där du behöver skapa eller ändra MSG- eller VCF-kontakter programmatiskt. För det kommer den här artikeln att lära dig hur du arbetar med MSG- och VCF-kontakter med C++.

C++ API för att arbeta med MSG- och VCF-kontakter

Aspose.Email for C++ är ett inbyggt C++-bibliotek för att skapa, manipulera och skicka e-postmeddelanden utan att Microsoft Outlook behöver installeras. API:et stöder även arbete med kontakter och kalendrar. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.

PM> Install-Package Aspose.Email.Cpp

Skapa MSG- och VCF-kontakter

I det här avsnittet kommer du att lära dig hur du skapar en Outlook-kontakt och sparar den i MSG- och VCF-format. Följande är stegen för att uppnå det.

Följande exempelkod visar hur du skapar en Outlook-kontakt och sparar den i MSG- och VCF-format med C++.

// Skapa en instans av MapiContact-klassen för att representera kontakten
System::SharedPtr<MapiContact> contact = System::MakeObject<MapiContact>();

// Ställ in egenskaper för kontakten
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");

// Lägg till ett 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));
}

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

// Spara kontakten i VCF-format
contact->Save(u"OutputDirectory\\MapiContact_out.vcf", Aspose::Email::Mapi::ContactSaveFormat::VCard);
Kontakt genererad av exempelkoden

Kontakt genererad av exempelkoden

Läs MSG- och VCF-kontakter

Aspose.Email för C++ stöder läsning av kontakter i både MSG- och VCF-format. Här kommer du att se hur du öppnar MSG- och VCF-kontakter med C++.

Läs MSG Contact

Följande är stegen för att läsa en MSG-kontakt.

Följande är exempelkoden för att läsa en MSG-kontakt med C++.

// Ladda kontaktfilen
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// Visa kontaktinformation
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());

Öppna VCF-kontakt

För att läsa en VCF-kontakt, ladda helt enkelt kontakten med metoden MapiContact::FromVCard. Följande exempelkod visar hur man läser en VCF-kontakt med C++.

// Ladda kontaktfilen
System::SharedPtr<MapiContact> mapiContact = MapiContact::FromVCard(u"SourceDirectory\\Contact.vcf");

// Visa kontaktinformation
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());

Ändra MSG- och VCF-kontakter

För att modifiera en MSG/VCF-kontakt, öppna kontakten som visas i föregående avsnitt och ändra sedan dess egenskaper. Följande är stegen för att ändra kontakter.

Följande exempelkod visar hur man modifierar MSG/VCF-kontakter med C++.

// Ladda kontaktfilen
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());

// Ändra kontaktegenskaper
mapiContact->set_NameInfo(System::MakeObject<MapiContactNamePropertySet>(u"John", u"A.", u"Doe"));

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

Skaffa en gratis licens

Du kan prova API:et utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.

Live-demo

Slutsats

I den här artikeln har du lärt dig hur du arbetar med MSG- och VCF-kontakter med C++. Specifikt har du lärt dig hur du skapar, läser och ändrar kontakter med Aspose.Email för C++ API. API:et tillhandahåller ett gäng ytterligare funktioner för att automatisera dina e-postrelaterade uppgifter. Du kan utforska API:et i detalj genom att besöka den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.

Se även