De l'API REST Outlook et EWS à Microsoft Graph : Le guide de migration 2026 pour les développeurs

Unipile - Table des matières
Guide de migration 2026

De API REST d'Outlook & EWS vers Microsoft Graph

L'API REST Outlook v2.0 n'est plus disponible (mars 2024). Les services Web Exchange (EWS) arriveront définitivement en fin de vie le 1er octobre 2026. Ce guide passe en revue tous les points de terminaison, les flux OAuth et les étapes de migration que vous devez mettre en œuvre avant la date limite.

Date limite impérative pour l'EWS : 1er octobre 2026. Microsoft a confirmé qu'il n'y aura pas de période de grâce pour Exchange Online. Commencez votre migration dès maintenant.

graph-mail.js
// API REST Outlook via Microsoft Graph // Remplacer EWS SOAP par un appel REST unique const response = attente fetch( 'https://graph.microsoft.com/v1.0/moi/messages', { en-têtes: { 'Authorization': `Porteur ${accessToken}`, 'Content-Type': 'application/json' } } ); const { value: messages } = await réponse.json(); console.log(« ${messages.length} e-mails récupérés »);
GET /moi/messages - 200 OK - 12 messages retournés
Qu'est-ce que c'est

Quelles seront les perspectives de l'API REST d'Outlook en 2026 ?

Le terme "API REST Outlook" prête à confusion en 2026 car Microsoft l'a utilisé pour décrire au moins trois choses distinctes au cours de la dernière décennie. Voici la signification actuelle précise, pourquoi cela est toujours important pour les développeurs et ce qui a changé.

