メールボックスのインポートとエクスポート API を使用すると、exportItems を使用してエクスポートされた Exchange メールボックスアイテムをインポートできます。 アイテムは、同じメールボックスまたは別のメールボックスに復元できます。
この記事では、インポート プロセスを実行するために必要な 2 つの手順について説明します。手順ごとに例を示します。 アイテムを正常にアップロードすると、 itemId と changeKey を含む応答が返されます。これは後で使用するために保存できます。
手順 1: インポート セッションを作成する
インポート セッションを作成 して、メールボックス内のフォルダー内のアイテムをインポートします。
正常に実行されると、応答コード HTTP 201 Created と、応答本文に新しい mailboxItemImportSession オブジェクトが返されます。このオブジェクトには、後続の POST 操作でアイテムをフォルダーにアップロードするために使用できる不透明な importUrl が含まれています。
応答の mailboxItemImportSession オブジェクトには、importUrl プロパティ値に埋め込まれた認証トークンの有効期限の日付と時刻を示す expirationDateTime プロパティも含まれています。 この時間が経過すると、 importUrl の有効期限が切れ、削除されます。
アクセス許可
mailboxItemImportSession を作成するには、委任されたアクセス許可MailboxItem.ImportExportまたはアプリケーションのアクセス許可MailboxItem.ImportExport.All要求してください。
新しい mailboxItemImportSession の importUrl プロパティで返される不透明 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 | 文字列 | アイテムをインポートするフォルダーの ID。 必須です。 |
| モード | 文字列 | インポート モードを create または updateできることを指定します。 必須です。
|
| データ | 文字列 | base64 でエンコードされた FTS 形式の項目を表すデータ。 必須です。 |
| ItemId | 文字列 | アイテムの一意識別子。
update中に必要です。 |
| ChangeKey | 文字列 | アイテムのバージョン。
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=="
}