Импорт элемента почтового ящика 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 | Указывает, что режим импорта может быть или create update . Обязательно.
|
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=="
}