Définition : En 2026, " Outlook REST API " est un terme familier qui fait référence aux points de terminaison de messagerie de Microsoft Graph (https://graph.microsoft.com/v1.0/me/messages). L'API REST Outlook d'origine dédiée v2.0 (outlook.office.com/api/v2.0) a été définitivement désactivé le 31 mars 2024 et renvoie désormais un code HTTP 410 Gone pour toutes les requêtes. Microsoft Graph est désormais l'API unique et unifiée pour la messagerie, le calendrier et les contacts dans Microsoft 365, Exchange Online, Outlook.com et Teams.

Cela aura de l'importance en 2026 pour deux raisons : premièrement, toute application qui ferait encore référence à l'ancien outlook.office.com/api/ Le domaine est hors service. Deuxièmement, les applications utilisant les services Web Exchange (EWS) – l'ancien protocole basé sur SOAP – sont soumises à une date limite stricte fixée au 1er octobre 2026 pour Exchange Online. Maîtriser la terminologie appropriée est la première étape pour une migration réussie.

Précisions concernant la dénomination
Nom Protocole URL de base Statut en 2026
API REST Outlook v2.0 REST / JSON outlook.office.com/api/v2.0 Mort (Mar 2024)
Services Web Exchange (EWS) SOAP / XML outlook.office365.com/EWS/ Fin de vie : octobre 2026
API Microsoft Graph Mail REST / JSON graph.microsoft.com/v1.0/moi/messages En direct - Utiliser ceci
MAPI / COM Outlook COM / Binaire Uniquement sur ordinateur Uniquement sur ordinateur

Pour en savoir plus sur l'intégration de Microsoft Graph au-delà de la messagerie (webhooks, requêtes delta, boîtes aux lettres partagées), consultez le Guide d'intégration des e-mails avec l'API Microsoft Graph. Le guide des piliers couvrant tous les modèles d'API d'e-mail se trouve à Guide du développeur de l'API de messagerie électronique.

Envisager l'avenir en 2026 ? Unipile vous offre une API de messagerie unifiée qui prend en charge Microsoft Graph, Gmail et IMAP via une seule intégration : aucune migration spécifique par fournisseur n'est nécessaire.

Construisez-le avec Unipile
Chronologie

De v2.0 à Microsoft Graph : Un bref historique

L'obsolescence de l'API REST d'Outlook v2.0 n'a pas été soudaine – Microsoft l'a annoncée des années à l'avance avec plusieurs reports d'échéances. Comprendre cette histoire vous aide à anticiper ce que Microsoft fera avec EWS, et pourquoi la date limite d'octobre 2026 est considérée comme définitive.

2015 - 2017
L'API REST Outlook v2.0 est lancée

Microsoft introduit une API REST sur outlook.office.com/api/v2.0 En alternative moderne à EWS. Les développeurs peuvent lire les e-mails, gérer les événements du calendrier et accéder aux contacts via JSON sur HTTPS - une amélioration significative par rapport à SOAP/XML.

2019
Microsoft Graph émerge comme l'API unifiée

Microsoft lance Microsoft Graph en tant que point d'accès unique couvrant tous les services Microsoft 365 : courrier, calendrier, contacts, Teams, OneDrive, SharePoint, et plus encore. graph.microsoft.com le domaine devient le moyen canonique d'accéder aux données Microsoft par programme.

Novembre 2020
Annonce de dépréciation pour l'API REST Outlook v2.0

Microsoft annonce officiellement la dépréciation de l'API REST Outlook v2.0 (et de la version bêta v1.0), citant Microsoft Graph comme remplaçant. L'annonce indique explicitement que les anciens points de terminaison cesseront de fonctionner – avec une date limite de " fin 2022 " à l'époque.

2022 - 2023
Prolongations multiples de délai

Microsoft a prolongé la date limite deux fois – d'abord à novembre 2022, puis à mars 2023, puis à mars 2024. Chaque prolongation était accompagnée d'un avertissement : " c'est la dernière prolongation ". De nombreux développeurs ont pris ces prolongations comme un signal que les dates limites étaient flexibles. La date limite des EWS d'octobre 2026 est appliquée plus strictement.

31 mars 2024
API REST Outlook v2.0 définitivement mise hors service

Le outlook.office.com/api/v2.0 le point de terminaison renvoie HTTP 410 Gone pour toutes les requêtes. Plus aucune extension. Toute application appelant encore ces URL est défectueuse. "Outlook REST API" signifie désormais Microsoft Graph lorsqu'il est utilisé correctement. Pour le guide d'intégration complet des points de terminaison de messagerie de Microsoft Graph, consultez Guide d'intégration des e-mails avec l'API Microsoft Graph.

1er octobre 2026
Fin de vie EWS pour Exchange Online

Exchange Web Services cessera de fonctionner pour Exchange Online (cloud Microsoft 365). Microsoft a confirmé qu'il s'agit d'une date d'application stricte. Les serveurs Exchange locaux ne sont pas concernés. Toutes les applications basées sur le cloud utilisant des appels SOAP/XML EWS doivent avoir migré vers Microsoft Graph avant cette date.

Pourquoi cette migration était inévitable

Sécurité OAuth 2.0 moderne

Les anciennes API s'appuyaient sur l'authentification de base et des formats de jetons obsolètes. Microsoft Graph impose OAuth 2.0 avec Azure Active Directory, s'alignant sur les modèles de sécurité zero-trust et éliminant les risques d'exposition des identifiants.

Plateforme d'Identité Unifiée

Microsoft Graph consolide l'accès à tous les services Microsoft 365 via une plateforme d'identité unique. Un enregistrement d'application, un jeton, un préfixe de point de terminaison – au lieu de maintenir des informations d'identification distinctes par API héritée.

Capacités plus riches

Microsoft Graph expose des fonctionnalités qu'EWS n'a jamais eues : requêtes delta pour la synchronisation incrémentielle, notifications de modification (webhooks), recherche sur tout le contenu, intégration Teams et analyse spécifique à Graph - le tout via REST/JSON propre.

Unipile - Fin de vie EWS
Date limite critique

La véritable échéance de 2026 : Fin de vie des EWS (1er octobre 2026)

Alors que la dépréciation de l'API REST Outlook v2.0 a affecté un groupe relativement restreint de développeurs, la fin de vie des services web Exchange (EWS) pour Exchange Online est un événement beaucoup plus important. Des milliers d'applications d'entreprise, de clients de messagerie, d'outils de synchronisation de calendrier et de solutions de sauvegarde dépendent toujours des services web Exchange. Le 1er octobre 2026 est la date limite stricte - voici ce que vous devez savoir.

Date limite ferme pour EWS : 1er octobre 2026 - Pas de période de grâce

Portée : Exchange Online (cloud Microsoft 365) uniquement. Les serveurs Exchange locaux ne sont pas affectés. Application Microsoft a confirmé qu'il s'agit d'une bascule stricte - les requêtes EWS vers Exchange Online cesseront d'être traitées. Qu'est-ce qui se casse : tous les appels SOAP/XML à outlook.office365.com/EWS/Exchange.asmx, y compris les applications utilisant la bibliothèque .NET EWS Managed API, les flux d'authentification Kerberos/NTLM et l'authentification de base via EWS.

Qui est affecté

  • Clients de messagerie personnalisés basés sur l'API managée EWS
  • Compléments Outlook utilisant des appels EWS (pas basés sur Graph)
  • Applications de synchronisation de calendrier (réservation de salle, planification)
  • Outils de sauvegarde et d'archivage d'e-mails
  • Intégrations de synchronisation d'e-mails CRM / ATS
  • Toute application utilisant ExchangeService .Classe .NET

Qu'est-ce qui cesse de fonctionner

  • Authentification NTLM et Kerberos
  • Authentification basique sur EWS (déjà obsolète)
  • API gérée EWSMicrosoft.Exchange.WebServices)
  • Notifications en continu via EWS
  • Usurpation d'identité EWSImpersonationExchange)
  • Opérations SOAP : GetItem, FindItems, SyncFolderItems

