連絡先は、スマートフォンの連絡先と同様に、すべての連絡先を記憶することでユーザーを支援するため、電子メールクライアントの重要な部分です。 Outlookの連絡先には、名前、住所、連絡先番号、電子メールアドレスなど、個人に関する多くの情報が保存されます。これらの連絡先は、MSGおよびVCF形式で保存できます。プログラムでMSGまたはVCFの連絡先を作成または変更する必要があるシナリオに遭遇する可能性があります。そのために、この記事では、C++を使用してMSGおよびVCFの連絡先を操作する方法を説明します。
MSGおよびVCFの連絡先を操作するためのC++API
Aspose.Email for C++は、Microsoft Outlookをインストールしなくても、電子メールを作成、操作、および送信するためのネイティブC++ライブラリです。 APIは、連絡先とカレンダーの操作もサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。
PM> Install-Package Aspose.Email.Cpp
MSGおよびVCF連絡先を作成する
このセクションでは、Outlookの連絡先を作成し、MSGおよびVCF形式で保存する方法を学習します。これを実現するための手順は次のとおりです。
- MapiContactクラスのインスタンスを作成します。
- 名前、住所、電話番号などの連絡先のプロパティを設定します。
- MapiContact->Save(System::String filePath, Aspose::Email::Mapi::ContactSaveFormat saveFormat)メソッドを使用して連絡先を保存します。
次のサンプルコードは、Outlookの連絡先を作成し、C++を使用してMSGおよびVCF形式で保存する方法を示しています。
// 連絡先を表すMapiContactクラスのインスタンスを作成します
System::SharedPtr<MapiContact> contact = System::MakeObject<MapiContact>();
// 連絡先のプロパティを設定する
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");
// 写真を追加
{
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));
}
// 連絡先をMSG形式で保存します
contact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);
// 連絡先をVCF形式で保存します
contact->Save(u"OutputDirectory\\MapiContact_out.vcf", Aspose::Email::Mapi::ContactSaveFormat::VCard);
MSGとVCFの連絡先を読む
Aspose.Email for C++は、MSG形式とVCF形式の両方で連絡先の読み取りをサポートしています。ここでは、C++を使用してMSGおよびVCFの連絡先を開く方法を説明します。
MSGの連絡先を読む
以下は、MSG連絡先を読み取るための手順です。
- MapiMessageクラスを使用して連絡先をロードします。
- MapiMessage->ToMapiMessageItem()メソッドを使用して、MapiMessageをIMapiMessageItemに変換し、MapiContactにキャストします。
- 連絡先のプロパティを読みます。
以下は、C++を使用してMSG連絡先を読み取るためのサンプルコードです。
// 連絡先ファイルをロードします
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());
// 連絡先情報を表示する
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());
VCF連絡先を開く
VCF連絡先を読み取るには、MapiContact ::FromVCardメソッドを使用して連絡先を読み込むだけです。次のサンプルコードは、C++を使用してVCF連絡先を読み取る方法を示しています。
// 連絡先ファイルをロードします
System::SharedPtr<MapiContact> mapiContact = MapiContact::FromVCard(u"SourceDirectory\\Contact.vcf");
// 連絡先情報を表示する
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());
MSGおよびVCFの連絡先を変更する
MSG / VCF接点を変更するには、前のセクションで示したように接点を開いてから、そのプロパティを変更します。連絡先を変更する手順は次のとおりです。
- MSGおよびVCFの連絡先の読み取りセクションに示されているように、MSG/VCFの連絡先をロードします。
- 連絡先の目的のプロパティを変更します。
- MapiContact->Save(System::String filePath, Aspose::Email::Mapi::ContactSaveFormat saveFormat)メソッドを使用して連絡先を保存します。
次のサンプルコードは、C++を使用してMSG/VCF連絡先を変更する方法を示しています。
// 連絡先ファイルをロードします
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(u"SourceDirectory\\Contact.msg");
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Mapi::MapiContact>(msg->ToMapiMessageItem());
// 連絡先のプロパティを変更する
mapiContact->set_NameInfo(System::MakeObject<MapiContactNamePropertySet>(u"John", u"A.", u"Doe"));
// 連絡先を保存します
mapiContact->Save(u"OutputDirectory\\MapiContact_out.msg", Aspose::Email::Mapi::ContactSaveFormat::Msg);
無料ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。
ライブデモ
結論
この記事では、C++を使用してMSGおよびVCFの連絡先を操作する方法を学習しました。具体的には、Aspose.Email for C++ APIを使用して連絡先を作成、読み取り、変更する方法を学習しました。 APIは、電子メール関連のタスクを自動化するための一連の追加機能を提供します。 公式ドキュメントにアクセスすると、APIの詳細を調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。