Von der Outlook REST API & EWS zu Microsoft Graph: Der Migrationsleitfaden 2026 für Entwickler

Unipile - Inhaltsverzeichnis
2026 Migrationsleitfaden

Von Outlook REST API Und EWS zu Microsoft Graph

Die Outlook REST API v2.0 ist weg (März 2024). Exchange Web Services (EWS) erreicht sein endgültiges End-of-Life am 1. Oktober 2026. Diese Anleitung behandelt jeden Endpunkt, jeden OAuth-Flow und jeden Migrationsschritt, den Sie vor dem Stichtag umsetzen müssen.

EWS-Einsendeschluss: 1. Oktober 2026. Microsoft hat bestätigt, dass es keine Kulanzfrist für Exchange Online gibt. Beginnen Sie jetzt mit Ihrer Migration.

Graph-Mail.js
// Outlook REST API über Microsoft Graph // Ersetzen Sie EWS SOAP durch einen einzigen REST-Aufruf const response = await fetch( 'https://graph.microsoft.com/v1.0/me/messages', { Kopfzeilen: { 'Authorization': Träger ${accessToken}, 'Content-Type': 'application/json' } } ); const { value: Nachrichten } = await Antwort.json(); Konsole.log(`Es wurden ${messages.length} E-Mails abgerufen`);
GET /me/messages – 200 OK – 12 Nachrichten zurückgegeben
Was ist das

Was ist die Outlook REST-API im Jahr 2026?

Der Begriff "Outlook REST API" sorgt im Jahr 2026 für Verwirrung, da Microsoft ihn im letzten Jahrzehnt für mindestens drei unterschiedliche Dinge verwendet hat. Hier ist die genaue aktuelle Bedeutung, warum er für Entwickler immer noch wichtig ist und was sich geändert hat.