Ce qui n'est pas affecté

  • Exchange 2016 / 2019 / SE EWS sur site
  • API Microsoft Graph (c'est la cible de la migration)
  • IMAP / SMTP pour envoyer/recevoir des messages de base
  • ActiveSync (obsolète séparément)
  • l'application de bureau Outlook elle-même (utilise MAPI propriétaire)

Calendrier de migration Réalité

  • Application simple avec 1-2 opérations EWS : 1-2 semaines
  • Application à complexité moyenne (mail + calendrier + contacts) : 4-8 semaines
  • Application d'entreprise avec impersonation EWS : 8-16 semaines
  • Dépendance vis-à-vis d'un fournisseur (attente de mise à jour de la bibliothèque) : non maîtrisée
  • Tests + UAT + déploiement en production : ajouter 2 à 4 semaines

Un délai serré pour la migration EWS ? L'API email unifiée d'Unipile abstrait Microsoft Graph (ainsi que Gmail et IMAP) pour que vous puissiez migrer une fois et ne plus jamais toucher au code spécifique au fournisseur. Voir la Guide complet de l'API d'e-mail pour les modèles d'architecture.

Commencez votre migration
Référence API

Points de terminaison de l'API REST Outlook en 2026 (via Microsoft Graph)

Toutes les fonctionnalités de l'API REST d'Outlook sont maintenant disponibles via Microsoft Graph à l'adresse https://graph.microsoft.com/v1.0. Voici les points d'accès clés pour les e-mails, le calendrier et les contacts avec leurs méthodes HTTP et un exemple de code pour chaque catégorie.

Points d'accès de messagerie

Méthode Point de terminaison Description Portée requise
GET /moi/messages Afficher la liste des messages dans la boîte de réception (prend en charge les filtres $filter, $orderby, $top et $select) Mail.Read
GET /moi/messages/{id} Obtenir un seul message par ID avec le corps et les en-têtes complets Mail.Read
POST /moi/envoyerEmail Envoyer un nouvel e-mail immédiatement (pas de brouillon enregistré) Mail.Send
POST /moi/messages Créer un brouillon de message (envoyer séparément via /send) Mail.ReadWrite
PATCH /moi/messages/{id} Mettre à jour un message (marquer comme lu, déplacer, changer de catégorie) Mail.ReadWrite
DELETE /moi/messages/{id} Supprimer un message définitivement Mail.ReadWrite
GET /moi/dossiersCourriel Lister tous les dossiers de messagerie (Boîte de réception, Envoyés, Brouillons, personnalisés) Mail.Read
GET /moi/messages/delta Synchronisation incrémentielle - obtenir uniquement les messages modifiés depuis la dernière synchronisation Mail.Read
send-mail.js
// POST /me/sendMail - Envoyer via l'API REST Outlook (Microsoft Graph) const response = await fetch('https://graph.microsoft.com/v1.0/moi/envoyerUnEmail', { méthode: POST, en-têtes: { 'Authorization': `Porteur ${accessToken}`, 'Content-Type': 'application/json' }, corps: JSON.stringify({ message: { sujet: 'Bonjour de la part de Microsoft Graph', corps: { typeDeContenu: 'Texte', contenu: 'Migration EWS terminée !' }, destinataires: [{ adresse électronique: { adresse: 'user@example.com' } }] }, enregistrerDansBoîteDEntsEnvoi: true }) }); // 202 Accepté = envoyé avec succès

Points finaux du calendrier

Méthode Point de terminaison Description Portée requise
GET /moi/événements Afficher tous les événements du calendrier (prise en charge du filtre $ par heure de début/fin) Calendriers.Lire
GET /moi/vueCalendrier Obtenir des événements dans une plage horaire (paramètres startDateTime + endDateTime) Calendriers.Lire
POST /moi/événements Créer un nouvel événement de calendrier avec des participants et une récurrence (Calendriers.LectureÉcriture
GET /moi/calendriers Lister tous les calendriers des utilisateurs (principaux, partagés, de groupe) Calendriers.Lire

Points de contact

Méthode Point de terminaison Description Portée requise
GET /moi/contacts Lister tous les contacts dans le dossier de contacts par défaut Contacts.Lire
POST /moi/contacts Créer un nouveau contact Contacts.LireÉcrire
GET /moi/dossiersContacts Lister les dossiers de contacts Contacts.Lire

Envie d'une API unique pour gérer Outlook REST (Microsoft Graph), Gmail et IMAP ? Unipile englobe les trois avec un point d'accès unifié. Comparez les fournisseurs à Comparaison des fournisseurs d'API d'e-mail.

Construire avec l'API unifiée
Authentification

Authentification OAuth 2.0 : La seule voie à suivre

NTLM, Kerberos et l'authentification basique ont disparu pour Microsoft 365. OAuth 2.0 est désormais la méthode d'authentification obligatoire pour chaque requête API Microsoft Graph. Il n'y a pas de mécanisme de repli, pas de mode de compatibilité et pas de prolongation du délai. Si votre application utilise toujours des flux d'authentification hérités, elle est déjà bloquée pour les nouveaux locataires et cessera complètement de fonctionner pour tous les locataires lorsque l'application de la politique EWS sera achevée en octobre 2026.

Statut de l'authentification héritée (mai 2026) : NTLM et Kerberos sont entièrement désactivés pour Exchange Online. L'authentification de base a été retirée pour Exchange Online en octobre 2022. OAuth 2.0 via Azure AD est la seule méthode d'authentification acceptée pour Microsoft Graph.

Enregistrement d'application Azure AD : 5 étapes

01
Créer un enregistrement d'application dans Azure AD
Aller à portal.azure.com - Azure Active Directory - Inscriptions d'applications - Nouvelle inscription. Choisissez un nom, définissez le type de compte pris en charge (locataire unique, multilocataire ou comptes personnels) et configurez une URI de redirection.
02
Configurer les autorisations de l'API
Sous Permissions API, ajoutez des autorisations Microsoft Graph. Choisissez des autorisations déléguées (contexte utilisateur) ou des autorisations d'application (démon) en fonction de votre cas d'utilisation. La plupart des intégrations de messagerie/calendrier utilisent des autorisations déléguées.
03
Créer un secret client (ou un certificat)
Sous Certificats et secrets, créez un nouveau secret client. Copiez immédiatement la valeur : elle ne s'affiche qu'une seule fois. Pour les applications en production, un certificat est plus sûr qu'un secret client.
04
Implémenter le flux de code d'autorisation
Rediriger les utilisateurs vers https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize avec client_id, portée, uri_de_redirection, ou encore type_de_réponse=code. Après consentement, échangez le code contre des jetons au point d'accès des jetons.
05
Demander l'accord de l'administrateur si nécessaire
Certains scopages (comme Mail.ReadWrite.All) exigent le consentement de l'administrateur du locataire avant que tout utilisateur ne puisse autoriser. Pour ceux-ci, utilisez le point de terminaison de consentement de l'administrateur : /autorisationadministrateur procédure à suivre avec un compte d'administrateur de locataire.

Étendues OAuth requises pour l'API Graph

Faites défiler horizontalement pour voir le tableau dans son intégralité
Portée Type Cas d'utilisation
Mail.Read Délégué lire les messages de la boîte aux lettres de l'utilisateur
Mail.ReadWrite Délégué Lire et modifier les messages de la boîte aux lettres
Mail.Send Délégué Envoyer un e-mail au nom de l'utilisateur
(Calendriers.LectureÉcriture Délégué Lire et modifier les événements du calendrier
Contacts.Lire Délégué Lire les contacts de l'utilisateur
Mail.ReadWrite.All Application Lire/écrire toutes les boîtes aux lettres (applications de démon, nécessite un consentement administrateur)
Calendriers.LectureÉcriture.Tout Application Lecture et écriture dans tous les calendriers (applications en arrière-plan, autorisation de l'administrateur requise)
accès_hors_ligne Délégué Requis pour recevoir un jeton de rafraîchissement pour un accès de longue durée

Flux de code d'autorisation - Exemple Node.js

JavaScript (Node.js)
// Étape 1 : Construire l'URL d'autorisation
const authUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/authorize?`
  + new URLSearchParamsidentifiant_client : CLIENT_ID,
    response_type: 'code',
    uri_de_redirection: URI_DE_REDIRECTION,
    portée : 'Mail.Read Mail.Send Calendars.ReadWrite openid offline_access',
    mode_de_réponse: 'requête'
  });

// Étape 2 : Échanger le code contre des jetons
const jetonRés = await fetch(
  https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token,
  méthode : POST,
    corps : new URLSearchParamsidentifiant_client: CLIENT_ID,
      client_secret : CLIENT_SECRET,
      code : code d'autorisation,
      uri_de_redirection: URI_DE_REDIRECTION,
      grant_type: 'code_autorisation'
    })
  }
);
const { access_token, refresh_token } = await jetonRés.json();

// Étape 3 : Actualiser lorsque le jeton d'accès expire (généralement 1 heure)
const rafraîchirRes = await fetch(tokenEndpoint, {
  method: POST,
  body: new URLSearchParamsidentifiant_client : CLIENT_ID,
    secret_client : CLIENT_SECRET,
    actualiser_le_jeton: RefreshTokenStocké,
    grant_type: 'jeton_rafraîchir'
  })
});
Gestion des jetons de rafraîchissement : Les jetons d'accès Microsoft Graph expirent au bout d'une heure. Enregistrez le token_rafraîchissement en toute sécurité dans votre base de données et utilisez-le pour demander de nouveaux jetons d'accès sans obliger l'utilisateur à se réauthentifier. Les jetons de rafraîchissement peuvent expirer après 90 jours d'inactivité. Demandez toujours le accès_hors_ligne scope pour recevoir un jeton d'actualisation.
Plan d'action

Liste de contrôle de migration : EWS vers Microsoft Graph en 10 étapes

Microsoft a confirmé l'application stricte de la dépréciation d'EWS pour Exchange Online le 1er octobre 2026. Il n'y aura ni période de grâce, ni option de retour en arrière, ni pont de compatibilité. Chaque application utilisant encore Exchange Web Services pour Microsoft 365 cessera de fonctionner à cette date.

Date limite stricte : 1er octobre 2026. Aucune extension. Pas de mode de compatibilité. Planifiez votre migration dès maintenant - une application EWS complexe peut prendre 4 à 8 semaines pour migrer entièrement vers Microsoft Graph.
01
Auditez votre utilisation actuelle d'EWS
Inventoriez tous les appels EWS dans votre code : opérations de messagerie, synchronisation de calendrier, requêtes de contacts, notifications push/pull/en continu. Ceci déterminera la portée et l'estimation de l'effort de votre migration.
02
Enregistrez une application Azure AD et définissez des étendues
Créez votre enregistrement d'application dans le portail Azure. Définissez les étendues minimales requises de Microsoft Graph pour votre cas d'utilisation. Demandez uniquement ce dont vous avez besoin – évitez les surpermissions.
03
Mapper les opérations EWS aux points d'accès Graph
Créer un tableau de correspondance : FindItem devient GET /me/messages, CreateItem devient POST /me/sendMail, FindAppointments devient GET /me/events. Microsoft propose un guide officiel de mise en correspondance entre EWS et Graph.
04
Remplacer les appels WCF/SOAP par des appels REST HTTP
EWS utilise SOAP sur HTTP. Microsoft Graph utilise REST standard avec JSON. Supprimez toutes les classes proxy WCF, la sérialisation SOAP XML et les dépendances de l'API managée EWS de votre base de code.
05
Migrer l'authentification des protocoles hérités vers OAuth 2.0
Remplacez NTLM, Kerberos ou l'authentification de base par le flux d'autorisation OAuth 2.0 par code. Implémentez la logique de rafraîchissement de jeton en utilisant la portée offline_access pour maintenir un accès de longue durée.
06
Tester dans le locataire de développement avec Microsoft Graph Explorer
Utilisez l'explorateur Graph (developer.microsoft.com/graph/graph-explorer) pour prototyper et tester les appels d'API avant d'écrire du code. Configurez un locataire de développement séparé pour éviter de tester des boîtes aux lettres de production.
07
Implémenter des requêtes delta pour la synchronisation incrémentielle
Remplacez EWS SyncFolderItems par des requêtes delta Graph (GET /me/messages/delta). Stockez le jeton deltaLink pour permettre une synchronisation incrémentielle efficace : seules les modifications depuis la dernière requête sont retournées.
08
Gérer le ralentissement : HTTP 429 et Retry-After
Microsoft Graph applique des limites de débit strictes. Implémentez le réessai exponentiel : lorsque vous recevez le code HTTP 429, lisez l'en-tête Retry-After et faites une pause pendant exactement cette durée avant de réessayer.
09
Mettre à jour la gestion des erreurs pour le format d'erreur de Graph
Les erreurs de graphe utilisent un format différent des erreurs SOAP EWS. Analysez l'objet d'erreur JSON : { "error": { "code": "...", "message": "..." } }. Mettez à jour toute votre gestion des erreurs et votre journalisation en conséquence.
Date limite
10
Mise en production avant le 1er octobre 2026
Planifiez votre basculement de production au moins 4 semaines avant la date limite. Exécutez EWS et Graph en parallèle pendant une période de transition pour valider l'exactitude avant de décommissionner entièrement la couche EWS.
Migrez vers Unipile et sauter 8 des 10 étapes - aucune inscription d'application Azure, aucun flux OAuth, aucune logique d'étranglement à gérer.
Démarrer
Exemples de code

Exemples de migration de code : EWS par rapport à Microsoft Graph

Ci-dessous, 4 opérations courantes sont comparées côte à côte : l'approche hérité EWS SOAP à gauche, l'équivalent Microsoft Graph REST à droite. Le passage du XML verbeux au JSON épuré est immédiatement évident.

1 Lire les messages de la boîte de réception
EWS - Rechercher un élément SOAP Obsolète
<soap:Enveloppe xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  
    TrouverObjet Parcours="Peu profond"
      xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      
        Défaut
      
      <IndexedPageItemView
        MaxEntréesRetournées="10"
        Décalage="0"
        Point de base="Début"/>
      
        <t:DistinguishedFolderId Identifiant="boîte de réception"/>
      
    
  
Microsoft Graph REST Courant
GET /moi/messages
  ?$select=sujet,de,receivedDateTime,aperçu du corps
  &$top=10
  &$orderby=dateHeureRéception descendant

Autorisation : Bearer {access_token}

// Réponse (JSON) :
{
  "valeur": [
    {
      "id": "AAMkAGI...",
      "sujet": "Bonjour",
      "de": {
        "adresseCourriel": {
          "adresse": "sender@example.com"
        }
      },
      "dateHeureReception": "2026-05-27T..."
    }
  ],
  "@odata.nextLink": "https://..."
}
2 Envoyer un email
EWS - Créer un article SOAP Obsolète
<CréerArticle Ordre de diffusion="EnvoyerEtEnregistrerCopie"
  xmlns="http://schemas.microsoft.com/.../messages">
  
    
      Bonjour de EWS
      <t:Corps Type de corps="HTML">
        

Corps du message

to@example.com
Microsoft Graph REST Courant
POST /moi/envoyerEmail
Autorisation : Bearer {access_token}
Content-Type : application/json

{
  "message": {
    "sujet": "Bonjour de Graph",
    "corps": {
      "typeDeContenu": "HTML",
      "contenu": "

Corps du message

"
}, "destinataires": [ { "adresseCourriel": { "adresse": "to@example.com" } } ] }, "enregistrerDansÉlémentsEnvoyés": true } // Réponse : HTTP 202 Accepté (sans corps)
3 Obtenir les événements du calendrier
EWS - Trouver Rendez-vous SOAP Obsolète
TrouverObjet Parcours="Peu profond">
  
    ToutesLesPropriétés
  
  <CalendarView
    MaxEntréesRetournées="50"
    Date de début="2026-05-01T00:00:00Z"
    Date de fin="31/05/2026"
  />
  
    <t:DistinguishedFolderId
      Identifiant="calendrier"/>
  
Microsoft Graph REST Courant
GET /moi/événements
  ?$select=sujet,début,fin,lieu,organisateur
  &$filter=date/heure début ge '2026-05-01T00:00:00Z'
    et fin/dateTime le ' 2026-05-31T23:59:59Z '
  &$top=50
  &$orderby=début/heure asc

Autorisation : Bearer {access_token}

// Retourne un tableau JSON propre de
// objets d'événement de calendrier - pas d'analyse XML
4 S'abonner aux modifications en temps réel
EWS - Notifications en continu Obsolète

  
    
      <t:DistinguishedFolderId
        Identifiant="boîte de réception"/>
    
    
      NouvelÉvénementMail
      ÉvénementSupprimé
    
  
S'abonner



Webhooks Microsoft Graph Courant
POST /abonnements
Autorisation : Bearer {access_token}
Content-Type : application/json

{
  "changer le type": "créé,mis à jour,supprimé",
  "urlDeNotification": "https://votreapplication.com/webhook",
  "ressource": "/moi/messages",
  "dateEtHeureExpiration": "2026-06-03T18:00:00Z",
  "étatClient": "ton-état-secret"
}

// Graph publie sur votre URL à chaque modification.
Renouveler l'abonnement avant l'expiration.
// Aucune connexion persistante requise.
Attention

Pièges courants : Permissions, Limites de débit, Limitations

Même les développeurs expérimentés avec Exchange Web Services se heurtent régulièrement aux mêmes obstacles lors de la migration vers Microsoft Graph. Ces 6 pièges expliquent la majorité des incidents de production lors de la migration. Les comprendre maintenant vous fera économiser des jours de débogage plus tard. Pour une perspective plus large sur la façon dont ces défis se comparent entre les fournisseurs, voir notre comparaison des fournisseurs d'API d'e-mail.

Permissions d'application vs permissions déléguées
C'est la confusion la plus courante. Délégué les autorisations agissent au nom d'un utilisateur connecté. Application les autorisations agissent comme un service sans contexte utilisateur et nécessitent un consentement administrateur.
TypeContexteConsentement de l'administrateur
DéléguéUtilisateur connectéParfois
ApplicationAucun utilisateur / démonToujours
Limites de limitation : HTTP 429 et Retry-After
Microsoft Graph impose une limite d'environ 10 000 requêtes par 10 minutes par application et par locataire. En cas de limitation, vous recevez HTTP 429 avec un Réessayer après en-tête spécifiant le temps d'attente en secondes. Ignorer cet en-tête et réessayer immédiatement entraîne un bannissement prolongé. Implémentez toujours un recul exponentiel avec la valeur exacte de Retry-After.
Pagination via @odata.nextLink
Graph pagine les résultats par défaut (généralement 10 messages). Si vous ne vérifiez pas @odata.nextLink Dans la réponse, vous manquez silencieusement des données. Bouclez toujours : si @odata.nextLink est présent, effectuez une autre requête GET vers cette URL (elle comprend le jeton de saut) jusqu'à ce que le champ soit absent.
Consentement de l'administrateur pour les étendues sensibles
Des scopes tels que Mail.ReadWrite.All, Calendriers.LectureÉcriture.Tout, ou encore `Utilisateur.Lire.Tous` exigent qu'un administrateur du tenant donne son accord avant qu'un utilisateur puisse autoriser votre application. Sans l'accord de l'administrateur, le flux OAuth renvoie un AADSTS65001 erreur. Utiliser le /autorisationadministrateur point d'accès lors de l'intégration d'applications pour les clients d'entreprise.
État de la requête delta : gestion du deltaLink
Les requêtes Delta renvoient les modifications depuis votre dernière synchronisation, identifiées par un lienDelta jeton dans la dernière page. Stockez ce jeton de manière persistante - c'est votre curseur de synchronisation. Si vous le perdez, vous devrez effectuer une synchronisation complète. Ne jamais coder en dur une plage horaire - utilisez le deltaLink pour éviter de traiter des doublons ou des modifications manquantes.
Gestion des pièces jointes : limite de taille de 3 Mo
Les pièces jointes de moins de 3 Mo peuvent être intégrées directement dans un seul appel API. Pour les fichiers de plus de 3 Mo, vous devez d'abord créer une session de téléchargement (POST /me/messages/{id}/attachments/createUploadSession) et télécharger par morceaux. Tenter d'intégrer une grosse pièce jointe en ligne résulte en un 413 Entité du fichier trop volumineuse erreur.
Approche API unifiée

Évitez les maux de tête de la migration : Approche unifiée via une API de messagerie

La migration complète d'EWS vers Graph pour une application complexe nécessite entre 4 et 8 semaines de travail d'ingénierie. Vous devez enregistrer les applications Azure, mettre en œuvre les flux OAuth, gérer l'actualisation des jetons, gérer la limitation du débit, réécrire chaque appel SOAP, mettre à jour la gestion des erreurs et effectuer des tests dans tous les environnements. Et tout recommencer lorsque Microsoft apporte des modifications.

Unipile regroupe Microsoft Graph, Gmail et IMAP au sein d'une API unique et unifiée. Il vous suffit d'authentifier vos utilisateurs une seule fois via Unipile pour lire et envoyer des e-mails, synchroniser des calendriers et gérer des contacts sur ces trois fournisseurs à l'aide des mêmes points de terminaison : pas d'enregistrement d'application Azure, pas de flux OAuth spécifiques à chaque fournisseur, pas de logique de limitation à gérer. Consultez notre guide complet sur l'API d'envoi d'e-mails et comparaison des fournisseurs d'API d'e-mail pour comprendre le paysage.

50 lignes de Microsoft Graph contre 5 lignes d'Unipile

Microsoft Graph - Lecture de la boîte de réception (fonctionnalité native) environ 50 lignes
// 1. Enregistrement d'application Azure (portal.azure.com)
// 2. Flux de code d'autorisation OAuth
const authUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/authorize?`
  + new URLSearchParams({
      client_id: CLIENT_ID,
      response_type: 'code',
      redirect_uri: REDIRECT_URI,
      scope: 'Mail.Read offline_access',      mode_de_réponse: 'requête'
    });
// 3. Gérer la redirection, échanger le code contre des jetons
const jetonRes = await fetch(https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token, 
  méthode : POST,
  body: new URLSearchParamsgrant_type: 'code_autorisation'
  })
});
const { access_token, refresh_token } = await tokenRes.json();
// 4. Stocker les jetons d'accès + de rafraîchissement lors de leur expiration (toutes les heures)
// 5. Appel Graphe avec jeton porteur
const rés = await fetch('https://graph.microsoft.com/v1.0/me/messages?$top=10', ,
  en-têtes: { Autorisation: `Bearer ${access_token}` }
});
// 6. Gérer la limitation (HTTP 429 + Retry-After)
si (res.status === 429) {
  const retryAfter = res.headers.obtenir('Réessayer après');
  await Dormir(retryAfter * 1000);
  // réessayez...
}
// 7. Pagination via @odata.nextLink
const données = await res.json();
laissez messages = data.value;
tandis que (données['@odata.nextLink']) { /* ... */ }
Unipile - Lire la boîte de réception (API unifiée) 5 lignes
// Pas d'application Azure, pas de flux OAuth à implémenter,
// pas de logique de limitation, pas de rafraîchissement de jeton.
// Fonctionne pour Outlook ET Gmail ET IMAP.

