Exchange で EWS を使用してアイテムをエクスポートおよびインポートする

Exchange の EWS マネージ API または EWS を使用して、予定、メール、連絡先、タスクなどのメールボックス アイテムをエクスポートおよびインポートする方法について説明します。

Exchange は重要な情報の宝庫で、メール、連絡先、タスク、予定表は組織の機能の中核をなします。 EWS を使用すると、3 つの異なるアプローチで中核となるアイテムの種類をエクスポートおよびインポートできます。

  • Exchange アイテムの種類。 アイテムを他のシステムおよびファイルとの間でインポートおよびエクスポートする場合には、このアプローチの使用をお勧めします。

  • アイテム レベルの機能 (EWS のみ)。 1 つの Exchange サーバーまたはメールボックスからエクスポートまたはコピーし、別のものにインポートする場合にはこのシナリオをお勧めします。

  • iCalendar や vCard などの一般的な標準ファイル形式の MIME ストリーム。 プロパティ セットは限定的ですし MIME への変換はコストがかかるため、少量のデータのインポートまたはエクスポートの場合にのみこのアプローチをお勧めします。

重要

EWS は、メールボックスのバックアップと復元用には設計されていません。 データベースをバックアップして復元するには、「バックアップと復元 API」をご覧ください。 また、TechNet の「バックアップ、復元、および障害回復」もご覧ください。

表 1. 連絡先、電子メール、予定表アイテムのエクスポートとインポート

タスク EWS マネージ API メソッド EWS 操作 メモ
連絡先、メール、タスク、予定表アイテムのコピーをプロパティ セットを指定してエクスポートする。
Contact.Bind
EmailMessage.Bind
Appointment.Bind
Task.Bind
GetItem
メールボックス アイテムを Exchange 以外の別のシステムまたはファイル (vCard ファイル タイプと iCal ファイル タイプを含む) にエクスポートする場合には、このオプションをお勧めします。
エクスポートされたプロパティ セットを制御できるため、また Exchange サーバーのパフォーマンスが良いため、通常はこれが最適なオプションです。

メールボックス アイテムのプロパティ セットによっては、およびアイテムに設定されているスキーマ化されていないプロパティ ID (拡張プロパティ) すべてにアプリケーションが対応しているかどうかによっては、このオプションでは、完全な再現性を持つコピーを生成できない場合があります。

これらのメソッドと操作は、アイテムのスキーマ化されたプロパティ セットと、要求された拡張プロパティを提供します。
Bind メソッドまたは GetItem 操作でアイテムを完全な再現性を持つエクスポートを行えるのは、アイテムに設定されている拡張プロパティが分かっている場合のみです。
すべての既知の拡張プロパティを要求して、完全な再現性を有効にできます。

ヒント: EWS マネージ API のトレース機能を使用すると、エクスポートされたアイテムの XML 表現を取得できます。 詳しくは、「カスタム形式にアイテムをエクスポートする」をご覧ください。
連絡先、メール、タスク、予定表アイテムのコピーをプロパティ セットを指定してインポートする。
Contact.Save
EmailMessage.Save
Appointment.Save
Task.Save
CreateItem
Exchange にメールボックス アイテムをインポートする場合、このオプションをお勧めします。
インポートされたアイテムの状態を維持するためにいくつかのアイテムの種類で特別なプロパティを設定しなければならない場合があります。
一部のプロパティは Exchange によって設定されクライアントでは設定されないので、必ずしも完全に再現性のあるインポートとはなりません。

たとえば、出席者が含まれる会議をメールボックスにインポートすることはできません。Exchange が開催者と出席者との間に関係を設定しているためです。
この関係は、会議出席依頼を送信する開催者、およびそれを受け取って応答する出席者だけが設定できます。

Exchange の Appointment オブジェクトには複雑な関係を設定することができます。
出席者がいる予定 (会議) には、会議の開催者と出席者を結び付ける設定が含まれています。
これらの設定は、予定をエクスポートおよびインポートするときに維持されません。
会議の開催者/出席者の関係をプログラムによって予定に直接再設定することはできません。
こうした関係を再設定するためのオプションとしては、インポート後に処理後のタスクを実行し、開催者が会議を再送信し、出席者がそれらの会議を承諾するようにします。
Exchange の偽装を使用すると、開催者と出席者の両方に代わって呼び出しを行えます。
会議がメールボックス内の他の会議に誤って関連付けられるという事態を避けるには、Appointment オブジェクトの UID プロパティを変更してからインポートする必要があります。
連絡先、メール、タスク、予定表アイテムのコピーを完全な再現性でエクスポートする。
適用できません
ExportItems
これは、Exchange メールボックスに再びインポートする予定のメールボックス アイテムをエクスポートするための最適なオプションです。
このオプションを使用して、メールボックス間でアイテムをコピーすることもできます。

