Outlook 連絡先管理
MapiMessage と同様に、Aspose.Email では Outlook 連絡先を作成できます。 MapiContact このクラスは Outlook 連絡先を作成するために必要なすべての連絡先関連プロパティを提供します。本記事では、Outlook 連絡先を作成、保存、読み取る方法を示します: MapiContact クラス。
Outlook 連絡先の作成と保存
連絡先を作成してディスクに保存する手順:
- 新しいオブジェクトをインスタンス化します。 MapiContact クラス。
- 連絡先のプロパティ情報を入力します。
- 写真データを追加します(ある場合)。
- 連絡先を MSG または VCard 形式で保存します。
以下のコードスニペットは、Outlook 連絡先を作成し保存する方法を示しています。
MAPI 配布リストを VCF ファイルに保存
以下のコードサンプルは、配布リストをマルチ連絡先 VCF ファイルに保存する方法を示しています:
// convert the `msg` object to a `MapiMessage` object
var dlist = (MapiDistributionList)msg.ToMapiMessageItem();
//save the distribution list
var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
dlist.Save("distribution_list.vcf", options);
マルチ連絡先 VCF ファイルを MapiDistributionList に変換
Aspose.Email は、マルチ連絡先 VCF ファイルを変換することをサポートしています: MapiDistributionList オブジェクトで、複数の連絡先を直接アプリケーションに管理・インポートしやすくなります。この機能は、以下のクラスの静的メソッドを介して利用できます: MapiDistributionList クラス:
- static MapiDistributionList FromVCF(string filePath)
- static MapiDistributionList FromVCF(Stream stream)
以下のコードサンプルは、この機能の使用方法を示しています:
// Convert a multi-contact VCF file to a MapiDistributionList
MapiDistributionList dlist = MapiDistributionList.FromVCF(fileName);
連絡先を VCF 形式で保存
バージョン 3 の VCF 形式で連絡先を保存するには、以下を使用します。 VCardVersion 設定するための列挙型です。 VCardSaveOptions.Version プロパティです。以下のサンプルコードは、使用方法を示しています。 VCardVersion 連絡先を VCF バージョン 3 形式で保存する enumerable:
var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
options.Version = VCardVersion.V30;
dlist.Save("distribution_list.vcf", options);
MAPI 連絡先の読み取り
この MapiContact このクラスは Outlook MSG と VCard 形式の連絡先の両方をロードするために使用できます。以下のコードスニペットは、MSG および VCF として保存された Outlook 連絡先をロードする方法を示しています。 MapiContact.
MSG ファイルから連絡先をロード
以下のコードスニペットは、MSG から連絡先をロードする方法を示しています。
VCard から連絡先をロード
以下のコードスニペットは、VCard から連絡先をロードする方法を示しています。
カスタムオプションで vCard から MAPI 連絡先をロード
.vcf ファイルを MAPI 連絡先に変換する際の柔軟性を高めるため、Aspose.Email for .NET はオーバーロードを提供します MapiContact.FromVCard(string filePath, VCardLoadOptions options) 受け取るメソッド: VCardLoadOptions オブジェクトです。特に異なる vCard フォーマット、エンコーディング、または高度な解析シナリオで vCard ファイルの解釈を改善した制御が提供されます。
以下のコードサンプルは、.vcf 連絡先ファイルをオブジェクトにロードする方法を示しています: MapiContact オブジェクトは、受け取るオーバーロードを使用して VCardLoadOptionsロードされた連絡先は、PST ファイル、MSG エクスポート、またはその他の Outlook 互換形式で使用できます。
var mapiContact = MapiContact.FromVCard("contact.vcf", new VCardLoadOptions());
Console.WriteLine(mapiContact.NameInfo.DisplayName);
指定エンコーディングで VCard から連絡先をロード
以下のコードスニペットは、指定されたエンコーディングで VCard から連絡先をロードする方法を示しています。
指定エンコーディングで VCard 連絡先項目を保存
VCard ファイルを操作する際の保存動作を次のものを使用してカスタマイズします: VCardSaveOptions クラス。 PreferredTextEncoding このクラスのプロパティは、VCard 連絡先項目を保存する際に使用するエンコーディングを指定します。
以下のコードサンプルは、このプロパティをプロジェクトで実装する方法を示しています。
var cont = VCardContact.Load(fileName, Encoding.UTF8);
var opt = new VCardSaveOptions();
opt.PreferredTextEncoding = Encoding.UTF8;
cont.Save("my.vcard", opt);
拡張フィールド付きで VCard ファイルを保存
この UseExtensions このプロパティは、vCard ファイルを保存する際に拡張フィールドを使用できるかどうかを制御します。true(デフォルト)に設定すると、拡張が許可され、カスタムフィールドや追加の連絡先情報との互換性が確保されます。
VCard 形式で複数の連絡先を読み取る
当社のライブラリは VCard からすべての連絡先リストを取得できるようにします。以下のメソッドと手順で実行できます:
// Checks whether VCard source stream contains multiple contacts.
VCardContact.IsMultiContacts(Stream stream)
// Loads list of all contacts from VCard file.
VCardContact.LoadAsMultiple(string filePath, Encoding encoding)
// Loads list of all contacts from VCard stream.
VCardContact.LoadAsMultiple(Stream stream, Encoding encoding)
以下のコードスニペットは、複数の連絡先を含む VCard ファイルを処理する方法を示しています:
using (FileStream stream = new FileStream("test.vcf", FileMode.Open, FileAccess.Read))
{
if(VCardContact.IsMultiContacts(stream))
{
List<VCardContact> contacts = VCardContact.LoadAsMultiple(stream, Encoding.UTF8);
}
}
vCard 連絡先を非同期でロード
この VCardContact Aspose.Email for .NET のクラスは vCard ファイルの非同期ロードをサポートします。これにより、アプリケーションは .vcf ファイルやストリームから単一または複数の連絡先をメインスレッドをブロックせずに効率的に読み取る ことができ、大規模な連絡先リストを扱う最新のデスクトップ、ウェブ、モバイルアプリケーションに最適です。このクラスの以下のメソッドでタスクを実行できます:
-
LoadAsync -
LoadAsMultipleAsync
以下のコードサンプルは、VCardContact.LoadAsMultipleAsync を使用して .vcf ファイルから 複数の vCard 連絡先を非同期でロード する方法を示しています。ロードされた連絡先はループで処理され、各連絡先の表示名がコンソールに出力されます。非同期アプローチにより、大きなファイルを読み込む際でもアプリケーションが応答し続けます。
var contacts = await VCardContact.LoadAsMultipleAsync("contacts.vcf", new VCardLoadOptions(), CancellationToken.None);
foreach (var contact in contacts)
{
Console.WriteLine(contact.IdentificationInfo.DisplayName);
}
連絡先情報を MHTML にレンダリング
Outlook の連絡先は Aspose.Email API を使用して MHTML に変換できます。この例では、VCard をロードして MapiContact そして、次に以下を使用して MHTML に変換します。 MailMessage API。
//Load VCF Contact and convert to MailMessage for rendering to MHTML
var contact = MapiContact.FromVCard("Contact.vcf");
MemoryStream ms = new MemoryStream();
contact.Save(ms, ContactSaveFormat.Msg);
ms.Position = 0;
MapiMessage msg = MapiMessage.Load(ms, new MsgLoadOptions());
MailConversionOptions op = new MailConversionOptions();
MailMessage eml = msg.ToMailMessage(op);
//Prepare the MHT format options
MhtSaveOptions mhtSaveOptions = new MhtSaveOptions();
mhtSaveOptions.CheckBodyContentEncoding = true;
mhtSaveOptions.PreserveOriginalBoundaries = true;
MhtFormatOptions formatOp = MhtFormatOptions.WriteHeader | MhtFormatOptions.RenderVCardInfo;
mhtSaveOptions.RenderedContactFields = ContactFieldsSet.NameInfo | ContactFieldsSet.PersonalInfo | ContactFieldsSet.Telephones | ContactFieldsSet.Events;
mhtSaveOptions.MhtFormatOptions = formatOp;
eml.Save("ContactMhtml_out.mhtml", mhtSaveOptions);