const client = new UnipileClient(CLÉ_API);

const messages = await client.email.listerMessages({
  account_id : identifiantCompteUtilisateur, compte lié
  dossier : 'BOÎTE DE RÉCEPTION',
  limit: 10
});

// Même code, même format de réponse
// pour Outlook, Gmail et IMAP.
// Unipile gère OAuth, le limitation de débit,
// pagination, et actualisation du jeton.
SOC 2 Type II
Conforme au GDPR
CASA Niveau 2
Contrat de niveau de service (SLA) garantissant une disponibilité de 99,991 %
Outlook + Gmail + IMAP
Cessez de refaire sans cesse la même infrastructure OAuth
Lisez les e-mails, envoyez des messages, synchronisez les calendriers sur Outlook, Gmail et IMAP avec une seule API. Unipile gère la complexité de la migration EWS-vers-Graph afin que votre équipe publie des fonctionnalités au lieu de flux d'authentification.
Commencez à construire avec Unipile
Unipile - FAQ sur l'API REST Outlook et EWS

API REST et EWS d'Outlook - FAQ

Questions fréquentes concernant la fin de prise en charge de l'API REST d'Outlook, la dépréciation d'EWS et la migration vers Microsoft Graph

Non. L'API REST d'Outlook (v2.0 et version bêta) a été retirée par Microsoft. Toutes les requêtes adressées aux points de terminaison REST hérités d'Outlook échouent désormais. Le remplacement officiel est Microsoft Graph, qui couvre toutes les mêmes opérations liées à la messagerie et au calendrier, et bien plus encore. Si votre application utilise encore les points de terminaison REST d'Outlook, la migration vers Graph n'est pas facultative.