Definition: Im Jahr 2026 ist "Outlook REST API" ein umgangssprachlicher Begriff, der sich auf die E-Mail-Endpunkte von Microsoft Graph bezieht (https://graph.microsoft.com/v1.0/me/messages). Die ursprüngliche dedizierte Outlook REST-API v2.0 (outlook.office.com/api/v2.0wurde am 31. März 2024 endgültig stillgelegt und gibt für alle Anfragen den HTTP-Statuscode 410 Gone zurück. Microsoft Graph ist nun die einzige, einheitliche API für E-Mails, Kalender und Kontakte in Microsoft 365, Exchange Online, Outlook.com und Teams.

Das ist im Jahr 2026 aus zwei Gründen wichtig: Erstens, jede Anwendung, die noch auf die alte outlook.office.com/api/ Die Domain ist defekt. Zweitens stehen Anwendungen, die Exchange Web Services (EWS) verwenden – das ältere SOAP-basierte Protokoll –, bis zum 1. Oktober 2026 für Exchange Online unter einer strikten Durchsetzungsfrist. Das Verständnis der korrekten Nomenklatur ist der erste Schritt zu einer erfolgreichen Migration.

Namensklärung
Name Protokoll Basis-URL Stand 2026
Outlook REST API v2.0 REST / JSON outlook.office.com/api/v2.0 Tot (März 2024)
Exchange Web Services (EWS) SOAP / XML outlook.office365.com/EWS/ EoL Okt 2026
Microsoft Graph Mail API REST / JSON graph.microsoft.com/v1.0/me/nachrichten Live – Benutz es
MAPI / Outlook COM COM / Binär Nur für den Desktop Nur für den Desktop

Für einen tiefen Einblick in die Microsoft Graph-Integration über E-Mails hinaus (Webhooks, Delta-Abfragen, freigegebene Postfächer) siehe Microsoft Graph API E-Mail-Integrationsanleitung. Die Säulenanleitung, die alle E-Mail-API-Muster abdeckt, befindet sich unter E-Mail-API-Entwicklerhandbuch.

Bauen auf Outlook im Jahr 2026? Unipile bietet Ihnen eine einheitliche E-Mail-API, die Microsoft Graph, Gmail und IMAP mit einer einzigen Integration verarbeitet – keine migrationsbedingten Probleme pro Anbieter.

Bauen Sie es mit Unipile
Zeitstrahl

Von v2.0 zu Microsoft Graph: Eine kurze Geschichte

Die Abschaffung der Outlook REST API v2.0 erfolgte nicht plötzlich – Microsoft kündigte sie Jahre im Voraus an und gewährte mehrere Fristverlängerungen. Das Verständnis dieser Historie hilft Ihnen, vorauszusehen, was Microsoft mit EWS tun wird und warum die Frist im Oktober 2026 als endgültig betrachtet wird.

2015 - 2017
Outlook REST API v2.0 startet

Microsoft führt eine REST-basierte API bei outlook.office.com/api/v2.0 Als moderne Alternative zu EWS können Entwickler E-Mails lesen, Kalendertermine verwalten und auf Kontakte über JSON über HTTPS zugreifen – eine deutliche Verbesserung gegenüber SOAP/XML.

2019
Microsoft Graph wird zur vereinheitlichten API

Microsoft startet Microsoft Graph als zentralen Endpunkt, der alle Microsoft 365-Dienste abdeckt – E-Mail, Kalender, Kontakte, Teams, OneDrive, SharePoint und mehr. graph.microsoft.com Domänen werden zur kanonischen Art, über programmatischen Zugriff auf Microsoft-Daten zuzugreifen.

November 2020
Ankündigung zur Veralterung der Outlook REST API v2.0

Microsoft gibt offiziell die Abschaffung der Outlook REST API v2.0 (und v1.0 Beta) bekannt und nennt Microsoft Graph als Ersatz. Die Ankündigung besagt ausdrücklich, dass die alten Endpunkte nicht mehr funktionieren werden – mit einer Frist von "Ende 2022" zu diesem Zeitpunkt.

2022 - 2023
Mehrere Fristverlängerungen

Microsoft verlängert die Frist zweimal – zuerst bis November 2022, dann bis März 2023, dann bis März 2024. Jede Verlängerung ging mit der Warnung einher: "Dies ist die letzte Verlängerung." Viele Entwickler nahmen diese Verlängerungen als Signal, dass die Fristen flexibel seien. Die EWS-Frist im Oktober 2026 wird strenger durchgesetzt.

31. März 2024
Outlook REST API v2.0 dauerhaft eingestellt

Die outlook.office.com/api/v2.0 Der Endpunkt gibt bei allen Anfragen den HTTP-Status 410 Gone zurück. Es gibt keine Erweiterungen mehr. Anwendungen, die diese URLs weiterhin aufrufen, funktionieren nicht mehr. "Outlook REST API" steht bei korrekter Verwendung nun für Microsoft Graph. Die vollständige Integrationsanleitung für die E-Mail-Endpunkte von Microsoft Graph finden Sie unter Microsoft Graph API E-Mail-Integrationsanleitung.

1. Oktober 2026
EWS-End-of-Life für Exchange Online

Exchange Web Services werden für Exchange Online (Microsoft 365 Cloud) den Dienst einstellen. Microsoft hat bestätigt, dass dies ein festes Durchsetzungsdatum ist. Lokale Exchange-Server sind nicht betroffen. Alle cloudbasierten Anwendungen, die SOAP/XML EWS-Aufrufe verwenden, müssen bis zu diesem Datum auf Microsoft Graph migriert worden sein.

Warum diese Migration unvermeidlich war

Moderne OAuth 2.0 Sicherheit

Die älteren APIs verließen sich auf Basic Auth und veraltete Tokenformate. Microsoft Graph schreibt OAuth 2.0 mit Azure Active Directory vor, das mit Zero-Trust-Sicherheitsmodellen übereinstimmt und Risiken bei der Offenlegung von Anmeldeinformationen eliminiert.

Einheitliche Identitätsplattform

Microsoft Graph bündelt den Zugriff auf alle Microsoft 365-Dienste über eine einzige Identitätsplattform. Eine App-Registrierung, ein Token, ein Endpunktpräfix – im Gegensatz zur Pflege separater Anmeldedaten für jede einzelne Legacy-API.

Umfangreichere Funktionen

Microsoft Graph bietet Funktionen, über die EWS nie verfügte: Delta-Abfragen für die inkrementelle Synchronisierung, Änderungsbenachrichtigungen (Webhooks), die Suche über alle Inhalte hinweg, die Teams-Integration sowie Graph-spezifische Analysen – alles über eine übersichtliche REST/JSON-Schnittstelle.

Unipile - EWS Lebensende
Kritische Frist

Die tatsächliche Frist für 2026: Ende der Lebensdauer von EWS (1. Oktober 2026)

Während die Einstellung der Outlook REST API v2.0 nur eine relativ kleine Gruppe von Entwicklern betraf, ist das Ende der Unterstützung für EWS in Exchange Online ein Ereignis von weitaus größerer Tragweite. Tausende von Unternehmensanwendungen, E-Mail-Clients, Kalendersynchronisierungstools und Backup-Lösungen sind nach wie vor auf Exchange Web Services angewiesen. Der 1. Oktober 2026 ist der endgültige Stichtag – hier erfahren Sie, was Sie wissen müssen.

EWS-Enddaten: 1. Oktober 2026 – keine Kulanzfrist

Umfang Nur Exchange Online (Microsoft 365 Cloud). Lokale Exchange-Server sind nicht betroffen. Durchsetzung Microsoft bestätigte, dass dies ein harter Cutover ist – EWS-Anfragen an Exchange Online werden nicht mehr bearbeitet. Was bricht: alle SOAP/XML-Aufrufe an outlook.office365.com/EWS/Exchange.asmx, einschließlich Apps, die die EWS Managed API .NET-Bibliothek verwenden, Kerberos/NTLM-Authentifizierungsflüsse und Basic Auth über EWS.

Wer ist betroffen

  • Benutzerdefinierte Mail-Clients, die auf der EWS Managed API basieren
  • Outlook-Add-ins, die EWS-Aufrufe (nicht Graph-basiert) verwenden
  • Kalendersynchronisierungsanwendungen (Raumbuchung, Terminplanung)
  • E-Mail-Backup- und Archivierungs-Tools
  • CRM / ATS E-Mail-Synchronisierungsintegrationen
  • Jede App, die Exchange-Dienst .NET-Klasse

Was funktioniert nicht

  • NTLM- und Kerberos-Authentifizierung
  • Basic Auth über EWS (bereits veraltet)
  • EWS Managed API (Microsoft.Exchange.WebServices)
  • Streaming-Benachrichtigungen über EWS
  • EWS-IdentitätsdiebstahlExchangeImpersonation)
  • SOAP-Operationen: GetItem, FindItems, SyncFolderItems

Was NICHT betroffen ist

  • On-Premises Exchange 2016 / 2019 / SE EWS
  • Microsoft Graph-API (dies ist das Migrationsziel)
  • IMAP / SMTP für grundlegendes Senden/Empfangen
  • ActiveSync (separat veraltet)
  • Outlook-Desktopanwendung selbst (verwendet proprietäres MAPI)

Migrations-Zeitstrahl Realität

  • Einfache App mit 1-2 EWS-Operationen: 1-2 Wochen
  • Mittlere Komplexität App (E-Mail + Kalender + Kontakte): 4-8 Wochen
  • Unternehmensanwendung mit EWS-Impersonation: 8-16 Wochen
  • Anbieterabhängigkeit (Warten auf Bibliotheksupdate): unkontrolliert
  • Tests + UAT + Produktionsbereitstellung: 2-4 Wochen zusätzlich

