Van Outlook REST API & EWS naar Microsoft Graph
De Outlook REST API v2.0 is verdwenen (maart 2024). Exchange Web Services (EWS) bereikt zijn definitieve end-of-life op 1 oktober 2026. Deze gids behandelt elk eindpunt, elke OAuth-stroom en elke migratiestap die je vóór de deadline moet implementeren.
EWS uiterste deadline: 1 oktober 2026. Microsoft bevestigde geen respijtperiode voor Exchange Online. Begin nu met uw migratie.
// Outlook REST API via Microsoft Graph
// Vervang EWS SOAP door een enkele REST-aanroep
const response = wachten fetch(
'https://graph.microsoft.com/v1.0/me/berichten',
{
kopteksten: {
'Authorization': `Drager ${accessToken}`,
'Content-Type': "toepassing/json
}
}
);
const { waarde: berichten } = wacht op antwoord.json();
console.log(`Er zijn ${messages.length} e-mails opgehaald`);Wat is de Outlook REST API in 2026?
De term "Outlook REST API" zorgt in 2026 voor verwarring omdat Microsoft deze de afgelopen tien jaar voor ten minste drie verschillende zaken heeft gebruikt. Hieronder volgt de precieze huidige betekenis, waarom het nog steeds belangrijk is voor ontwikkelaars, en wat er is veranderd.
Definitie: In 2026 verwijst de term "Outlook REST API" informeel naar de mail-eindpunten van Microsoft Graphhttps://graph.microsoft.com/v1.0/me/messages). De originele toegewijde Outlook REST API v2.0 (outlook.office.com/api/v2.0) is op 31 maart 2024 definitief buiten gebruik gesteld en retourneert nu voor alle verzoeken een HTTP 410 Gone-status. Microsoft Graph is nu de enige, uniforme API voor e-mail, agenda en contactpersonen in Microsoft 365, Exchange Online, Outlook.com en Teams.
Dit is belangrijk in 2026 om twee redenen: ten eerste, elke toepassing die nog steeds verwijst naar de oude outlook.office.com/api/ Het domein is defect. Ten tweede hebben applicaties die gebruikmaken van Exchange Web Services (EWS) - het oudere SOAP-gebaseerde protocol - een harde handhavingsdeadline van 1 oktober 2026 voor Exchange Online. Het begrijpen van de juiste nomenclatuur is de eerste stap naar een succesvolle migratie.
| Naam | Protocol | Basis-URL | Status in 2026 |
|---|---|---|---|
| Outlook REST API v2.0 | REST / JSON | outlook.office.com/api/v2.0 | Overleden (mrt 2024) |
| Exchange Web Services (EWS) | SOAP / XML | outlook.office365.com/EWS/ | Einde levensduur okt 2026 |
| Microsoft Graph Mail API | REST / JSON | grafiek.microsoft.com/v1.0/mij/berichten | Leven - Gebruik Dit |
| MAPI / Outlook COM | COM / Binair | Alleen desktop | Alleen desktop |
Voor een diepgaande kennismaking met Microsoft Graph-integratie buiten e-mail (webhooks, delta-query's, gedeelde postbussen), zie de Microsoft Graph API e-mail integratiehandleiding. De pijlergids die alle e-mail API-patronen behandelt, bevindt zich op de E-mail API-ontwikkelaarsgids.
Bouwen op Outlook in 2026? Unipile biedt u een uniforme e-mail-API die Microsoft Graph, Gmail en IMAP beheert met één enkele integratie - geen migratie per provider nodig.
Bouw het met UnipileVan v2.0 tot Microsoft Graph: Een korte geschiedenis
De afschrijving van de Outlook REST API v2.0 was niet plotseling - Microsoft kondigde dit jaren van tevoren aan met meerdere deadlineverlengingen. Het begrijpen van deze geschiedenis helpt u te anticiperen op wat Microsoft zal doen met EWS, en waarom de deadline van oktober 2026 als definitief wordt beschouwd.
Microsoft introduceert een REST-gebaseerde API bij outlook.office.com/api/v2.0 Als modern alternatief voor EWS. Ontwikkelaars kunnen e-mail lezen, agenda-afspraken beheren en contacten benaderen via JSON over HTTPS - een aanzienlijke verbetering ten opzichte van SOAP/XML.
Microsoft lanceert Microsoft Graph als één enkel eindpunt dat alle Microsoft 365-services dekt - e-mail, agenda, contacten, Teams, OneDrive, SharePoint en meer. De graph.microsoft.com domein wordt de canonieke manier om programmatisch toegang te krijgen tot Microsoft-gegevens.
Microsoft kondigt officieel de uitfasering aan van de Outlook REST API v2.0 (en v1.0 beta), waarbij Microsoft Graph als vervanging wordt genoemd. De aankondiging stelt expliciet dat de oude eindpunten zullen stoppen met werken - met een deadline van "eind 2022" destijds.
Microsoft stelt de deadline twee keer uit - eerst tot november 2022, daarna tot maart 2023, en vervolgens tot maart 2024. Elke verlenging ging gepaard met een waarschuwing: "dit is de laatste verlenging". Veel ontwikkelaars beschouwden deze verlengingen als een signaal dat deadlines flexibel waren. De EWS-deadline van oktober 2026 wordt strikter gehandhaafd.
De outlook.office.com/api/v2.0 endpoint retourneert HTTP 410 Gone voor alle verzoeken. Geen extensies meer. Elke toepassing die nog steeds deze URL's aanroept, werkt niet meer. "Outlook REST API" betekent nu Microsoft Graph wanneer het correct wordt gebruikt. Zie voor de volledige integratiehandleiding voor Microsoft Graph mail-endpoints Microsoft Graph API e-mail integratiehandleiding.
Exchange Web Services zal stoppen met werken voor Exchange Online (Microsoft 365 cloud). Microsoft heeft bevestigd dat dit een harde handhavingsdatum is. On-premises Exchange-servers worden niet beïnvloed. Alle cloudgebaseerde toepassingen die SOAP/XML EWS-aanroepen gebruiken, moeten vóór deze datum zijn gemigreerd naar Microsoft Graph.
Waarom deze migratie onvermijdelijk was
Moderne OAuth 2.0 Beveiliging
De oudere API's vertrouwden op Basic Auth en legacy token-formaten. Microsoft Graph vereist OAuth 2.0 met Azure Active Directory, wat in lijn is met zero-trust beveiligingsmodellen en risico's op blootstelling van inloggegevens elimineert.
Unified Identiteit Platform
Microsoft Graph consolideert toegang tot elke Microsoft 365-service via een enkel identiteitsplatform. Eén app-registratie, één token, één eindpuntvoorvoegsel – tegenover het onderhouden van afzonderlijke referenties per legacy API.
Rijkere Mogelijkheden
Microsoft Graph biedt functies die EWS nooit had: delta-query's voor incrementele synchronisatie, wijzigingsmeldingen (webhooks), zoeken in alle inhoud, Teams-integratie en Graph-specifieke analyses - allemaal via schone REST/JSON.
De echte deadline van 2026: EWS End-of-Life (1 oktober 2026)
Hoewel de uitfasering van de Outlook REST API v2.0 een relatief kleine groep ontwikkelaars heeft getroffen, is het einde van EWS voor Exchange Online een veel grotere gebeurtenis. Duizenden bedrijfsapplicaties, mailclients, kalendersynchronisatietools en back-upsystemen vertrouwen nog steeds op Exchange Web Services. 1 oktober 2026 is de definitieve overgang - hier is wat u moet weten.
Wie wordt er getroffen
- Aangepaste e-mailclients gebouwd op EWS Managed API
- Outlook-invoegtoepassingen met EWS-aanroepen (niet Graph-gebaseerd)
- Agenda synchronisatie applicaties (boekingen van ruimtes, planning)
- E-mail back-up en archiveringshulpmiddelen
- CRM / ATS e-mail synchronisatie integraties
- Elke app die
ExchangeService.NET-klasse
Wat stopt met werken
- NTLM en Kerberos authenticatie
- Basic Auth via EWS (al verouderd)
- EWS Managed API
Microsoft.Exchange.WebServices) - Streamingmeldingen via EWS
- EWS-improvisatie (
ExchangeImpersonation) - SOAP-bewerkingen: GetItem, FindItems, SyncFolderItems
Wat NIET wordt beïnvloed
- On-premises Exchange 2016 / 2019 / SE EWS
- Microsoft Graph API (dit is het migratiedoel)
- IMAP / SMTP voor basis verzend/ontvangst
- ActiveSync (afzonderlijk verouderd)
- Outlook desktop-app zelf (gebruikt eigen MAPI)
Migratietijdlijn Werkelijkheid
- Eenvoudige app met 1-2 EWS-bewerkingen: 1-2 weken
- App van gemiddelde complexiteit (e-mail + agenda + contacten): 4-8 weken
- Enterprise-app met EWS-impersonatie: 8-16 weken
- Leveranciersafhankelijkheid (wachten op bibliotheekupdate): niet beheerst
- Testen + UAT + implementatie in de productieomgeving: reken op 2 tot 4 weken
Op een krappe deadline voor EWS-migratie? De unieke e-mail-API van Unipile abstraheert Microsoft Graph (en Gmail en IMAP) zodat je eenmalig migreert en nooit meer aangepaste code voor providers hoeft aan te raken. Zie de Volledige e-mail API-gids voor architectuurpatronen.
Uw Migratie StartenOutlook REST API-eindpunten in 2026 (via Microsoft Graph)
Alle Outlook REST API-functionaliteit wordt nu geleverd via Microsoft Graph op https://graph.microsoft.com/v1.0. Hieronder staan de belangrijkste eindpunten voor e-mail, agenda en contacten, met de bijbehorende HTTP-methoden en een codevoorbeeld voor elke categorie.
E-mail-eindpunten
| Methode | Eindpunt | Beschrijving | Vereiste reikwijdte |
|---|---|---|---|
| GET | /ik/berichten |
Berichten in de inbox weergeven (ondersteunt $filter, $orderby, $top, $select) | Mail.lezen |
| GET | /me/berichten/{id} |
Een enkel bericht op basis van ID ophalen, inclusief de volledige tekst en headers | Mail.lezen |
| POST | /ik/e-mailVerzenden |
Stuur direct een nieuwe e-mail (geen concept opgeslagen) | Mail.verzenden |
| POST | /ik/berichten |
Stel een conceptbericht op (apart verzenden via /send) | Mail.ReadWrite |
| PATCH | /me/berichten/{id} |
Een bericht bijwerken (als gelezen markeren, verplaatsen, categorie wijzigen) | Mail.ReadWrite |
| DELETE | /me/berichten/{id} |
Een bericht permanent verwijderen | Mail.ReadWrite |
| GET | /ik/postvakken |
Alle e-mailmappen weergeven (Postvak IN, Verzonden, Concepten, aangepast) | Mail.lezen |
| GET | /ik/berichten/delta |
Incrementele synchronisatie - alleen gewijzigde berichten ophalen sinds de laatste synchronisatie | Mail.lezen |
// POST /me/sendMail - Verzenden via Outlook REST API (Microsoft Graph)
const response = wacht op fetch('https://graph.microsoft.com/v1.0/me/sendMail', {
methode: POST,
kopteksten: {
'Authorization': `Drager ${accessToken}`,
'Content-Type': "toepassing/json
},
lichaam: JSON.stringify({
message: {
onderwerp: 'Hallo van Microsoft Graph',
lichaam: { contentType: 'Tekst', inhoud: 'EWS-migratie voltooid!' },
aanOntvangers: [{ e-mailadres: { adres: 'user@example.com' } }]
},
opslaanInVerzondenItems: true
})
});
// 202 Geaccepteerd = succesvol verzondenKalender eindpunten
| Methode | Eindpunt | Beschrijving | Vereiste reikwijdte |
|---|---|---|---|
| GET | /me/evenementen |
Alle agenda-afspraken weergeven (ondersteunt $-filter op begin-/eindtijd) | Kalenders.Lezen |
| GET | /mij/agendaview |
Verkrijg gebeurtenissen in een tijdsbereik (startDateTime + endDateTime parameters) | Kalenders.Lezen |
| POST | /me/evenementen |
Nieuwe agenda-afspraak maken met deelnemers en herhaling | Agenda's.LezenSchrijven |
| GET | /ik/agenda's |
Alle gebruikersagenda's weergeven (primair, gedeeld, groep) | Kalenders.Lezen |
Contact Eindpunten
| Methode | Eindpunt | Beschrijving | Vereiste reikwijdte |
|---|---|---|---|
| GET | /ik/contacten |
Toon alle contactpersonen in de standaard contactmap | Contacten.Lezen |
| POST | /ik/contacten |
Nieuw contact aanmaken | Contacten.LezenSchrijven |
| GET | /ik/contactmappen |
Contactmappen weergeven | Contacten.Lezen |
Wil je één enkele API die Outlook REST (Microsoft Graph), Gmail en IMAP afhandelt? Unipile bundelt ze alle drie met één uniform eindpunt. Vergelijk aanbieders op e-mail API providers vergelijking.
Bouw met Unified APIOAuth 2.0-authenticatie: de enige weg vooruit
NTLM, Kerberos en Basic-verificatie zijn allemaal afgeschaft voor Microsoft 365. OAuth 2.0 is nu de verplichte verificatiemethode voor elk verzoek aan de Microsoft Graph API. Er is geen terugvaloptie, geen compatibiliteitsmodus en geen uitstel. Als uw toepassing nog steeds gebruikmaakt van verouderde verificatiestromen, wordt deze al geblokkeerd voor nieuwe tenants en zal deze voor alle tenants volledig uitvallen zodra de EWS-handhaving in oktober 2026 volledig is doorgevoerd.
Azure AD App Registratie: 5 Stappen
portal.azure.com - Azure Active Directory - App-registraties - Nieuwe registratie. Kies een naam, stel het ondersteunde acconttype in (single tenant, multitenant of persoonlijke accounts) en configureer een omleidings-URI.API-machtigingen, voeg Microsoft Graph-machtigingen toe. Kies voor machtigingen van het type ‘Gedelegeerd (gebruikerscontext)’ of ‘Toepassing (daemon)’, afhankelijk van uw gebruikssituatie. Bij de meeste e-mail- en agenda-integraties worden gedelegeerde machtigingen gebruikt.Certificaten en geheimen, maak een nieuw clientsecret aan. Kopieer de waarde meteen – deze wordt maar één keer weergegeven. Voor productie-apps is een certificaat veiliger dan een clientsecret.https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize met klant_id, bereik, omleiding_urien response_type=code. Na toestemming, ruil je de code in voor tokens bij het token-eindpunt.Mail.ReadWrite.All) vereis toestemming van de tenantbeheerder voordat een gebruiker toestemming kan geven. Gebruik hiervoor het admin consent-eindpunt: /beheerderstoestemming toegang met een beheerdersaccount voor huurders.Vereiste OAuth-bereiken voor Graph API
| Reikwijdte | Type | Gebruikscasus |
|---|---|---|
| Mail.lezen | Gedelegeerd | Berichten in de mailbox van de gebruiker lezen |
| Mail.ReadWrite | Gedelegeerd | E-mailberichten lezen en wijzigen |
| Mail.verzenden | Gedelegeerd | E-mail verzenden namens gebruiker |
| Agenda's.LezenSchrijven | Gedelegeerd | Lees en wijzig agenda-afspraken |
| Contacten.Lezen | Gedelegeerd | Gebruikerscontacten lezen |
| Mail.ReadWrite.All | Toepassing | Alle mailboxen lezen/schrijven (daemon-apps, vereist toestemming van de beheerder) |
| Agenda's.LezenSchrijven.Alles | Toepassing | Alle agenda’s lezen en bewerken (daemon-apps, vereist toestemming van de beheerder) |
| offline_access | Gedelegeerd | Vereist om een vernieuwingstoken te ontvangen voor langdurige toegang |
Verloop van de autorisatiecode - Voorbeeld in Node.js
// Stap 1: Bouw autorisatie-URL
const authUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/authorize?`
+ nieuw URLSearchParams({
client_id: CLIENT_ID,
response_type: 'code',
redirect\_uri: OMLEIDINGS_URI,
bereik: 'Mail.Lezen Mail.Verzenden Calendars.Lezen Schrijven offline_toegang',
reactie_modus: 'query'
});
// Stap 2: Wissel code in voor tokens
const tokenRes = wacht op fetch(
`https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,
{
methode: POST,
body: nieuw URLSearchParamsclient_id: CLIENT_ID,
client_geheim: CLIENT_SECRET,
code: authCode, redirect_uri: OMLEIDINGS_URI,
grant_type: 'autorisatiecode'
})
}
);
const { toegang_token, vernieuw_token } = wacht op tokenRes.json();
// Stap 3: Vernieuwen wanneer de access token verloopt (doorgaans 1 uur)
const verversRes = wacht op fetchtokenEndpoint, {
method: POST,
body: nieuw URLSearchParams({
client_id: CLIENT_ID,
client_secret: CLIENT_SECRET,
vernieuwingstoken: opgeslagenVerversToken,
grant_type: 'vernieuwingstoken'
})
});
vernieuwingstoken veilig in uw database en gebruik deze om nieuwe toegangstokens aan te vragen zonder dat de gebruiker opnieuw hoeft te authenticeren. Vernieuwingstokens kunnen na 90 dagen inactiviteit verlopen. Vraag altijd de offline_access scope om een vernieuwingstoken te ontvangen.
Migratie-checklist: EWS naar Microsoft Graph in 10 stappen
Microsoft heeft de strenge handhaving van de veroudering van EWS voor Exchange Online bevestigd op 1 oktober 2026. Er is geen respijtperiode, geen terugdraaimogelijkheid en geen compatibiliteitsbrug. Elke applicatie die nog steeds Exchange Web Services gebruikt voor Microsoft 365 zal op die datum defect raken.
Voorbeelden van codemigratie: EWS versus Microsoft Graph
Hieronder worden 4 veelvoorkomende bewerkingen naast elkaar vergeleken: de bestaande EWS SOAP-aanpak aan de linkerkant, het Microsoft Graph REST-equivalent aan de rechterkant. De verschuiving van uitgebreide XML naar schone JSON is direct duidelijk.
<soap:Envelope ns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
ZoekItem Doorloop="Ondiep"
xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
Standaard
<IndexedPageItemWeergave
MaxAantalTeruggegevenItems="10"
Verplaatsing="0"
BasisPunt="Begin"/>
<t:DistinguishedFolderId Ik="postvak"/>
GET /mij/berichten
?$select=onderwerp,van,receivedDateTime,bodyPreview
&$top=10
&$orderby=receivedDateTime aflopend
Autorisatie: Bearer {access_token}
// Reactie (JSON):
{
"waarde": [
{
"id": "AAMkAGI...",
"onderwerp": "Hallo",
"van": {
"e-mailadres": {
"adres": "sender@example.com"
}
},
"ontvangstDatumTijd": "27-05-2026T..."
}
],
"@odata.nextLink": "https://..."
}
AanmakenItem Berichtbeschikking="VerzendenEnKopieOpslaan"
xmlns="http://schemas.microsoft.com/.../messages">
Hallo van EWS
<t:Body Lichaamstype="HTML">
Berichttekst
to@example.com
POST /mij/e-mailVerzenden
Autorisatie: Bearer {access_token}
Content-Type: application/json
{
"bericht": {
"onderwerp": "Hallo van Graph",
"lichaam": {
"inhoudstype": "HTML",
"inhoud": "Berichttekst
"
},
"AanOntvangers": [
{
"e-mailadres": {
"adres": "to@example.com"
}
}
]
},
"opslaanInVerzondenItems": true
}
// Respons: HTTP 202 Geaccepteerd (geen body)
ZoekItem Doorloop="Ondiep">
AlleEigenschappen
<Kalenderweergave
MaxAantalTeruggegevenItems="50"
Startdatum="2026-05-01T00:00:00Z"
Einddatum="2026-05-31T23:59:59Z"
/>
<t:DistinguishedFolderId
Ik="kalender"/>
GET /mij/evenementen
?$select=onderwerp,begin,eind,locatie,organisator
&$filter=start/datumtijd ge '2026-05-01T00:00:00Z'
en eind/datumTijd '2026-05-31T23:59:59Z'
&$top=50
&$orderby=start/dateTime oplopend
Autorisatie: Bearer {access_token}
// Geeft een schone JSON-array van
// agenda-gebeurtenisobjecten - geen XML-parsing
<t:DistinguishedFolderId
Ik="postvak"/>
NieuweE-mailGebeurtenis
VerwijderdeGebeurtenis
Abonneren
POST /abonnementen
Autorisatie: Bearer {access_token}
Content-Type: application/json
{
"wijzigingstype": "aangemaakt,bijgewerkt,verwijderd",
"notificatieUrl": "https://jouwapp.com/webhook",
"bron": "/ik/berichten",
"vervaldatumTijd": "3 juni 2026 18:00:00 UTC",
"clientStatus": "jouw-geheime-staat"
}
// Graph POSTs naar jouw URL bij elke wijziging.
Abonnement vernieuwen vóór de vervaldatum.
// Geen persistente verbinding vereist.
Veelvoorkomende Vallenkuilen: Rechten, Snelheidslimieten, Throttling
Zelfs ervaren ontwikkelaars met Exchange Web Services lopen regelmatig tegen dezelfde problemen aan bij het migreren naar Microsoft Graph. Deze 6 valkuilen zijn verantwoordelijk voor de meerderheid van de productie-incidenten tijdens de migratie. Begrijp deze nu om later dagen aan debugging te besparen. Voor een breder perspectief op hoe deze uitdagingen zich verhouden tot andere providers, zie onze Vergelijking van e-mail API-providers.
| Type | Context | Admin-toestemming |
|---|---|---|
| Gedelegeerd | Gebruiker aangemeld | Soms |
| Toepassing | Geen gebruiker / daemon | Altijd |
HTTP 429 with a Opnieuw-Proberen-Na header met de wachttijd in seconden. Het negeren van deze header en direct opnieuw proberen resulteert in een langere ban. Implementeer altijd exponentiële backoff met de exacte Retry-After waarde.
@odata.nextLink in de reactie mis je stilzwijgend gegevens. Ga altijd door: als @odata.nextLink is aanwezig, doe nog een GET-verzoek naar die URL (het bevat de overslaan-token) totdat het veld afwezig is.
Mail.ReadWrite.All, Agenda's.LezenSchrijven.Allesen Gebruiker.Lees.Alles vereist dat een tenant-beheerder toestemming verleent voordat een gebruiker uw app kan autoriseren. Zonder toestemming van de beheerder retourneert de OAuth-stroom een AADSTS65001 fout. Gebruik de /beheerderstoestemming eindpunt tijdens app-onboarding voor zakelijke klanten.
deltaLink token op de laatst bezochte pagina. Sla deze token permanent op - dit is je synchronisatiecursor. Als je deze kwijtraakt, moet je een volledige synchronisatie uitvoeren. Hardcode nooit een tijdsbereik - gebruik de deltaLink om te voorkomen dat je duplicaten of gemiste wijzigingen verwerkt.
POST /mij/berichten/{id}/bijlagen/createUploadSessionen in stukken uploaden. Een poging om een grote bijlage inline te plaatsen resulteert in een Grote entiteit van het verzoek fout.
Sla de Migratiehoofdpijn Over: Geïntegreerde E-mail API Aanpak
Een volledige EWS-naar-Graph migratie voor een complexe applicatie kost 4 tot 8 weken aan engineeringtijd. Je moet Azure-apps registreren, OAuth-flows implementeren, tokenvernieuwing afhandelen, throttling beheren, elke SOAP-oproep herschrijven, foutafhandeling bijwerken en testen in verschillende omgevingen. En dat dan nog eens opnieuw doen wanneer Microsoft iets verandert.
Unipile abstraheert Microsoft Graph, Gmail en IMAP onder één uniforme API. U authenticeert uw gebruikers eenmalig via Unipile en leest/verstuurt e-mails, synchroniseert agenda's en beheert contacten via alle drie de providers met dezelfde endpoints – geen Azure app-registratie, geen OAuth-flows per provider, geen throttling-logica om te onderhouden. Zie onze Volledige e-mail API-handleiding en e-mail API provider vergelijking om het landschap te begrijpen.
50 regels Microsoft Graph versus 5 regels Unipile
// 1. Azure app registratie (portal.azure.com)
// 2. OAuth autorisatiecode-stroom
const authUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/authorize?`
+ nieuw URLSearchParamsclient_id: CLIENT_ID,
response_type: 'code',
redirect_uri: REDIRECT_URI,
scope: 'Mail.Read offline_access',
responsmodus: 'query'
});
// 3. Afhandelen van omleiding, code ruilen voor tokens
const tokenRes = wacht op fetch(`https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,
methode: POST,
body: nieuw URLSearchParamsclient_id: CLIENT_ID, client_secret: CLIENT_SECRET,
code: authCode, redirect_uri: REDIRECT_URI,
grant_type: 'autorisatiecode'
})
});
const { toegang_token, vernieuw_token } = wacht op tokenRes.json();
// 4. Opslaan + vernieuwen van tokens bij verlopen (elk uur)
// 5. Roep Graph aan met Bearer token
const resultaat = wacht op fetch('https://graph.microsoft.com/v1.0/me/messages?$top=10', ,
headers: { Autorisatie: `Bearer ${access_token}` }
});
// 6. Behandel throttling (HTTP 429 + Retry-After)
als (res.status === 429) {
const retryAfter = res.headers.krijgen('Opnieuw-na');
wacht op slaap(herprobeerNa * 1000);
// opnieuw proberen...
}
// 7. Pagina's via @odata.nextLink
const gegevens = wacht op res.json();
laat berichten = data.waarde;
terwijl (gegevens['@odata.nextLink']) { /* ... */ }
// Geen Azure app, geen OAuth flows om te implementeren,
// geen throttling-logica, geen tokenvernieuwing.
// Werkt voor Outlook EN Gmail EN IMAP.
const klant = nieuw UnipileClient(API_SLEUTEL);
const berichten = wacht op client.e-mail.lijstBerichten({
account_id: gebruikersaccountID, gekoppeld account
map: 'POSTVAK',
beperken: 10
});
// Zelfde code, zelfde reactieformaat
// voor Outlook, Gmail en IMAP.
// Unipile beheert OAuth, throttling,
// paginering, en token vernieuwing.
Outlook REST API & EWS - Veelgestelde vragen
Veelgestelde vragen over de uitfasering van de Outlook REST API, de beëindiging van EWS en migratie naar Microsoft Graph
Nee. De Outlook REST API (v2.0 en bèta) is door Microsoft stopgezet. Alle verzoeken naar de oude Outlook REST-eindpunten mislukken nu. De officiële vervanging is Microsoft Graph, die alle dezelfde e-mail- en agendafuncties plus nog veel meer omvat. Als uw toepassing nog steeds Outlook REST-eindpunten gebruikt, is migratie naar Graph niet optioneel.
De Outlook REST API was een speciale REST API die alleen Outlook-mailboxbewerkingen omvatte. Microsoft Graph is de uniforme API voor het gehele Microsoft 365-ecosysteem: Outlook-e-mail, agenda, contacten, Teams, SharePoint, OneDrive en meer. Beide maken gebruik van OAuth 2.0-authenticatie, maar Graph gebruikt de enkele basis-URL https://graph.microsoft.com/v1.0 en biedt een consistentere, functierijkere interface dan de stopgezette Outlook-specifieke eindpunten.
Microsoft heeft ingesteld 1 oktober 2026 als de definitieve uiterste datum voor het uitfaseren van EWS in Exchange Online (Microsoft 365). Na deze datum werkt EWS niet meer voor Microsoft 365-mailboxen. Er is geen respijtperiode en er is geen verlenging aangekondigd. EWS blijft wel werken voor lokale Exchange Server-installaties, die niet onder deze deadline vallen.
Microsoft Graph is de officiële vervanging voor EWS. Elke EWS-bewerking heeft een Graph-equivalent: ZoekVoorwerp wordt GET /mij/berichten, MaakItem (e-mail verzenden) POST /mij/e-mailVerzenden, streaming meldingen worden Graph webhooks via POST /abonnementen. Authenticatie verandert van NTLM/Kerberos/Basic Auth naar OAuth 2.0 via Azure AD. Voor teams die een eenvoudigere route nodig hebben, een geünificeerde e-mail API zoals Unipile abstractt alle drie de providers onder één SDK.
Nee. De Outlook REST API v2.0 is buiten gebruik gesteld. Aanvragen naar die eindpunten mislukken met fouten. Microsoft Graph is het enige ondersteunde pad voor integratie van Outlook e-mail en agenda. Alle nieuwe integraties moeten gericht zijn op https://graph.microsoft.com/v1.0 en gebruik OAuth 2.0-authenticatie.
De inspanning is afhankelijk van de complexiteit van uw EWS-implementatie. Een eenvoudige integratie met een paar lees-/schrijfbewerkingen duurt doorgaans 1-2 weken. Een complexe applicatie met streamingmeldingen, delta synchronisatie, meerdere mapbewerkingen en uitgebreide foutafhandeling kan 4-8 weken duren. De migratie vereist: Azure AD app registratie, OAuth 2.0 implementatie, endpoint-voor-endpoint vervanging, throttling logica, paginering updates en wijzigingen in foutformaten. Een alternatief is om Unipile's Microsoft Graph-abstractie, die het grootste deel van deze complexiteit automatisch afhandelt.
De deadline van oktober 2026 is specifiek voor Exchange Web Services (EWS) gebruik in Exchange Online. Voor Outlook-invoegtoepassingen die gebruikmaken van de Office.js-API geldt een apart tijdschema. Microsoft is echter bezig met het uitfaseren van verouderde COM- en VSTO-invoegtoepassingen ten gunste van webgebaseerde Office-invoegtoepassingen. Als uw invoegtoepassing intern EWS-aanroepen doet, zullen deze aanroepen in oktober 2026 niet meer werken, ongeacht het framework van de invoegtoepassing. Raadpleeg de Microsoft 365-roadmap voor de meest recente richtlijnen die specifiek zijn voor uw type invoegtoepassing.
Nu de Outlook REST API is stopgezet, zijn de relevante bereiken voor Microsoft Graph. Kern e-mail scopes: Mail.lezen (berichten lezen), Mail.verzenden (e-mail verzenden), Mail.ReadWrite (berichten lezen en wijzigen), Agenda's.LezenSchrijven (toegang tot agenda), Contacten.Lezen (contacten). Altijd inbegrepen offline_access om een vernieuwingstoken te ontvangen. Toepassingsniveau-scopes zoals Mail.ReadWrite.All toestemming van de tenantbeheerder vereisen en mag alleen worden gebruikt voor daemon-scenario's zonder gebruikerscontext. Zie onze Microsoft Graph OAuth-gids voor een complete installatieworkthrough.
Microsoft Graph dwingt snelheidsbeperkingen af met ongeveer 10.000 verzoeken per 10 minuten per applicatie per tenant. Wanneer er voor de API te veel verzoeken worden gedaan, retourneert deze HTTP 429 Te veel verzoeken with a Opnieuw-Proberen-Na header die het exacte aantal seconden specificeert om te wachten. De kritische regel: geef altijd gehoor aan de Opnieuw-Proberen-Na exacte waarde. Opnieuw proberen voordat dat venster sluit, verlengt de throttling-periode. Voor multi-tenant SaaS-applicaties waar elke tenant afzonderlijke limieten heeft, heeft throttling bij de ene tenant geen invloed op andere. Vergelijk ook IMAP als alternatief als throttling op schaal een zorg is.
Unipile is een unificerende e-mail-API dat omvat Microsoft Graph, Gmail en IMAP onder één SDK. In plaats van Microsoft Graph OAuth-stromen te implementeren, toegangstokens te beheren, throttling af te handelen en code per provider te schrijven, verbind je de accounts van je gebruikers via Unipile en gebruik je één consistente API voor alle drie de providers. Dit is met name effectief voor SaaS-applicaties die Outlook en Gmail tegelijkertijd moeten ondersteunen zonder afzonderlijke integratiecode voor elke te onderhouden. Unipile functioneert als een onafhankelijke technische tussenpersoon, handelt namens elke geauthenticeerde gebruiker en is niet gelieerd aan of goedgekeurd door Microsoft.
Sla de EWS-migratie volledig over. Ons team staat voor u klaar.
Nu bouwen