L'API REST Outlook était une API REST dédiée, couvrant uniquement les opérations liées aux boîtes de réception Outlook. Microsoft Graph est l'API unifiée pour l'ensemble de l'écosystème Microsoft 365 : messagerie Outlook, calendrier, contacts, Teams, SharePoint, OneDrive, etc. Les deux utilisent l'authentification OAuth 2.0, mais Graph utilise une URL de base unique https://graph.microsoft.com/v1.0 et offre une interface plus cohérente et riche en fonctionnalités que les points de terminaison propres à Outlook, désormais obsolètes.

Microsoft a fixé 1er octobre 2026 comme date limite de fin d'application stricte pour la dépréciation d'EWS dans Exchange Online (Microsoft 365). Après cette date, EWS ne fonctionnera plus pour les boîtes aux lettres Microsoft 365. Il n'y a pas de période de grâce ni de prolongation annoncée. EWS continuera de fonctionner pour les installations de serveurs Exchange locaux, qui ne sont pas affectées par cette date limite.

Microsoft Graph est le remplacement officiel d'EWS. Chaque opération EWS a un équivalent dans Graph : TrouverUnObjet devient GET /moi/messages, CréerUnObjet (envoyer un courriel) POST /moi/envoyerEmail, les notifications de streaming deviennent des webhooks Graph via POST /abonnements. Les changements d'authentification de NTLM/Kerberos/Authentification de base à OAuth 2.0 via Azure AD. Pour les équipes qui ont besoin d'un parcours plus simple, une API d'email unifiée comme Unipile abstraire les trois fournisseurs sous un seul SDK.