Sie haben nur wenig Zeit für die EWS-Migration? Die einheitliche E-Mail-API von Unipile abstrahiert Microsoft Graph (und Gmail und IMAP), sodass Sie nur einmal migrieren und nie wieder an anbieterspezifischen Code arbeiten müssen. Sehen Sie sich die Vollständiger E-Mail-API-Leitfaden für Architekturmuster.

Beginnen Sie Ihre Migration
API-Referenz

Outlook REST API Endpunkte im Jahr 2026 (über Microsoft Graph)

Alle Outlook REST API-Funktionalitäten werden jetzt über Microsoft Graph unter bereitgestellt https://graph.microsoft.com/v1.0. Im Folgenden finden Sie die wichtigsten Endpunkte für E-Mails, Kalender und Kontakte mit ihren HTTP-Methoden und einem Codebeispiel für jede Kategorie.

Mail-Endpunkte

Methode Endpunkt Beschreibung Erforderlicher Umfang
GET /ich/nachrichten Nachrichten im Posteingang auflisten (unterstützt $filter, $orderby, $top, $select) Mail.Lesen
GET /ich/nachrichten/{id} Einzelne Nachricht nach ID abrufen mit vollständigem Inhalt und Headern Mail.Lesen
POST /ich/E-Mail senden Senden Sie eine neue E-Mail sofort (kein Entwurf gespeichert) Mail.Senden
POST /ich/nachrichten Entwurf einer Nachricht (separat per /send senden) Mail.ReadWrite
PATCH /ich/nachrichten/{id} Nachricht aktualisieren (als gelesen markieren, verschieben, Kategorien ändern) Mail.ReadWrite
DELETE /ich/nachrichten/{id} Eine Nachricht dauerhaft löschen Mail.ReadWrite
GET /me/mailFolders Alle Mail-Ordner auflisten (Posteingang, Gesendet, Entwürfe, benutzerdefiniert) Mail.Lesen
GET /ich/nachrichten/delta Inkrementelle Synchronisierung – nur geänderte Nachrichten seit der letzten Synchronisierung abrufen Mail.Lesen
send-mail.js
// POST /me/sendMail - Senden über die Outlook REST API (Microsoft Graph) const response = await fetch('https://graph.microsoft.com/v1.0/me/sendMail', { Methode: 'POST', Kopfzeilen: { 'Authorization': Träger ${accessToken}, 'Content-Type': 'application/json' }, Körper: JSON.stringify({ message: { Thema: 'Hallo von Microsoft Graph', Körper: { Inhaltstyp: 'Text', Inhalt: 'EWS-Migration abgeschlossen!' }, AnEmpfänger: [{ E-Mail-Adresse: { Adresse: 'user@example.com' } }] }, inGesendeteObjekteSpeichern: true }) }); 202 Akzeptiert = erfolgreich gesendet

Kalender-Endpunkte

Methode Endpunkt Beschreibung Erforderlicher Umfang
GET /ich/ereignisse Alle Kalendertermine auflisten (unterstützt $-Filter nach Start-/Endzeit) Kalender.Lesen
GET /ich/Kalenderansicht Ereignisse in einem Zeitbereich abrufen (Parameter startDateTime + endDateTime) Kalender.Lesen
POST /ich/ereignisse Neuen Kalendertermin mit Teilnehmern und Wiederholung erstellen Kalender.LesenSchreiben
GET /me/kalender Alle Nutzerkalender auflisten (primär, geteilt, Gruppen) Kalender.Lesen

Kontaktenpunkte

Methode Endpunkt Beschreibung Erforderlicher Umfang
GET /ich/kontakte Alle Kontakte im Standard-Kontaktordner auflisten Kontakte.Lesen
POST /ich/kontakte Neuen Kontakt erstellen Kontakte.LesenSchreiben
GET /me/Kontaktordner Kontaktordner auflisten Kontakte.Lesen

Willst du eine einzige API, die Outlook REST (Microsoft Graph), Gmail und IMAP verarbeitet? Unipile fasst alle drei mit einem einzigen, einheitlichen Endpunkt zusammen. Vergleichen Sie Anbieter unter Vergleich von E-Mail-API-Anbietern.

Mit der einheitlichen API entwickeln
Authentifizierung

OAuth 2.0-Authentifizierung: Der einzig gangbare Weg

NTLM, Kerberos und Basic Authentication sind für Microsoft 365 nicht mehr verfügbar. OAuth 2.0 ist nun die obligatorische Authentifizierungsmethode für jede Microsoft Graph API-Anfrage. Es gibt keine Rückfalloption, keinen Kompatibilitätsmodus und keine Verlängerung des Zeitplans. Wenn Ihre Anwendung noch Legacy-Authentifizierungsflüsse verwendet, ist sie für neue Mandanten bereits gesperrt und wird für alle Mandanten vollständig unterbrochen, wenn die EWS-Durchsetzung im Oktober 2026 abgeschlossen ist.

Legacy-Authentifizierungsstatus (Mai 2026): NTLM und Kerberos sind für Exchange Online vollständig deaktiviert. Die Basisauthentifizierung wurde für Exchange Online im Oktober 2022 eingestellt. OAuth 2.0 über Azure AD ist die einzige akzeptierte Authentifizierungsmethode für Microsoft Graph.

Azure AD App-Registrierung: 5 Schritte

