Outlook 連絡先管理

この記事では、スタンドアロン Outlook を取り上げます MapiContact MSG または vCard (VCF) として保存されたアイテム。フォーマットに依存しない VCardContact vCard ファイルを直接読み書きするクラスについては、こちらをご覧ください vCard(VCF)ファイルの操作. PST 内に連絡先を保存および読み取るには、こちらをご覧ください PST ファイル内の連絡先の管理.

MapiMessage と同様に、Aspose.Email では Outlook 連絡先を作成できます。 MapiContact このクラスは Outlook 連絡先を作成するために必要なすべての連絡先関連プロパティを提供します。本記事では、Outlook 連絡先を作成、保存、読み取る方法を示します: MapiContact クラス。

Outlook 連絡先の作成と保存

連絡先を作成してディスクに保存する手順:

  1. 新しいオブジェクトをインスタンス化します。 MapiContact クラス。
  2. 連絡先のプロパティ情報を入力します。
  3. 写真データを追加します(ある場合)。
  4. 連絡先を MSG または VCard 形式で保存します。

以下のコードスニペットは、Outlook 連絡先を作成し保存する方法を示しています。

// The path to the File directory.
string dataDir = RunExamples.GetDataDir_Outlook();

MapiContact contact = new MapiContact();
contact.NameInfo = new MapiContactNamePropertySet("Bertha", "A.", "Buell");
contact.ProfessionalInfo = new MapiContactProfessionalPropertySet("Awthentikz", "Social work assistant");
contact.PersonalInfo.PersonalHomePage = "B2BTies.com";
contact.PhysicalAddresses.WorkAddress.Address = "Im Astenfeld 59 8580 EDELSCHROTT";
contact.ElectronicAddresses.Email1 = new MapiContactElectronicAddress("Experwas", "SMTP", "BerthaABuell@armyspy.com");
contact.Telephones = new MapiContactTelephonePropertySet("06605045265");
contact.PersonalInfo.Children = new string[] { "child1", "child2", "child3" };
contact.Categories = new string[] { "category1", "category2", "category3" };
contact.Mileage = "Some test mileage";
contact.Billing = "Test billing information";
contact.OtherFields.Journal = true;
contact.OtherFields.Private = true;
contact.OtherFields.ReminderTime = new DateTime(2014, 1, 1, 0, 0, 55);
contact.OtherFields.ReminderTopic = "Test topic";
contact.OtherFields.UserField1 = "ContactUserField1";
contact.OtherFields.UserField2 = "ContactUserField2";
contact.OtherFields.UserField3 = "ContactUserField3";
contact.OtherFields.UserField4 = "ContactUserField4";

// Add a photo
using (FileStream fs = File.OpenRead(dataDir + "Desert.jpg"))
{
    byte[] buffer = new byte[fs.Length];
    fs.Read(buffer, 0, buffer.Length);
    contact.Photo = new MapiContactPhoto(buffer,
        MapiContactPhotoImageFormat.Jpeg);
}
// Save the Contact in MSG format
contact.Save(dataDir + "MapiContact_out.msg",ContactSaveFormat.Msg);

// Save the Contact in VCF format
contact.Save(dataDir + "MapiContact_out.vcf", ContactSaveFormat.VCard);

MAPI 配布リストを VCF ファイルに保存

以下のコードサンプルは、配布リストをマルチ連絡先 VCF ファイルに保存する方法を示しています:

// convert the `msg` object to a `MapiDistributionList` 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 クラス:

以下のコードサンプルは、この機能の使用方法を示しています:

// Convert a multi-contact VCF file to a MapiDistributionList
MapiDistributionList dlist = MapiDistributionList.FromVCF(fileName);

連絡先を VCF 形式で保存

バージョン 3 の VCF 形式で連絡先を保存するには、以下を使用します。 VCardVersion 列挙型は VCardSaveOptions.Version プロパティです。以下のサンプルコードは、使用方法を示しています。 VCardVersion 列挙型にロードし、連絡先 VCF バージョン 3 形式で保存する方法を示します:

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 から連絡先をロードする方法を示しています。

MapiMessage msg = MapiMessage.FromFile(dataDir + "Contact.msg");
MapiContact contact = (MapiContact)msg.ToMapiMessageItem();

Console.WriteLine(contact.NameInfo.DisplayName);

VCard から連絡先をロード

次のコード スニペットは、vCard ファイルを MapiContact 使用して FromVCard メソッド。vCard をロードするには VCardContact ではなく、こちらをご参照ください vCard(VCF)ファイルの操作.

MapiContact contact = MapiContact.FromVCard(dataDir + "Contact.vcf");

カスタムオプションで 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 ファイルのエンコーディングは PreferredEncoding プロパティ( VCardLoadOptions クラス。次のコード スニペットは、指定したエンコーディングで VCard から連絡先をロードする方法を示します。

var loadOptions = new VCardLoadOptions { PreferredEncoding = Encoding.UTF8 };
var contactReadFromFile = MapiContact.FromVCard(dataDir + @"Contact.vcf", loadOptions);

拡張フィールド付きで VCard ファイルを保存

この UseExtensions このプロパティは、vCard ファイルを保存する際に拡張フィールドを使用できるかどうかを制御します。true(デフォルト)に設定すると、拡張が許可され、カスタムフィールドや追加の連絡先情報との互換性が確保されます。

次のコード例は、連絡先を保存する際に拡張フィールドを無効にする方法を示しています:

var contact = MapiContact.FromVCard("contact.vcf");

var options = new VCardSaveOptions
{
    UseExtensions = false
};

contact.Save("contact_out.vcf", options);

vCard ファイルを直接操作する

フォーマットに依存しない vCard (VCF) ファイルの読み書き VCardContact クラス — 単一または複数の連絡先のロード、テキスト エンコーディングの選択、特定の vCard バージョンでの保存、非同期ロード — は専用記事で取り上げられています: vCard(VCF)ファイルの操作.

連絡先情報を 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);

関連項目