Non. L'API REST Outlook v2.0 est obsolète. Les requêtes vers ces points de terminaison échoueront avec des erreurs. Microsoft Graph est la seule voie prise en charge pour l'intégration de la messagerie et du calendrier Outlook. Toutes les nouvelles intégrations doivent cibler https://graph.microsoft.com/v1.0 et utilisez l'authentification OAuth 2.0.

L'effort dépend de la complexité de votre implémentation EWS. Une intégration simple avec quelques opérations de lecture/écriture prend généralement 1 à 2 semaines. Une application complexe avec des notifications de streaming, une synchronisation différentielle, des opérations multi-dossiers et une gestion des erreurs approfondie peut prendre de 4 à 8 semaines. La migration nécessite : l'enregistrement d'une application Azure AD, l'implémentation d'OAuth 2.0, le remplacement point par point, la logique de limitation, les mises à jour de pagination et les modifications du format d'erreur. Une alternative consiste à utiliser L'abstraction Microsoft Graph d'Unipile, qui gère la plupart de cette complexité automatiquement.

La date limite d'octobre 2026 s'applique spécifiquement à Services Web Exchange (EWS) utilisation dans Exchange Online. Les compléments Outlook qui utilisent l'API Office.js suivent un calendrier différent. Cependant, Microsoft a progressivement supprimé les compléments COM et VSTO existants au profit des compléments Office basés sur le web. Si votre complément effectue des appels EWS en interne, ces appels cesseront de fonctionner en octobre 2026, quel que soit le framework du complément. Consultez la feuille de route Microsoft 365 pour obtenir les dernières directives spécifiques au type de votre complément.