01
App-Registrierung in Azure AD erstellen
Geh portal.azure.com - Azure Active Directory - App-Registrierungen - Neue Registrierung. Wählen Sie einen Namen, legen Sie den unterstützten Kontotyp (Einzelmandant, Mehrfachmandant oder persönliche Konten) fest und konfigurieren Sie eine Weiterleitungs-URI.
02
API-Berechtigungen konfigurieren
Unter API-Berechtigungen, füge Microsoft Graph-Berechtigungen hinzu. Wähle Delegierte (Benutzerkontext) oder Anwendungs- (Daemon) Berechtigungen je nach Anwendungsfall. Die meisten E-Mail-/Kalenderintegrationen verwenden Delegierte Berechtigungen.
03
Einen Clients Secret (oder ein Zertifikat) erstellen
Unter Zertifikate & Geheimnisse, erstellen Sie ein neues Clients-Geheimnis. Kopieren Sie den Wert sofort – er wird nur einmal angezeigt. Für Produktions-Apps ist ein Zertifikat sicherer als ein Clients-Geheimnis.
04
Implementieren Sie den Autorisierungscode-Flow
Benutzer weiterleiten zu https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize mit client_id, Umfang, redirect_uriund Antworttyp=Code. Nach der Zustimmung tauschen Sie den Code am Token-Endpunkt gegen Token aus.
05
Administratorzustimmung anfordern, falls erforderlich
Einige Bereiche (wie Mail.ReadWrite.All) die Zustimmung des Mandantenadministrators erfordern, bevor ein Benutzer autorisieren kann. Verwenden Sie für diese den Endpunkt für die Administratorenzustimmung: /adminzustimmung mit einem Tenant-Administrator-Konto arbeiten.

Erforderliche OAuth-Bereiche (Scopes) für die Graph-API

Horizontal scrollen, um die vollständige Tabelle anzuzeigen
Umfang Typ Anwendungsfall
Mail.Lesen Delegiert Benutzermeldungen im Postfach lesen
Mail.ReadWrite Delegiert Postfächer lesen und bearbeiten
Mail.Senden Delegiert E-Mail im Namen des Benutzers senden
Kalender.LesenSchreiben Delegiert Kalenderereignisse lesen und ändern
Kontakte.Lesen Delegiert Benutzerkontakte lesen
Mail.ReadWrite.All Anmeldung Alle Mailboxen lesen/schreiben (Daemon-Apps, erfordert Admin-Zustimmung)
Kalender.LesenSchreiben.Alle Anmeldung Auf alle Kalender zugreifen (Daemon-Apps, erfordert die Zustimmung des Administrators)
Offline-Zugriff Delegiert Erforderlich zum Empfang eines Aktualisierungstokens für langlebigen Zugriff

Autorisierungscode-Fluss - Node.js Beispiel

JavaScript (Node.js)
// Schritt 1: Autorisierungs-URL erstellen
const authUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/authorize?`
  + new URLSearchParamsclient_id: CLIENT_ID,
    response_type: 'Code',
    redirect_uri: UMLEITUNGS_URI,
    Geltungsbereich: 'Mail.Read Mail.Send Calendars.ReadWrite offline_access',
    antwortmodus: 'Anfrage'
  });

// Schritt 2: Code gegen Token austauschen
const tokenRes = await fetch(
  `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,
  {
    Methode: 'POST',
    körper: new URLSearchParamsclient_id: CLIENT_ID,
      client_geheimnis: CLIENT_SECRET,
      code: Autorisierungscode,
      redirect_uri: UMLEITUNGS_URI,
      grant_type: 'autorisierungscode'
    })
  }
);
const { access_token, refresh_token } = await tokenRes.json();

// Schritt 3: Aktualisieren, wenn das Zugriffstoken abläuft (typischerweise 1 Stunde)
const refreshRes = await fetchtokenEndpoint, {
  Methode: 'POST',
  body: new URLSearchParamsclient_id: CLIENT_ID,
    client_secret: CLIENT_SECRET,
    aktualisierungs_token: gespeicherter_aktualisierungstoken,
    grant_type: 'Aktualisierungstoken'
  })
});
Verwaltung von Refresh-Tokens: Microsoft Graph-Zugriffstoken laufen nach 1 Stunde ab. Speichern Sie das Aktualisierungsschlüssel sicher in Ihrer Datenbank gespeichert und zur Anforderung neuer Zugriffstoken verwendet werden, ohne dass der Benutzer sich erneut authentifizieren muss. Refresh-Token können nach 90 Tagen Inaktivität ablaufen. Fordern Sie immer die Offline-Zugriff Berechtigung zum Erhalt eines Aktualisierungstokens.
Aktionsplan

Migrations-Checkliste: Von EWS zu Microsoft Graph in 10 Schritten

Microsoft hat die strikte Durchsetzung der Stilllegung von EWS für Exchange Online zum 1. Oktober 2026 bestätigt. Es gibt keine Kulanzzeit, keine Rückfalloption und keine Kompatibilitätsbrücke. Jede Anwendung, die noch Exchange Web Services für Microsoft 365 nutzt, wird an diesem Datum ausfallen.

