次の方法で共有


メールボックスのインポートとエクスポート API を使用して Exchange メールボックスアイテムをインポートする

メールボックスのインポートとエクスポート API を使用すると、FastTransfer ストリーム (FTS) 形式を使用して Exchange メールボックスアイテムをインポートできます。 アイテムは、同じメールボックスまたは別のメールボックスに復元できます。

この記事では、インポート プロセスを実行するために必要な 2 つの手順について説明します。手順ごとに例を示します。 アイテムを正常にアップロードすると、 itemIdchangeKey を含む応答が返されます。これは後で使用するために保存できます。

手順 1: インポート セッションを作成する

インポート セッションを作成 して、メールボックス内のフォルダー内のアイテムをインポートします。

正常に実行されると、応答コード HTTP 201 Created と、応答本文に新しい mailboxItemImportSession オブジェクトが返されます。このオブジェクトには、後続の POST 操作でアイテムをフォルダーにアップロードするために使用できる不透明な importUrl が含まれています。

応答の mailboxItemImportSession オブジェクトには、importUrl プロパティ値に埋め込まれた認証トークンの有効期限の日付と時刻を示す expirationDateTime プロパティも含まれています。 この時間が経過すると、 importUrl の有効期限が切れ、削除されます。

アクセス許可

mailboxItemImportSession を作成するには、委任されたアクセス許可MailboxItem.ImportExportまたはアプリケーションのアクセス許可MailboxItem.ImportExport.All要求してください。

新しい mailboxItemImportSessionimportUrl プロパティで返される不透明 URL は事前認証されており、https://outlook.office365.com ドメイン内の後続の POST クエリに適した承認トークンが含まれています。 POST 操作用にこの URL をカスタマイズしないでください。

例: メールボックス アイテムのインポート セッションを作成する

次の例は、 mailboxItemImportSession オブジェクトを作成する方法を示しています。

要求

次の例は要求を示しています。

POST https://graph.microsoft.com/beta/admin/exchange/mailboxes/MBX:e0643f21@a7809c93/createImportSession

応答

次の例は応答を示しています。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

HTTP/1.1 200 OK
Content-type: application/json
Content-length: 232

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.mailboxItemImportSession",
    "importUrl": "https://outlook.office365.com/api/gbeta/Mailboxes('MBX:e0643f21@a7809c93')/importItem?authtoken=eyJhbGciOiJSUzI1NiIsImtpZCI6IjFTeXQ1b",
    "expirationDateTime": "2024-10-17T19:00:48.1052906Z"
}

手順 2: インポート URL を使用してアイテムをアップロードする

アイテムをメールボックスにインポートするには、mailboxItemImportSession オブジェクトの importUrl プロパティで前の手順で返された URL に POST 要求を行います。

「要求本文」セクションの説明に従って 、要求本文 を指定します。

要求ヘッダー

最初の不透明 URL は事前認証されており、そのインポート セッションの後続のクエリに適切な承認トークンが含まれているため、この操作に Authorization 要求ヘッダーを指定しないでください。

要求本文

パラメーター 説明
FolderId String アイテムをインポートするフォルダーの ID。 必須です。
モード String インポート モードを create または updateできることを指定します。 必須です。

  • create: 新しい項目を作成します。 要求本文で ItemId または ChangeKey を指定すると、エラーが発生します。
  • update: 既存の項目をUpdatesします。 ItemIdChangeKey は、更新プログラムの要求本文で必要です。 ItemIdChangeKey の組み合わせがフォルダー内の既存の項目と一致しない場合、操作は失敗します。
データ String base64 でエンコードされた FTS 形式の項目を表すデータ。 必須です。
ItemId String アイテムの一意識別子。 update中に必要です。
ChangeKey String アイテムのバージョン。 update中に必要です。

応答

成功した場合、このアクションは応答コード 200 OK と、応答本文に importMailboxItemResponse オブジェクトを返します。

例 1: インポート操作を使用してメールボックスにアイテムを作成する

次の例は、 create モードでメールボックスに新しいアイテムをインポートする方法を示しています。

要求

次の例は要求を示しています。

POST https://outlook.office365.com/api/gbeta/Mailboxes('MBX:e0643f21@a7809c93')/importItem?authtoken=eyJhbGciOiJSUzI1NiIsImtpZCI6IjFTeXQ1b

{
    "FolderId": "EDSVrdi3lRAAEED0yTAAA=",
    "Mode": "create",
    "Data": "AQAAAAgAAAAAAAAAAQAAAAMAAAAYAAAAAQAAAAcDAgAAAAAAwAAAAAAAAEYAJACABAAAAAYAAAAUD9aRhhcCAAAAwHsAAAMAFwABAAAAsIQaABIAAABJAFAATQAuA"
}
応答

次の例は応答を示しています。

HTTP/1.1 200 OK
Content-type: application/json
Content-length: 232

{
    "@odata.context": "https://outlook.office365.com/api/gbeta/$metadata#microsoft.graph.importMailboxItemResponse",
    "itemId": "EDSVrdi3lRAAFSX03NAAA=",
    "changeKey": "kNnynYavKEihA0la3Yt5UQABUftGQg=="
}

例 2: インポート操作を使用してメールボックス内の既存のアイテムを更新する

次の例は、既存のアイテムの新しいバージョンを update モードでメールボックスにインポートする方法を示しています。

要求

次の例は要求を示しています。

POST https://outlook.office365.com/api/gbeta/Mailboxes('MBX:e0643f21@a7809c93')/importItem?authtoken=eyJhbGciOiJSUzI1NiIsImtpZCI6IjFTeXQ1b

{
    "FolderId": "EDSVrdi3lRAAEED0yTAAA=",
    "Mode": "update",
    "Data": "AQAAAAgAAAAAAAAAAQAAAAMAAAAYAAAAAQAAAAcDAgAAAAAAwAAAAAAAAEYAJACABAAAAAYAAAAUD9aRhhcCAAAAwHsAAAMAFwABAAAAsIQaABIAAABJAFAATQAuA",
    "ItemId" : "EDSVrdi3lRAAFSX03NAAA=",
    "ChangeKey": "kNnynYavKEihA0la3Yt5UQABUftGQg==" 
}
応答

次の例は応答を示しています。

HTTP/1.1 200 OK
Content-type: application/json
Content-length: 232

{
    "@odata.context": "https://outlook.office365.com/api/gbeta/$metadata#microsoft.graph.importMailboxItemResponse",
    "itemId": "EDSVrdi3lRAAFSX03NAAA=",
    "changeKey": "kNnynYavKEihA0la3Yt5UQABUftGQf=="
}