Importar um item da caixa de correio do Exchange usando as APIs de importação e exportação de caixa de correio

As APIs de importação e exportação de caixa de correio permitem importar um item de caixa de correio do Exchange que foi exportado usando exportItems. Os itens podem ser restaurados na mesma caixa de correio ou em outra.

Este artigo descreve as duas etapas necessárias para executar o processo de importação, com um exemplo fornecido para cada etapa. Depois de carregar o item com êxito, você receberá uma resposta que contém itemId e changeKey, que podem ser salvos para uso posterior.

Etapa 1: Criar uma sessão de importação

Crie uma sessão de importação para importar um item em uma pasta na caixa de correio.

Uma operação bem-sucedida retorna um código de HTTP 201 Created resposta e um novo objeto mailboxItemImportSession no corpo da resposta, que contém um importUrl opaco que você pode usar em operações POST subsequentes para carregar itens em uma pasta.

O objeto mailboxItemImportSession na resposta também inclui a propriedade expirationDateTime que indica a data e a hora de expiração do token de autenticação incorporado no valor da propriedade importUrl . Após esse período, o importUrl expira e é excluído.

Permissões

Certifique-se de solicitar a permissão delegada ou MailboxItem.ImportExport.All a MailboxItem.ImportExport permissão do aplicativo para criar um mailboxItemImportSession.

A URL opaca, retornada na propriedade importUrl do novo mailboxItemImportSession, é pré-autenticada e contém o token de autorização apropriado para consultas POST subsequentes no https://outlook.office365.com domínio. Não personalize essa URL para as operações POST.

Exemplo: Criar uma sessão de importação de item de caixa de correio

O exemplo a seguir mostra como criar um objeto mailboxItemImportSession .

Solicitação

O exemplo a seguir mostra uma solicitação.

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

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

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

Etapa 2: Usar a URL de importação para carregar um item

Para importar o item para a caixa de correio, faça uma solicitação POST para a URL retornada na etapa anterior na propriedade importUrl do objeto mailboxItemImportSession .

Especifique o corpo da solicitação conforme descrito na seção Corpo da solicitação .

Use a propriedade id de um mailboxFolder retornado pelo ponto de extremidade de pastas de Lista como o valor FolderId . Não use IDs de pasta de coleções específicas da carga de trabalho, como pontos de extremidade da pasta de email do Outlook ou calendário. Para localizar a pasta de destino, chame GET https://graph.microsoft.com/v1.0/admin/exchange/mailboxes/{mailboxId}/folders. Por exemplo, para localizar pastas de classe de calendário, use GET https://graph.microsoft.com/v1.0/admin/exchange/mailboxes/{mailboxId}/folders?$filter=type eq 'IPF.Appointment'.

Cabeçalhos de solicitação

Como a URL opaca inicial é pré-autenticada e contém o token de autorização apropriado para consultas subsequentes para essa sessão de importação, não especifique um Authorization cabeçalho de solicitação para esta operação.

Corpo da solicitação

Parâmetro Tipo Descrição
FolderId Cadeia de caracteres A ID da pasta na qual você deseja importar o item. Use a propriedade id da mailboxFolder de destino. Obrigatório.
Modo Cadeia de caracteres Especifica que o modo de importação pode ser create ou update. Obrigatório.

  • create: cria um novo item. Se você especificar ItemId ou ChangeKey no corpo da solicitação, isso resultará em um erro.
  • update: Atualizações um item existente. ItemId e ChangeKey são necessários no corpo da solicitação para atualizações. A operação falhará se a combinação de ItemId e ChangeKey não corresponder a nenhum item existente na pasta.
Data Cadeia de caracteres Dados que representam um item em um formato FTS codificado em base64. Obrigatório.
ItemId Cadeia de caracteres O identificador exclusivo do item. Necessário durante update.
ChangeKey Cadeia de caracteres A versão do item. Necessário durante update.

Resposta

Se for bem-sucedida, essa ação retornará um código de 200 OK resposta e um objeto importMailboxItemResponse no corpo da resposta.

Exemplos

Exemplo 1: Criar um item em uma caixa de correio usando a operação de importação

O exemplo a seguir mostra como importar um novo item para a caixa de correio no create modo.

Solicitação

O exemplo a seguir mostra uma solicitação.

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

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

O exemplo a seguir mostra a resposta.

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

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

Exemplo 2: Atualizar um item existente em uma caixa de correio usando a operação de importação

O exemplo a seguir mostra como importar uma nova versão de um item existente para a caixa de correio no update modo.

Solicitação

O exemplo a seguir mostra uma solicitação.

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

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

O exemplo a seguir mostra a resposta.

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

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