Feste Frist: 1. Oktober 2026. Keine Erweiterungen. Kein Kompatibilitätsmodus. Planen Sie Ihre Migration jetzt – die vollständige Migration einer komplexen EWS-Anwendung zu Microsoft Graph kann 4–8 Wochen dauern.
01
Überprüfen Sie Ihre aktuelle EWS-Nutzung
Inventarisieren Sie jeden EWS-Aufruf in Ihrer Codebasis: Mail-Operationen, Kalendersynchronisierung, Kontaktanfragen, Push-/Pull-/Streaming-Benachrichtigungen. Dies bestimmt Ihren Migrationsumfang und Ihre Aufwandsschätzung.
02
Azure AD-App registrieren und Bereiche definieren
Erstellen Sie Ihre App-Registrierung im Azure-Portal. Definieren Sie die minimal erforderlichen Microsoft Graph-Bereiche für Ihren Anwendungsfall. Fordern Sie nur das an, was Sie benötigen – vermeiden Sie übermäßige Berechtigungen.
03
EWS-Operationen auf Graph-Endpunkte abbilden
Erstelle eine Übersetzungstabelle: FindItem wird zu GET /me/messages, CreateItem wird zu POST /me/sendMail, FindAppointments wird zu GET /me/events. Microsoft stellt eine offizielle EWS-zu-Graph-Zuordnungsanleitung bereit.
04
Ersetzen Sie WCF/SOAP durch REST HTTP-Aufrufe
EWS verwendet SOAP über HTTP. Microsoft Graph verwendet Standard-REST mit JSON. Entfernen Sie alle WCF-Proxyklassen, SOAP-XML-Serialisierung und EWS Managed API-Abhängigkeiten aus Ihrer Codebasis.
05
Authentifizierung von Legacy-Protokollen zu OAuth 2.0 migrieren
Ersetzen Sie NTLM, Kerberos oder Basic Auth durch den OAuth 2.0-Authentifizierungscodefluss. Implementieren Sie eine Token-Aktualisierungslogik mit dem Geltungsbereich offline_access für eine langlebige Zugriffserhaltung.
06
Test im Dev-Mandanten mit Microsoft Graph Explorer
Verwenden Sie den Graph Explorer (developer.microsoft.com/graph/graph-explorer), um API-Aufrufe zu prototypisieren und zu testen, bevor Sie Code schreiben. Richten Sie einen separaten Entwickler-Mandanten ein, um das Testen von Produktionspostfächern zu vermeiden.
07
Definieren Sie Delta-Abfragen für die inkrementelle Synchronisierung
Ersetzen Sie EWS SyncFolderItems durch Graph Delta-Abfragen (GET /me/messages/delta). Speichern Sie das DeltaLink-Token, um eine effiziente inkrementelle Synchronisierung zu ermöglichen – es werden nur Änderungen seit der letzten Abfrage zurückgegeben.
08
Drosselung behandeln: HTTP 429 und Retry-After
Microsoft Graph erzwingt strenge Ratenbegrenzungen. Implementieren Sie exponentielles Backoff: Wenn Sie HTTP 429 erhalten, lesen Sie den Retry-After-Header und pausieren Sie für genau diese Dauer, bevor Sie es erneut versuchen.
09
Fehlerbehandlung für das Graph-Fehlerformat aktualisieren
Graph-Fehler verwenden ein anderes Format als EWS-SOAP-Fehler. Parsen Sie das JSON-Fehlerobjekt: { "error": { "code": "...", "message": "..." } }. Aktualisieren Sie entsprechend Ihre gesamte Fehlerbehandlung und Protokollierung.
Deadline
10
Produktionsumstellung vor dem 1. Oktober 2026
Planen Sie Ihren Produktionsumstieg mindestens 4 Wochen vor dem Stichtag. Betreiben Sie EWS und Graph während einer Übergangsphase parallel, um die Korrektheit zu überprüfen, bevor Sie die EWS-Schicht vollständig stilllegen.
Migrieren Sie zu Unipile und 8 von 10 Schritten überspringen - Keine Azure-App-Registrierung, keine OAuth-Flows, keine Throttling-Logik zu verwalten.
Jetzt bauen
Code-Beispiele

Code-Migrationsbeispiele: EWS vs. Microsoft Graph

Im Folgenden werden 4 gängige Operationen nebeneinander verglichen: der alte EWS SOAP-Ansatz auf der linken Seite, das Microsoft Graph REST-Äquivalent auf der rechten Seite. Der Übergang von ausführlichem XML zu übersichtlichem JSON ist sofort ersichtlich.

1 Posteingangsnachrichten lesen
EWS - FindItem SOAP Veraltet
<soap:Umschlag xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  
    Gegenstand finden Durchlaufen="Oberflächlich"
      xmlns="http://schemas.microsoft.com/exchange/services/2006/nachrichten">
      
        Standard
      </Form
      <IndexedPageItemView
        MaxAnzahlZurückgegebenerEinträge="10"
        Offset="0"
        Basispunkt="Anfang"/>
      
        <t:DistinguishedFolderId Id="Posteingang"/>
      
    </GegenstandFinden
  
Microsoft Graph REST Aktuell
GET /me/messages
  ?$select=Betreff,Von,Empfangsdatum und -uhrzeit,Vorschau des Textes
  &$top=10
  &$orderby=receivedDateTime absteigend

Autorisierung: Bearer {access_token}

// Antwort (JSON):
{
  "Wert": [
    {
      "id": "AAMkAGI...",
      "Betreff": "Hallo",
      "von": {
        "E-Mail-Adresse": {
          "Adresse": "sender@example.com"
        }
      },
      "Empfangsdatum-Zeit": ""27.05.2026 um ...""
    }
  ],
  "@odata.nextLink": "https://..."
}
2 Senden Sie eine E-Mail
EWS - CreateItem SOAP Veraltet
<EintragErstellen Nachrichtenverteilung="SendenUndKopieSpeichern"
  xmlns="http://schemas.microsoft.com/.../messages">
  
    
      Hallo von EWS
      <t:Rumpf Körpertyp="HTML">
        

Nachrichteninhalt

to@example.com
Microsoft Graph REST Aktuell
POST /me/sendMail
Autorisierung: Bearer {access_token}
Inhaltstyp: Anwendung/JSON