Puisque l'API REST d'Outlook est obsolète, les étendues pertinentes sont pour Microsoft Graph. Portées d'e-mail principales : Mail.Read (lire les messages), Mail.Send Envoyer un e-mail, Mail.ReadWrite (lire et modifier les messages), (Calendriers.LectureÉcriture (accès au calendrier), Contacts.Lire (contacts). Toujours inclure accès_hors_ligne pour recevoir un jeton d'actualisation. Les étendues au niveau de l'application, comme Mail.ReadWrite.All nécessite le consentement de l'administrateur du client et ne doit être utilisé que pour des scénarios de démonisation sans contexte utilisateur. Voir notre Guide OAuth de Microsoft Graph pour un guide d'installation complet.

Microsoft Graph applique des limites de débit d'environ 10 000 requêtes par 10 minutes, par application et par locataire. En cas de limitation (throttling), l'API renvoie 429 Trop de requêtes avec un Réessayer après en-tête spécifiant le nombre exact de secondes à attendre. La règle essentielle : toujours respecter Réessayer après valeur exactement. Réessayer avant que cette fenêtre ne se ferme prolonge la période d'étranglement. Pour les applications SaaS multi-locataires où chaque locataire a des limites séparées, l'étranglement d'un locataire n'affecte pas les autres. Comparez également IMAP en tant qu'alternative si la limitation à grande échelle est une préoccupation.

Unipile est un API unifiée pour les e-mails qui englobe Microsoft Graph, Gmail et IMAP sous un seul SDK. Au lieu d'implémenter les flux OAuth de Microsoft Graph, de gérer les jetons d'accès, de gérer la limitation du débit et d'écrire du code par fournisseur, vous connectez les comptes de vos utilisateurs via Unipile et utilisez une API cohérente pour les trois fournisseurs. Ceci est particulièrement efficace pour les applications SaaS qui doivent prendre en charge Outlook et Gmail simultanément sans maintenir de code d'intégration distinct pour chacune. Unipile fonctionne comme un intermédiaire technique indépendant, agissant pour le compte de chaque utilisateur authentifié, et n'est affilié ni approuvé par Microsoft.

Ignorez complètement la migration EWS. Notre équipe est là pour vous aider.

Démarrer
fr_FRFR