Поделиться через


Импорт элемента почтового ящика Exchange с помощью API импорта и экспорта почтовых ящиков

API импорта и экспорта почтовых ящиков позволяют импортировать элемент почтового ящика Exchange в формате потока FastTransfer (FTS). Элементы можно восстановить в один или другой почтовый ящик.

В этой статье описываются два шага, необходимых для выполнения процесса импорта, с примером для каждого шага. После успешной отправки элемента вы получите ответ, содержащий itemId и changeKey, которые можно сохранить для последующего использования.

Шаг 1. Создание сеанса импорта

Создайте сеанс импорта для импорта элемента в папку в почтовом ящике.

Успешная операция возвращает HTTP 201 Created код ответа и новый объект mailboxItemImportSession в теле отклика, который содержит непрозрачный importUrl , который можно использовать в последующих операциях POST для отправки элементов в папку.

Объект mailboxItemImportSession в ответе также содержит свойство expirationDateTime , указывающее дату и время окончания срока действия маркера проверки подлинности, внедренного в значение свойства importUrl . По истечении этого времени срок действия importUrl истечет и удаляется.

Разрешения

Обязательно запросить делегированное MailboxItem.ImportExport разрешение или MailboxItem.ImportExport.All разрешение приложения на создание mailboxItemImportSession.

Непрозрачный URL-адрес, возвращаемый в свойстве importUrl нового mailboxItemImportSession, предварительно проверяется и содержит соответствующий маркер авторизации для последующих запросов POST в домене https://outlook.office365.com . Не настраивайте этот URL-адрес для операций POST.

Пример. Создание сеанса импорта элементов почтового ящика

В следующем примере показано, как создать объект 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-адреса импорта

Чтобы импортировать элемент в почтовый ящик, выполните запрос POST на URL-адрес, возвращенный на предыдущем шаге в свойстве importUrl объекта mailboxItemImportSession .

Укажите текст запроса, как описано в разделе Текст запроса .

Заголовки запросов

Так как исходный непрозрачный URL-адрес предварительно прошел проверку подлинности и содержит соответствующий маркер авторизации для последующих запросов для этого сеанса импорта, не указывайте Authorization заголовок запроса для этой операции.

Текст запроса

Параметр Тип Описание
FolderId String Идентификатор папки, в которую требуется импортировать элемент. Обязательно.
Режим String Указывает, что режим импорта может быть или createupdate. Обязательно.

  • create: создает новый элемент. Если указать ItemId или ChangeKey в тексте запроса, это приведет к ошибке.
  • update: Обновления существующего элемента. ItemId и ChangeKey требуются в тексте запроса для обновлений. Операция завершается ошибкой, если сочетание ItemId и ChangeKey не совпадает с существующим элементом в папке.
Data String Данные, представляющие элемент в формате FTS в кодировке Base64. Обязательно.
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=="
}