{
  "Nachricht": {
    "Betreff": "Hallo von Graph",
    "Körper": {
      "Inhaltstyp": "HTML",
      "Inhalt": "

Nachrichteninhalt

"
}, "anEmpfänger": [ { "E-Mail-Adresse": { "Adresse": "to@example.com" } } ] }, "in gesendete Elemente speichern": true } // Antwort: HTTP 202 Accepted (kein Hauptteil)
3 Kalenderereignisse abrufen
EWS - Termine finden SOAP Veraltet
Gegenstand finden Durchlaufen="Oberflächlich">
  
    AlleEigenschaften
  </Form
  <Kalenderansicht
    MaxAnzahlZurückgegebenerEinträge="50"
    Startdatum="2026-05-01T00:00:00Z"
    Enddatum="2026-05-31T23:59:59Z"
  />
  
    <t:DistinguishedFolderId
      Id="Kalender"/>
  
</GegenstandFinden
Microsoft Graph REST Aktuell
GET /me/events
  ?$select=Thema,Beginn,Ende,Ort,Organisator
  &$filter=start/dateTime ge '2026-05-01T00:00:00Z'
    und ende/zeitStempel le '2026-05-31T23:59:59Z'
  &$top=50
  &$orderby=start/datum asc

Autorisierung: Bearer {access_token}

// Gibt ein sauberes JSON-Array von zurück
// Kalenderereignisobjekte - keine XML-Verarbeitung
4 Echtzeitänderungen abonnieren
EWS - Streaming-Benachrichtigungen Veraltet

  
    
      <t:DistinguishedFolderId
        Id="Posteingang"/>
    
    
      NeueE-MailEreignis
      GelöschtesEreignis
    
  
Abonnieren



Microsoft Graph Webhooks Aktuell
POST /abonnements
Autorisierung: Bearer {access_token}
Inhaltstyp: Anwendung/JSON

{
  "Änderungstyp": "erstellt,aktualisiert,gelöscht",
  "notificationUrl": "https://yourapp.com/webhook",
  "Ressource": "/ich/nachrichten",
  "AblaufdatumUhrzeit": "2026-06-03T18:00:00Z",
  "clientZustand": "dein-geheimer-zustand"
}

// Graph POSTet bei jeder Änderung an Ihre URL.
Abonnement vor Ablauf verlängern.
Keine persistente Verbindung erforderlich.
Achtung

Häufige Fallstricke: Berechtigungen, Ratenlimits, Drosselung

Selbst Entwickler, die mit Exchange Web Services vertraut sind, stoßen bei der Migration zu Microsoft Graph regelmäßig auf dieselben Hürden. Diese 6 Fallstricke sind für die Mehrheit der Produktionsausfälle während der Migration verantwortlich. Wenn Sie diese jetzt verstehen, sparen Sie später Tage beim Debugging. Für eine breitere Perspektive darauf, wie diese Herausforderungen im Vergleich zu anderen Anbietern aussehen, siehe unser Vergleich von E-Mail-API-Anbietern.

Anwendungsberechtigungen vs. delegierte Berechtigungen
Das ist die häufigste Verwechslung. Delegiert Berechtigungen agieren im Namen eines angemeldeten Benutzers. Anmeldung Berechtigungen fungieren als Dienst ohne Benutzerkontext und erfordern die Zustimmung eines Administrators.
TypKontextAdmin-Zustimmung
DelegiertBenutzer angemeldetManchmal
AnmeldungKein Benutzer / DaemonImmer
Drosselungslimits: HTTP 429 und Retry-After
Microsoft Graph erzwingt ein Limit von ungefähr 10.000 Anfragen pro 10 Minuten pro App pro Mandanten. Wenn eine Drosselung erfolgt, erhalten Sie HTTP 429 with a Erneut versuchen nach Header, der die Wartezeit in Sekunden angibt. Wenn dieser Header ignoriert und sofort erneut versucht wird, führt dies zu einem erweiterten Bann. Implementieren Sie immer exponentielles Backoff mit dem genauen Retry-After-Wert.
Paginierung über @odata.nextLink
Graph paginiert Ergebnisse mit einer Standardseitengröße (typischerweise 10 Nachrichten). Wenn Sie nicht prüfen @odata.nextLink in der Antwort fehlen Ihnen stillschweigend Daten. Schleifen Sie immer: wenn @odata.nextLink ist vorhanden, machen Sie einen weiteren GET-Request an diese URL (sie enthält den Skip-Token), bis das Feld nicht mehr vorhanden ist.
Admin-Zustimmung für sensible Bereiche
Bereiche wie Mail.ReadWrite.All, Kalender.LesenSchreiben.Alleund Benutzer.AlleLesen Einen Mandantenadministrator erforderlich, der die Zustimmung erteilt, bevor ein Benutzer Ihre App autorisieren kann. Ohne Zusage des Administrators gibt der OAuth-Fluss Folgendes zurück: AADSTS65001 Fehler. Benutze die /adminzustimmung Endpunkt während des App-Onboardings für Unternehmenskunden.
Delta-Abfragezustand: DeltaLink verwalten
Delta-Abfragen geben Änderungen seit Ihrer letzten Synchronisierung zurück, identifiziert durch einen DeltaLink Token auf der letzten Seite. Speichern Sie dieses Token persistent – es ist Ihr Synchronisationscursor. Wenn Sie es verlieren, müssen Sie eine vollständige Resynchronisierung durchführen. Kodieren Sie niemals einen Zeitbereich hart – verwenden Sie den deltaLink, um die Verarbeitung von Duplikaten oder fehlenden Änderungen zu vermeiden.
Anhangsbehandlung: 3MB Größenbeschränkung
Anhänge unter 3 MB können in einem einzigen API-Aufruf inline eingefügt werden. Für Dateien, die größer als 3 MB sind, müssen Sie zuerst eine Upload-Sitzung erstellen (POST /ich/nachrichten/{id}/anhänge/createUploadSession) und in Blöcken hochladen. Der Versuch, einen großen Anhang inline einzufügen, führt zu einem 413 Entität zu groß Fehler.
Einheitlicher API-Ansatz

