メールボックスのインポートとエクスポート API を使用して Exchange メールボックスアイテムをインポートする
メールボックスのインポートとエクスポート API を使用すると、FastTransfer ストリーム (FTS) 形式を使用して 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 | String | アイテムをインポートするフォルダーの ID。 必須です。 |
モード | String | インポート モードを create または update できることを指定します。 必須です。
|
データ | 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=="
}