Partager via


Importer un élément de boîte aux lettres Exchange à l’aide des API d’importation et d’exportation de boîte aux lettres

Les API d’importation et d’exportation de boîte aux lettres vous permettent d’importer un élément de boîte aux lettres Exchange au format de flux FastTransfer (FTS). Les éléments peuvent être restaurés dans la même boîte aux lettres ou dans une autre.

Cet article décrit les deux étapes requises pour effectuer le processus d’importation, avec un exemple fourni pour chaque étape. Une fois l’élément chargé, vous obtenez une réponse qui contient l’itemId et changeKey, qui peut être enregistrée pour une utilisation ultérieure.

Étape 1 : Créer une session d’importation

Créez une session d’importation pour importer un élément dans un dossier de la boîte aux lettres.

Une opération réussie retourne un HTTP 201 Created code de réponse et un nouvel objet mailboxItemImportSession dans le corps de la réponse, qui contient un importUrl opaque que vous pouvez utiliser dans les opérations POST suivantes pour charger des éléments dans un dossier.

L’objet mailboxItemImportSession dans la réponse inclut également la propriété expirationDateTime qui indique la date et l’heure d’expiration du jeton d’authentification incorporé dans la valeur de la propriété importUrl. Après ce délai, l’importUrl expire et est supprimé.

Autorisations

Veillez à demander l’autorisation MailboxItem.ImportExport déléguée ou MailboxItem.ImportExport.All l’autorisation d’application pour créer une mailboxItemImportSession.

L’URL opaque, retournée dans la propriété importUrl de la nouvelle boîte aux lettresItemImportSession, est pré-authentifiée et contient le jeton d’autorisation approprié pour les requêtes POST suivantes dans le https://outlook.office365.com domaine. Ne personnalisez pas cette URL pour les opérations POST.

Exemple : Créer une session d’importation d’élément de boîte aux lettres

L’exemple suivant montre comment créer un objet mailboxItemImportSession .

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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"
}

Étape 2 : Utiliser l’URL d’importation pour charger un élément

Pour importer l’élément dans la boîte aux lettres, effectuez une requête POST à l’URL retournée à l’étape précédente dans la propriété importUrl de l’objet mailboxItemImportSession .

Spécifiez le corps de la demande comme décrit dans la section Corps de la demande .

En-têtes de demande

Étant donné que l’URL opaque initiale est pré-authentifiée et contient le jeton d’autorisation approprié pour les requêtes suivantes pour cette session d’importation, ne spécifiez pas d’en-tête Authorization de requête pour cette opération.

Corps de la demande

Paramètre Type Description
FolderId String ID du dossier dans lequel vous souhaitez importer l’élément. Obligatoire.
Mode String Spécifie que le mode d’importation peut être create ou update. Obligatoire.

  • create: crée un élément. Si vous spécifiez ItemId ou ChangeKey dans le corps de la demande, cela génère une erreur.
  • update: Mises à jour un élément existant. ItemId et ChangeKey sont requis dans le corps de la demande pour les mises à jour. L’opération échoue si la combinaison de ItemId et ChangeKey ne correspond à aucun élément existant dans le dossier.
Data String Données qui représentent un élément dans un format FTS codé en base64. Obligatoire.
ItemId String Identificateur unique de l’élément. Obligatoire pendant update.
ChangeKey String Version de l’élément. Obligatoire pendant update.

Réponse

Si elle réussit, cette action renvoie un 200 OK code de réponse et un objet importMailboxItemResponse dans le corps de la réponse.

Exemples

Exemple 1 : Créer un élément dans une boîte aux lettres à l’aide de l’opération d’importation

L’exemple suivant montre comment importer un nouvel élément dans la boîte aux lettres en create mode .

Demande

L’exemple suivant illustre une demande.

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

{
    "FolderId": "EDSVrdi3lRAAEED0yTAAA=",
    "Mode": "create",
    "Data": "AQAAAAgAAAAAAAAAAQAAAAMAAAAYAAAAAQAAAAcDAgAAAAAAwAAAAAAAAEYAJACABAAAAAYAAAAUD9aRhhcCAAAAwHsAAAMAFwABAAAAsIQaABIAAABJAFAATQAuA"
}
Réponse

L’exemple suivant illustre la réponse.

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=="
}

Exemple 2 : Mettre à jour un élément existant dans une boîte aux lettres à l’aide de l’opération d’importation

L’exemple suivant montre comment importer une nouvelle version d’un élément existant dans la boîte aux lettres en update mode .

Demande

L’exemple suivant illustre une demande.

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

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

L’exemple suivant illustre la réponse.

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=="
}