Vermeiden Sie den Migrations-Albtraum: Ein einheitlicher E-Mail-API-Ansatz

Eine vollständige EWS-zu-Graph-Migration für eine komplexe Anwendung dauert 4 bis 8 Wochen Entwicklungszeit. Sie müssen Azure-Apps registrieren, OAuth-Flows implementieren, Token-Aktualisierung handhaben, Drosselung verwalten, jeden SOAP-Aufruf umschreiben, die Fehlerbehandlung aktualisieren und Tests über Umgebungen hinweg durchführen. Machen Sie das dann noch einmal, wenn Microsoft etwas ändert.

Unipile abstrahiert Microsoft Graph, Gmail und IMAP unter einer einzigen, einheitlichen API. Sie authentifizieren Ihre Benutzer einmal über Unipile und lesen/senden E-Mails, synchronisieren Kalender und verwalten Kontakte über alle drei Anbieter hinweg mit denselben Endpunkten – keine Azure-App-Registrierung, keine anbieterabhängigen OAuth-Flows, keine zu pflegende Drosselungslogik. Sehen Sie sich unsere Vollständige E-Mail-API-Anleitung und E-Mail-API-Anbieter-Vergleich um die Landschaft zu verstehen.

50 Zeilen Microsoft Graph vs. 5 Zeilen Unipile

Microsoft Graph - Posteingang lesen (nativ) ~50 Zeilen
// 1. Azure App-Registrierung (portal.azure.com)
// 2. OAuth-Autorisierungscode-Fluss
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',
      response_mode: 'Anfrage'
    });
// 3. Umleitung behandeln, Code gegen Token tauschen
const tokenRes = await fetch(`https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`, {
  Methode: 'POST',
  body: new URLSearchParams({
    client_id: CLIENT_ID, client_secret: CLIENT_SECRET,
    code: authCode, redirect_uri: REDIRECT_URI,
    grant_type: 'autorisierungscode'
  })
});
const { access_token, refresh_token } = await tokenRes.json();
4. Speichere + aktualisiere Tokens bei Ablauf (stündlich)
// 5. Graph-Aufruf mit Bearer-Token
const res = await fetch('https://graph.microsoft.com/v1.0/me/messages?$top=10', {
  Header: { Authorization: `Bearer ${access_token}` }
});
// 6. Drosselung behandeln (HTTP 429 + Retry-After)
wenn (res.status === 429) {
  const retryAfter = res.headers.bekommen.('Erneut versuchen nach');
  await Schlaf(wiederholenNach* 1000);
  Versuchen Sie es erneut...
}
// 7. Paginieren über @odata.nextLink
const Daten = await res.json();
lassen Nachrichten = Daten.Wert;
während (Daten['@odata.nextLink']) { /* ... */ }
Unipile – Posteingang lesen (vereinheitlichte API) 5 Zeilen
// Keine Azure-App, keine zu implementierenden OAuth-Flows,
// Keine Drosselungslogik, keine Token-Aktualisierung.
// Funktioniert für Outlook UND Gmail UND IMAP.

const Kunde = new UnipileClient(API-Schlüssel);

const Nachrichten = await client.email.Nachrichten auflisten({
  account_id: BenutzerkontoId, // verknüpftes Konto
  Ordner: 'POSTeingang',
  limit: 10
});

// Gleicher Code, gleiches Antwortformat
// für Outlook, Gmail und IMAP.
// Unipile verarbeitet OAuth, Drosselung,
// Paginierung und Token-Aktualisierung.
SOC 2 Typ II
GDPR-konform
CASA Stufe 2
SLA mit einer Verfügbarkeit von 99,991 % (TP3T)
Outlook + Gmail + IMAP
Hört auf, immer wieder dieselbe OAuth-Infrastruktur aufzubauen
E-Mails lesen, Nachrichten senden, Kalender über Outlook, Gmail und IMAP mit einer einzigen API synchronisieren. Unipile bewältigt die Komplexität der EWS-zu-Graph-Migration, damit Ihr Team Features anstelle von Authentifizierungsflüssen liefert.
Beginnen Sie mit Unipile zu bauen
Unipile - Outlook REST API & EWS FAQ

Outlook REST API & EWS - FAQ

Häufig gestellte Fragen zur Ablösung der Outlook REST API, zur Stilllegung von EWS und zur Migration zu Microsoft Graph

Nein. Die Outlook REST API (v2.0 und Beta) wurde von Microsoft eingestellt. Alle Anfragen an die alten Outlook REST Endpunkte schlagen jetzt fehl. Der offizielle Ersatz ist Microsoft Graph, welche dieselben E-Mail- und Kalenderoperationen sowie vieles mehr abdeckt. Wenn Ihre Anwendung noch Outlook REST-Endpunkte verwendet, ist die Migration zu Graph nicht optional.

Die Outlook REST-API war eine spezielle REST-API, die nur Outlook-Postfachoperationen abdeckte. Microsoft Graph ist die einheitliche API für das gesamte Microsoft 365-Ökosystem: Outlook-Mail, Kalender, Kontakte, Teams, SharePoint, OneDrive und mehr. Beide verwenden die OAuth 2.0-Authentifizierung, aber Graph verwendet die einzelne Basis-URL https://graph.microsoft.com/v1.0 und bietet eine konsistentere, funktionsreichere Oberfläche als die eingestellten Outlook-spezifischen Endpunkte.