ExportItems 操作では、メールボックス間での情報の移動に使用できるアイテムを表す非透過ストリームが提供されます。
ExportItemsGetItem 操作と併用し、別のシステムでアイテムを検索するためのインデックスを作成できます。
エクスポート ストリームを変更することはできません。
詳しくは、「完全な再現性でアイテムをエクスポートする」をご覧ください。
連絡先、メール、タスク、予定表アイテムのコピーを完全な再現性でインポートする。
適用できません
UploadItems
これは、ExportItems 操作でエクスポートされたアイテムをインポートするための唯一のオプションです。
一般的なファイルの種類の連絡先、メール、予定表アイテムのコピーを MIME ストリームとしてエクスポートする。
Contact.Bind
EmailMessage.Bind
Appointment.Bind
GetItem
MimeContent プロパティを使用して、アイテムの MIME ストリーム表現を取得できます。

このストリームは、アイテムのすべてのプロパティの基本的なすべてのサブセットを提供します。
1 回限りの操作ではこの MIME ストリームだけを使用するのがベスト プラクティスです。
大規模で頻繁なアイテムのインポート/エクスポートでは MIME を使用しないでください。Exchange は MIME コンテンツの変換を実行するので、パフォーマンスに影響を及ぼす可能性があるためです。

Contact MIME ストリームは、vCard (.vcf) ファイルです。
連絡先に設定されているプロパティ セットによっては、完全な再現性のコピーが生成されない可能性があります。
vCard MIME ストリームを使用して、連絡先をインポートすることはできません。
詳しくは、「vCard ファイルに連絡先をエクスポートする」をご覧ください。

EmailMessage MIME ストリームは .eml ファイルです。
.eml 形式は、Outlook およびその他のメール クライアントが識別できるので便利です。
また、この MIME ストリームを使用して .mht ファイルを作成できますが、多くのブラウザーがこのファイルの種類を使用できるので便利です。
EWS では、メールを .msg ファイルにエクスポートするための .msg ファイル ストリームは提供されません。
.msg ファイルをエクスポートするには、EmailMessage.Bind メソッドの結果または GetItem 操作の呼び出し結果から .MSG ファイルを構築するか、サード パーティ製 API を使用して EWS を呼び出した結果から .msg ファイルを構築します。
詳しくは、「.eml ファイルとしてメールをエクスポートする」をご覧ください。

Appointment MIME ストリームは iCal (.ics) ファイルです。
.ics 形式は、Outlook およびその他のメール クライアントが識別できるものなので便利です。
この MIME ストリームでは、出席者情報が提供されないため、会議をエクスポートするためにこのオプションを使用することはできません。
添付ファイルおよびその他のプロパティは、この MIME ストリームに含まれない可能性があります。
iCal 形式を、Appointment オブジェクトまたは GetItem 操作にで返される XML から構築することを検討してください。
この方法を使用すると、iCal ファイルの拡張プロパティ (“X-‘ プロパティ) を含め、より多くの Exchange プロパティをキャプチャできます。
また、XML 形式の予定をエクスポートすることもできます。
GetItem 操作を呼び出して、システムに XML を保存します。
また、EWS マネージ API のトレース機能を使用して、XML をキャプチャして XML データベースに格納できます。
詳しくは、「iCal ファイルとして予定をエクスポートする」をご覧ください。
一般的なファイルの種類の MIME ストリームとしてメール、予定表アイテムのコピーをインポートする。
EmailMessage.Save
Appointment.Save
CreateItem
EmailMessageMimeContent プロパティまたは Appointment オブジェクトを使用して .eml または .ics ファイルをインポートすることができます。
メールが下書きではない場合、PidTagMessageFlags (0x0E07) 拡張プロパティを設定する必要があります。

この方法で、会議をインポートすることはできません。

EWS を使用したアイテムのエクスポートとインポート以外の方法

他の方法を使用して、Exporing メールボックスとの間でアイテムをインポート/エクスポートできます。 インポートとエクスポートの戦略を設計するときに考慮できる事柄を次にいくつか示します。

このセクションの内容

関連項目