Microsoft hat festgelegt 1. Oktober 2026 als das Datum für die strikte Durchsetzung der Abschaffung von EWS in Exchange Online (Microsoft 365). Nach diesem Datum wird EWS für Microsoft 365-Postfächer nicht mehr funktionieren. Es gibt keine Kulanzfrist und keine angekündigte Verlängerung. EWS wird weiterhin für lokale Exchange Server-Installationen funktionieren, die von dieser Frist nicht betroffen sind.

Microsoft Graph ist der offizielle Ersatz für EWS. Jede EWS-Operation hat eine Graph-Entsprechung: GegenstandSuchen wird GET /me/messages, GegenstandErstellen (E-Mail senden) POST /me/sendMail, Streaming-Benachrichtigungen werden zu Graph-Webhooks über POST /abonnements. Authentifizierungsänderungen von NTLM/Kerberos/Basic Auth zu OAuth 2.0 über Azure AD. Für Teams, die einen einfacheren Weg benötigen, ein vereinheitlichte E-Mail-API wie Unipile fasst alle drei Anbieter unter einem SDK zusammen.

Nein. Die Outlook REST API v2.0 wurde eingestellt. Anfragen an diese Endpunkte werden mit Fehlern fehlschlagen. Microsoft Graph ist der einzige unterstützte Weg für die Integration von Outlook-E-Mails und Kalendern. Alle neuen Integrationen müssen auf https://graph.microsoft.com/v1.0 und verwende OAuth 2.0-Authentifizierung.

Der Aufwand hängt von der Komplexität Ihrer EWS-Implementierung ab. Eine einfache Integration mit wenigen Lese-/Schreibvorgängen dauert in der Regel 1-2 Wochen. Eine komplexe Anwendung mit Streaming-Benachrichtigungen, Delta-Synchronisierung, Multi-Ordner-Operationen und umfangreicher Fehlerbehandlung kann 4-8 Wochen dauern. Die Migration erfordert: Azure AD App-Registrierung, OAuth 2.0-Implementierung, Ersetzung von Endpunkt zu Endpunkt, Drosselungslogik, Seitenaktualisierungen und Änderungen des Fehlerformats. Eine Alternative ist die Verwendung von Unipiles Microsoft Graph Abstraktion, das einen Großteil dieser Komplexität automatisch handhabt.

Die Frist vom Oktober 2026 gilt speziell für Exchange Web Services (EWS) Nutzung in Exchange Online. Outlook-Add-Ins, die die Office.js API verwenden, haben einen separaten Zeitplan. Microsoft stellt jedoch die alten COM- und VSTO-Add-Ins zugunsten webbasierter Office-Add-Ins ein. Wenn Ihr Add-In intern EWS-Aufrufe tätigt, werden diese Aufrufe im Oktober 2026 unterbrochen, unabhängig vom Add-In-Framework. Überprüfen Sie die Microsoft 365 Roadmap für die neuesten Anleitungen, die für Ihren Add-In-Typ spezifisch sind.

Da die Outlook REST-API eingestellt wurde, sind die relevanten Bereiche für Microsoft Graph. Kern-E-Mail-Bereiche: Mail.Lesen (Nachrichten lesen), Mail.Senden (E-Mail senden), Mail.ReadWrite (Nachrichten lesen und bearbeiten), Kalender.LesenSchreiben (Kalenderzugriff), Kontakte.Lesen (Kontakte). Immer enthalten Offline-Zugriff um ein Aktualisierungstoken zu erhalten. Anwendungsbereich wie Mail.ReadWrite.All Admin-Zustimmung vom Mandantenadministrator erfordern und nur für Daemon-Szenarien ohne Benutzerkontext verwenden. Siehe unsere Microsoft Graph OAuth-Leitfaden für eine vollständige Einrichtungsanleitung.

Microsoft Graph erzwingt Ratenbegrenzungen von ungefähr 10.000 Anfragen pro 10 Minuten pro Anwendung pro Mandanten. Wenn die API gedrosselt wird, gibt sie HTTP 429 Zu viele Anfragen with a Erneut versuchen nach Header, der die genaue Anzahl von Sekunden angibt, die gewartet werden soll. Die entscheidende Regel: immer befolgen Erneut versuchen nach genauwert. Ein erneuter Versuch vor dem Schließen dieses Fensters verlängert die Drosselungsperiode. Bei mandantenfähigen SaaS-Anwendungen, bei denen jeder Mandant getrennte Grenzwerte hat, beeinträchtigt die Drosselung bei einem Mandanten nicht die anderen. Vergleichen Sie auch IMAP als Alternative wenn Drosselung in großem Maßstab ein Problem darstellt.

Unipile ist ein Vereinheitlichte E-Mail-API damit werden Microsoft Graph, Gmail und IMAP unter einem einzigen SDK zusammengefasst. Anstatt Microsoft Graph OAuth-Flows zu implementieren, Zugriffstoken zu verwalten, Drosselung zu handhaben und pro Anbieter Code zu schreiben, verbinden Sie die Konten Ihrer Benutzer über Unipile und verwenden eine einheitliche API für alle drei Anbieter. Dies ist besonders wirkungsvoll für SaaS-Anwendungen, die Outlook und Gmail gleichzeitig unterstützen müssen, ohne separaten Integrationscode für jeden zu pflegen. Unipile agiert als unabhängiger technischer Vermittler auf Anfrag ejedes authentifizierten Benutzers und ist nicht mit Microsoft verbunden oder wird von diesem unterstützt.

Überspringen Sie die EWS-Migration vollständig. Unser Team hilft Ihnen gerne weiter.

Jetzt bauen
de_DEDE