Outlook REST API ve EWS'ten Microsoft Graph'a: Geliştiriciler İçin 2026 Göç Kılavuzu

Unipile - İçindekiler
2026 Göç Rehberi

Kimden Outlook REST API & EWS'ten Microsoft Graph'a

Outlook REST API v2.0 kaldırıldı (Mart 2024). Exchange Web Services (EWS) ise 1 Ekim 2026 tarihinde tamamen kullanımdan kalkacak. Bu kılavuz, son tarihten önce yayınlamanız gereken her uç noktayı, OAuth akışını ve geçiş adımını kapsamaktadır.

EWS son teslim tarihi: 1 Ekim 2026. Microsoft, Exchange Online için erteleme süresi olmadığını doğruladı. Şimdi geçişinize başlayın.

graph-mail.js
// Microsoft Graph Üzerinden Outlook REST API // EWS SOAP'ı tek bir REST çağrısıyla değiştir const response = bekle fetch( 'https://graph.microsoft.com/v1.0/me/messages', { başlıklar: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json' } } ); const { value: mesajlar } = bekliyor cevap.json(); konsol.log(`${messages.length} adet e-posta alındı`);
GET /me/messages - 200 OK - 12 mesaj döndürüldü
Nedir

2026'da Outlook REST API Nedir?

"Outlook REST API" terimi, Microsoft'un son on yılda en az üç farklı şeyi tanımlamak için kullanması nedeniyle 2026'da kafa karışıklığına neden oluyor. İşte kesin mevcut anlamı, geliştiriciler için neden hala önemli olduğu ve nelerin değiştiği.

Tanım: 2026"da "Outlook REST API" terimi, Microsoft Graph posta uç noktalarını ifade eden gayri resmi bir terimdirhttps://graph.microsoft.com/v1.0/me/messages). Orijinal özel Outlook REST API v2.0 (outlook.office.com/api/v2.031 Mart 2024'te kalıcı olarak kullanımdan kaldırıldı ve tüm istekler için HTTP 410 Gone döndürüyor. Microsoft Graph artık Microsoft 365, Exchange Online, Outlook.com ve Teams genelinde posta, takvim ve kişiler için tek, birleşik API'dir.

Bu durum 2026'da iki nedenden dolayı önemlidir: birinci olarak, eskiyi referans alan herhangi bir uygulama outlook.office.com/api/ etki alanı çalışmıyor. İkincisi, eski SOAP tabanlı protokol olan Exchange Web Services’i (EWS) kullanan uygulamalar, Exchange Online için 1 Ekim 2026 tarihine kadar geçerli olacak kesin bir son tarihle karşı karşıya. Doğru terminolojiyi anlamak, başarılı bir geçişin ilk adımıdır.

İsimlendirme Açıklaması
İsim Protokol Temel URL 2026'da Durum
Outlook REST API v2.0 REST / JSON outlook.office.com/api/v2.0 Ölmüş (Mart 2024)
Exchange Web Servisleri SOAP / XML outlook.office365.com/EWS/ Kullanım ömrü sonu: Ekim 2026
Microsoft Graph Posta API'si REST / JSON graph.microsoft.com/v1.0/benim/mesajlar Canlı - Bunu Kullan
MAPI / Outlook COM COM / İkili Yalnızca masaüstü Yalnızca masaüstü

Posta dışında Microsoft Graph entegrasyonunu (webhook'lar, delta sorguları, paylaşılan posta kutuları) ayrıntılı olarak incelemek için Microsoft Graph API e-posta entegrasyon kılavuzu. Tüm e-posta API kalıplarını kapsayan kılavuz şu adreste yer almaktadır: E-posta API geliştirici kılavuzu.

2026'da Outlook üzerine mi bina ediyorsunuz? Unipile, tek bir entegrasyonla Microsoft Graph, Gmail ve IMAP'yi destekleyen tek bir e-posta API'si sunar; sağlayıcı bazında ayrı bir geçiş işlemi gerekmez.

Unipile ile oluşturun
Zaman çizelgesi

v2.0'dan Microsoft Graph'a: Kısa Bir Tarihçe

Outlook REST API v2.0'ın kullanımdan kaldırılması ani olmadı - Microsoft bunu yıllar öncesinden duyurdu ve birden çok son teslim tarihi uzatıldı. Bu geçmişi anlamak, Microsoft'un EWS ile ne yapacağını ve Ekim 2026 son teslim tarihinin neden kesin olarak kabul edildiğini tahmin etmenize yardımcı olur.

2015 - 2017
Outlook REST API v2.0 Başlıyor

Microsoft, REST tabanlı bir API sunuyor outlook.office.com/api/v2.0 Geliştiriciler, SOAP/XML'e göre önemli bir gelişme olan HTTPS üzerinden JSON ile e-posta okuyabilir, takvim etkinliklerini yönetebilir ve kişilere erişebilir.

2019
Microsoft Graph Birleşik API Olarak Ortaya Çıkıyor

Microsoft, posta, takvim, kişiler, Teams, OneDrive, SharePoint ve daha fazlasını kapsayan tüm Microsoft 365 hizmetlerini tek bir uç noktada birleştiren Microsoft Graph'ı kullanıma sundu. graph.microsoft.com alan adı, Microsoft verilerine programlı olarak erişmenin standart yolu haline gelir.

Kasım 2020
Outlook REST API v2.0'ın Kullanımdan Kaldırılma Duyurusu

Microsoft, Microsoft Graph'ı yetkili değiştirme olarak göstererek Outlook REST API v2.0"ın (ve v1.0 beta) kullanımdan kaldırıldığını resmen duyurdu. Duyuruda, eski uç noktaların "2022'nin sonlarında" olmak üzere bir teslim tarihi ile çalışmayı durduracağı açıkça belirtildi.

2022 - 2023
Birden Fazla Teslim Tarihi Uzatması

Microsoft iki kez son tarihi uzattı - önce Kasım 2022"ye, sonra Mart 2023"e, ardından Mart 2024'e. Her uzatmada "bu son uzatma" uyarısı yapıldı. Birçok geliştirici bu uzatmaları son tarihlerinin esnek olduğu şeklinde yorumladı. Ekim 2026 EWS son tarihi daha sıkı uygulanıyor.

31 Mart 2024
Outlook REST API v2.0 Kalıcı Olarak Devre Dışı Bırakıldı

Bu outlook.office.com/api/v2.0 Son nokta tüm istekler için HTTP 410 Gone döndürüyor. Artık uzantı yok. Bu URL'leri hala çağıran herhangi bir uygulama bozuk. "Outlook REST API" artık doğru kullanıldığında Microsoft Graph anlamına geliyor. Microsoft Graph posta uç noktalarına yönelik tam entegrasyon kılavuzu için bkz. Microsoft Graph API e-posta entegrasyon kılavuzu.

1 Ekim 2026
Exchange Online için EWS Yaşam Sonu

Exchange Web Services, Exchange Online (Microsoft 365 bulut) için çalışmayı durduracaktır. Microsoft, bunun kesin bir zorunlu tarih olduğunu doğrulamıştır. Şirket içi Exchange sunucuları etkilenmemektedir. SOAP/XML EWS çağrılarını kullanan tüm bulut tabanlı uygulamaların bu tarihe kadar Microsoft Graph'a geçiş yapmış olması gerekmektedir.

Bu Göç Neden Kaçınılmazdı

Modern OAuth 2.0 Güvenliği

Eski API'ler Temel Kimlik Doğrulama (Basic Auth) ve eski belirteç (token) biçimlerine dayanıyordu. Microsoft Graph, sıfır güven (zero-trust) güvenlik modelleriyle uyumlu olarak ve kimlik bilgisi maruziyeti risklerini ortadan kaldırarak Azure Active Directory ile OAuth 2.0'ı zorunlu kılar.

Birleşik Kimlik Platformu

Microsoft Graph, tek bir kimlik platformu aracılığıyla her Microsoft 365 hizmetine erişimi birleştirir. Eski API'ler için ayrı ayrı kimlik bilgileri yürütmeye karşı, tek bir uygulama kaydı, tek bir jeton, tek bir uç nokta öneki.

Daha Zengin Yetenekler

Microsoft Graph, EWS'nin hiç sahip olmadığı voici özelliklerini sunar: artımlı senkronizasyon için delta sorguları, değişiklik bildirimleri (web kancaları), tüm içeriklerde arama, Teams entegrasyonu ve Graph'a özel analitikler - hepsi temiz REST/JSON üzerinden.

Unipile - EWS Ömrünün Sonu
Kritik Son Teslim Tarihi

Gerçek 2026 Son Tarihi: EWS Kullanım Ömrü Sonu (1 Ekim 2026)

Outlook REST API v2.0'ın kullanımdan kaldırılması göreceli olarak küçük bir geliştirici grubunu etkilese de, Exchange Online için EWS'nin kullanım ömrünün sona ermesi çok daha büyük bir olaydır. Binlerce kurumsal uygulama, posta istemcisi, takvim senkronizasyon aracı ve yedekleme çözümü hala Exchange Web Services'e güvenmektedir. 1 Ekim 2026, kesin geçiş tarihidir - bilmeniz gerekenler şunlardır.

EWS Kesin Son Teslim Tarihi: 1 Ekim 2026 - Ek Süre Yok

Kapsam: Yalnızca Exchange Online (Microsoft 365 bulutu). Şirket içi Exchange sunucuları etkilenmez. Uygulama Microsoft bunun kesin bir geçiş olduğunu doğruladı - Exchange Online'a yapılan EWS istekleri artık işlenmeyecek. Ne kırılır: tüm SOAP/XML çağrıları outlook.office365.com/EWS/Exchange.asmx, EWS Yönetilen API .NET kütüphanesini kullanan uygulamalar, Kerberos/NTLM kimlik doğrulama akışları ve EWS üzerinden Temel Kimlik Doğrulama dahil.

Kimler Etkilenmiş

  • EWS Yönetilen API üzerinde oluşturulmuş özel posta istemcileri
  • EWS çağrıları kullanan Outlook eklentileri (Graph tabanlı olmayan)
  • Takvim senkronizasyon uygulamaları (oda rezervasyonu, planlama)
  • E-posta yedekleme ve arşivleme araçları
  • CRM / ATS e-posta senkronizasyon entegrasyonları
  • Herhangi bir uygulama kullanım ExchangeServisi .NET sınıfı

Ne Duruyor

  • NTLM ve Kerberos kimlik doğrulaması
  • EWS üzerinde Temel Kimlik Doğrulama (zaten kullanımdan kaldırılmış)
  • EWS Yönetilen APIMicrosoft.Exchange.WebServices)
  • EWS Üzerinden Yayın Bildirimleri
  • EWS taklidiExchangeYetkisi)
  • SOAP işlemleri: GetItem, FindItems, SyncFolderItems

Neler Etkilenmez

  • Şirket içi Exchange 2016 / 2019 / SE EWS
  • Microsoft Graph API (bu geçiş hedefidir)
  • Temel gönderme/alma için IMAP / SMTP
  • ActiveSync (ayrı olarak kullanımdan kaldırıldı)
  • Outlook masaüstü uygulaması (kendine özgü MAPI kullanır)

Göç Zaman Çizelgesi Gerçekliği

  • 1-2 EWS işlemiyle basit uygulama: 1-2 hafta
  • Orta karmaşıklıkta bir uygulama (posta + takvim + kişiler): 4-8 hafta
  • Kurumsal uygulama, EWS kimliğine bürünme: 8-16 hafta
  • Tedarikçi bağımlılığı (kütüphane güncellemesini bekleme): kontrolsüz
  • Test + kullanıcı kabul testi (UAT) + üretim dağıtımı: 2-4 hafta ekleyin

EWS geçişi için kısıtlı bir zaman çizelgeniz mi var? Unipile'ın birleşik e-posta API'si, Microsoft Graph'ı (ve Gmail ve IMAP'i) soyutlar; böylece bir kez geçiş yapar ve sağlayıcıya özgü kodlara bir daha dokunmazsınız. Bkz. Tam E-posta API kılavuzu mimari desenler için.

Göçünü Başlat
API Referansı

2026'da Outlook REST API Uç Noktaları (Microsoft Graph aracılığıyla)

Tüm Outlook REST API işlevselliği artık Microsoft Graph aracılığıyla şu adreste sunulmaktadır: https://graph.microsoft.com/v1.0. Aşağıda ana e-posta, takvim ve kişiler uç noktaları, HTTP yöntemleri ve her kategori için bir kod örneği bulunmaktadır.

E-posta Uç Noktaları

Yöntem Uç nokta Açıklama Gerekli Kapsam
GET /ben/mesajlar Gelen kutusundaki mesajları listele ($filter, $orderby, $top, $select komutlarını destekler) Mail.Read
GET /ben/mesajlarım/{id} Kimliğe göre gövdesi ve başlıkları tam olan tek bir mesaj alın Mail.Read
POSTA /ben/ePostaGönder Hemen yeni bir e-posta gönder (taslak kaydedilmemiş) Mail.Gönder
POSTA /ben/mesajlar Taslak bir mesaj oluştur (ayrı olarak /send komutuyla gönder) Mail.ReadWrite
YAMA /ben/mesajlarım/{id} Bir mesajı güncelle (okundu olarak işaretle, taşı, kategorileri değiştir) Mail.ReadWrite
SİL /ben/mesajlarım/{id} Bir mesajı kalıcı olarak sil Mail.ReadWrite
GET /ben/postaKlasörleri Tüm posta klasörlerini listele (Gelen Kutusu, Gönderilenler, Taslaklar, özel) Mail.Read
GET /benim/mesajlarım/delta Kademeli senkronizasyon - son senkronizasyondan bu yana yalnızca değiştirilmiş iletileri al Mail.Read
e-posta-gönder.js
// POST /me/sendMail - E-postayı Outlook REST API (Microsoft Graph) aracılığıyla gönder const response = bekliyor fetch('https://graph.microsoft.com/v1.0/ben/epostaGonder', { yöntem: 'POST', başlıklar: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json' }, vücut: JSON.stringify({ message: { konu: 'Microsoft Graph'tan merhaba', vücut: { içerikTürü: 'Metin', içerik: 'EWS geçişi tamamlandı!' }, alıcılara: [{ e-posta adresi: { adres: 'user@example.com' } }] }, GönderilenlereKaydet: true }) }); 202 Kabul Edildi = başarıyla gönderildi

Takvim Uç Noktaları

Yöntem Uç nokta Açıklama Gerekli Kapsam
GET /benim/etkinlikler Tüm takvim etkinliklerini listele (başlangıç/bitiş tarihine göre $ filtresi desteklenir) Takvimler.Oku
GET /benim/takvimGörünümü Belirli bir zaman aralığındaki etkinlikleri al (startDateTime + endDateTime parametreleri) Takvimler.Oku
POSTA /benim/etkinlikler Yeni bir takvim etkinliği oluştur, katılımcı ekle ve tekrar oluşmasını sağla Takvimler.OkumaYazma
GET /benim/takvimlerim Tüm kullanıcı takvimlerini (birincil, paylaşılan, grup) listele Takvimler.Oku

Kişiler Uç Noktaları

Yöntem Uç nokta Açıklama Gerekli Kapsam
GET /ben/rehber Varsayılan kişi klasöründeki tüm kişileri listele Kişiler.Oku
POSTA /ben/rehber Yeni bir kişiye ulaş Kişileri.SaltOkuma
GET /benim/iletişimKlasörleri Kişi klasörlerini listele Kişiler.Oku

Outlook REST (Microsoft Graph), Gmail ve IMAP'i işleyen tek bir API mi istiyorsunuz? Unipile hepsini tek bir birleşik uç noktada birleştiriyor. Sağlayıcıları şu adresten karşılaştırın: E-posta API Sağlayıcıları Karşılaştırması.

Birleşik API ile Oluştur
Kimlik Doğrulama

OAuth 2.0 Kimlik Doğrulaması: Tek İleri Yön

NTLM, Kerberos ve Basic Auth, Microsoft 365 için artık geçerli değil. Her Microsoft Graph API isteği için zorunlu kimlik doğrulama yöntemi artık OAuth 2.0'dır. Bir geri dönüş, uyumluluk modu veya zaman çizelgesi uzantısı yok. Uygulamanız hala eski kimlik doğrulama akışlarını kullanıyorsa, yeni kiracılar için zaten engellendi ve Ekim 2026'da EWS zorlaması tamamlandığında tüm kiracılar için tamamen bozulacaktır.

Miras kimlik doğrulama durumu (Mayıs 2026): Exchange Online için NTLM ve Kerberos tamamen devre dışı bırakılmıştır. Exchange Online için Basic Auth Ekim 2022'de kullanımdan kaldırıldı. Microsoft Graph için kabul edilen tek kimlik doğrulama yöntemi Azure AD üzerinden OAuth 2.0'dır.

Azure AD Uygulama Kaydı: 5 Adım

01
Azure AD'de bir uygulama kaydı oluşturun
Git portal.azure.com - Azure Active Directory - Uygulama kaydı - Yeni kayıt. Bir ad seçin, desteklenen hesap türünü (tek kiracı, çok kiracılı veya kişisel hesaplar) ayarlayın ve bir yönlendirme URI'si yapılandırın.
02
API izinlerini yapılandır
Altında API izinleri, Microsoft Graph izinlerini ekleyin. Kullanım durumunuza bağlı olarak Delegated (kullanıcı bağlamı) veya Application (arka plan) izinlerini seçin. Çoğu e-posta/takvim entegrasyonu Delegated izinleri kullanır.
03
Bir istemci gizli anahtarı (veya sertifikası) oluştur
Altında Sertifikalar ve gizli bilgiler, yeni bir istemci gizli anahtarı oluşturun. Değeri hemen kopyalayın - bu yalnızca bir kez gösterilir. Üretim uygulamaları için bir sertifika, istemci gizli anahtarından daha güvenlidir.
04
Yetkilendirme kodu akışını uygula
Kullanıcıları yönlendir https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize ile client_id, kapsam, yönlendirme_url'sive yanıt_türü=kod. Yetki alındıktan sonra, belirteç (token) uç noktasında kodu belirteçlerle (token) değiştirin.
05
Gerekirse yönetici onayı isteyin
Bazı kapsamlar (örneğin Mail.ReadWrite.All) kullanıcıların herhangi birini yetkilendirmesinden önce kiracı yöneticisi onayını gerektirir. Bunlar için yönetici onay uç noktasını kullanın: /devamedenonayı bir kiracı yönetici hesabı ile akış.

Grafik API'si İçin Gerekli OAuth Kapsamları

Tam tabloyu görmek için yatay kaydırın
Kapsam Tip Kullanım Örneği
Mail.Read Devredilen Kullanıcının posta kutusu mesajlarını oku
Mail.ReadWrite Devredilen Posta kutusu mesajlarını oku ve değiştir
Mail.Gönder Devredilen Kullanıcı adına e-posta gönder
Takvimler.OkumaYazma Devredilen Takvim etkinliklerini oku ve değiştir
Kişiler.Oku Devredilen Kullanıcı kişilerine göz at
Mail.ReadWrite.All Uygulama Tüm posta kutularını oku/yaz (arka plan uygulamaları, yönetici onayı gerektirir)
Takvimler.OkuYaz.Tümü Uygulama Tüm takvimleri oku/yaz (arka plan uygulamaları, yönetici onayı gerektirir)
çevrimdışı_erişim Devredilen Uzun süreli erişim için bir yenileme belirteci almak gereklidir

Yetkilendirme Kodu Akışı - Node.js Örneği

JavaScript (Node.js)
// Adım 1: Yetkilendirme URL'sini oluşturun
const authUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/authorize?`
  + yeni URLSearchParamsclient_id: MÜŞTERİ_KODU,
    cevap_türü: 'kod',
    yönlendirme_kurulumu: YÖNLENDİRME_URI,
    kapsam: 'Mail.Oku Mail.Gönder Takvimler.Yazma ve Okuma çevrimdışı_erişim',
    yanıt_modu: 'sorgu'
  });

// Adım 2: Kodları jetonlarla değiştirin
const tokenRes = bekliyor fetch(
  `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,
  {
    method: 'POST',
    gövde: yeni URLSearchParamsclient_id: MÜŞTERİ_KODU,
      client_secret: CLIENT_SECRET,
      kod: kimlik doğrulama kodu,
      redirect_uri: YÖNLENDİRME_URI,
      grant_type: 'yetkilendirme_kodu'
    })
  }
);
const { access_token, refresh_token } = bekliyor tokenRes.json();

// Adım 3: Erişim belirteci süresi dolduğunda yenileyin (genellikle 1 saat)
const YenileRes = bekliyor fetchtokenEndpoint, {
  method: 'POST',
  body: yeni URLSearchParamsclient_id: MÜŞTERİ_KODU,
    client_secret: CLIENT_SECRET,
    yenileme_belirteci: saklanmış yenileme jetonu,
    grant_type: 'yenileme_belirteci'
  })
});
Yenileme jetonu işleme: Microsoft Graph erişim belirteçleri 1 saat sonra sona erer. Sakla yenileme_belirteci veritabanınızda güvenli bir şekilde saklayın ve kullanıcının yeniden kimlik doğrulaması gerektirmeden yeni erişim jetonları istemek için kullanın. Yenileme jetonları 90 gün atıl kaldıktan sonra süresi dolabilir. Her zaman isteyin çevrimdışı_erişim yenileme belirteci almak için kapsam.
Eylem Planı

Göç Kontrol Listesi: Exchange Web Services'ten Microsoft Graph'a 10 Adımda

Microsoft, 1 Ekim 2026'da Exchange Online için EWS'nin kullanım dışı bırakılmasının sıkı bir şekilde uygulanacağını doğruladı. Bir deneme süresi, geri alma seçeneği veya uyumluluk köprüsü bulunmuyor. Microsoft 365 için hala Exchange Web Services kullanan her uygulama o tarihte çalışmayı durduracaktır.

Kesin son teslim tarihi: 1 Ekim 2026. Uzantı yok. Uyumluluk modu yok. Göç planınızı şimdi yapın - karmaşık bir EWS uygulamasının Microsoft Graph'a tam geçişi 4-8 hafta sürebilir.
01
Mevcut EWS kullanımınızı denetleyin
Kod tabanınızdaki tüm EWS çağrılarını envanterleyin: posta işlemleri, takvim senkronizasyonu, iletişim sorguları, itme/çekme/akış bildirimleri. Bu, geçiş kapsamınızı ve tahmini çabanızı belirler.
02
Bir Azure AD uygulaması kaydedin ve kapsamları tanımlayın
Uygulama kaydınızı Azure portalında oluşturun. Kullanım durumunuz için gereken minimum Microsoft Graph kapsamlarını tanımlayın. Yalnızca ihtiyacınız olanı isteyin - aşırı izin vermekten kaçının.
03
EWS işlemlerini Graph uç noktalarına eşleştirin
Çeviri tablosu oluşturun: FindItem, GET /me/messages olur; CreateItem, POST /me/sendMail olur; FindAppointments ise GET /me/events olur. Microsoft, resmi bir EWS-Graph eşleme kılavuzu sunmaktadır.
04
WCF/SOAP yerine REST HTTP çağrılarını kullanın
EWS, HTTP üzerinden SOAP kullanır. Microsoft Graph, JSON ile standart REST kullanır. Kodunuzdan tüm WCF proxy sınıflarını, SOAP XML serileştirmesini ve EWS Managed API bağımlılıklarını kaldırın.
05
Eski protokollerden OAuth 2.0'a kimlik doğrulamayı taşıyın
NTLM, Kerberos veya Basic Auth'u OAuth 2.0 yetkilendirme kodu akışıyla değiştirin. Uzun süreli erişimi sürdürmek için offline_access kapsamını kullanarak jeton yenileme mantığını uygulayın.
06
Microsoft Graph Explorer ile geliştirme ortamında test et
Kod yazmadan önce API çağrılarını prototiplemek ve test etmek için Graph Explorer'ı (developer.microsoft.com/graph/graph-explorer) kullanın. Üretim posta kutularına karşı testten kaçınmak için ayrı bir geliştirici kiracısı kurun.
07
Artımlı senkronizasyon için delta sorguları uygulayın
EWS SyncFolderItems'ı Graph delta sorguları (GET /me/messages/delta) ile değiştirin. Verimli artımlı senkronizasyonu etkinleştirmek için deltaLink belirtecini kaydedin; böylece yalnızca son sorgudan bu yana yapılan değişiklikler döndürülür.
08
Aşırı yüklemeyi yönetme: HTTP 429 ve Retry-After
Microsoft Graph katı hız sınırlarını zorlar. Üstel geri çekilme uygulayın: HTTP 429 aldığınızda, Yeniden Dene-Sonra başlığını okuyun ve tekrar denemeden önce tam olarak o süre boyunca duraklayın.
09
Graph hata formatı için hata işleme güncellemesi
Grafik hataları EWS SOAP hatalarından farklı bir biçim kullanır. JSON hata nesnesini ayrıştırın: { "error": { "code": "...", "message": "..." } }. Tüm hata işleme ve günlük tutmayı buna göre güncelleyin.
Son teslim tarihi
10
1 Ekim 2026'dan önce üretime geçiş
Üretim geçişinizi son tarihten en az 4 hafta önce planlayın. EWS katmanını tamamen kullanımdan kaldırmadan önce doğruluğu onaylamak için geçiş süresi boyunca hem EWS hem de Graph'ı paralel olarak çalıştırın.
Unipile'a geçiş yapın ve 10 adımın 8'ini atla - Azure uygulama kaydı yok, OAuth akışları yok, yönetilecek kısıtlama mantığı yok.
Başla
Kod Örnekleri

Kod Geçişi Örnekleri: EWS'den Microsoft Graph'a

Aşağıda, solda miras kalan EWS SOAP yaklaşımı ve sağda Microsoft Graph REST eşdeğeri olmak üzere 4 yaygın işlem yan yana karşılaştırılmıştır. Kapsamlı XML'den temiz JSON'a geçiş hemen dikkat çekicidir.

1 Gelen kutusu mesajlarını oku
EWS - Öğe Bul SOAP Kullanımdan kaldırıldı
<soap:Zarf xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  
    <ÖğeBul Dolaşım="Sığ"
      xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      
        Varsayılan
      
      <IndexedPageItemView
        Döndürülen Maksimum Girdi="10"
        Öteleme="0"
        Temel Nokta="Başlangıç"/>
      
        <t:AyricaliKlasorId Kimlik="gelen kutusu"/>
      
    
  
Microsoft Graph REST Güncel
GET /benim/mesajlarım
  ?$select=konu,gönderen,alınanTarih,gövdeÖnizleme
  &$top=10
  &$orderby=receivedDateTime azalan

Yetkilendirme: Bearer {access_token}

Yanıt (JSON):
{
  "değer": [
    {
      "kimlik": "AAMkAGI...",
      "konu": "Merhaba",
      "dan": {
        "e-posta adresi": {
          "adres": "sender@example.com"
        }
      },
      "alındığıTarihSaat": "27.05.2026T..."
    }
  ],
  "@odata.nextLink": "https://..."
}
2 Bir e-posta gönderin
EWS - ÖğeOluştur SOAP Kullanımdan kaldırıldı
Öğe Oluştur Mesajın Saklanması="GönderVeKopyayıKaydet"
  xmlns="http://schemas.microsoft.com/.../messages">
  
    
      EWS'den merhabaKonu
      <t:Gövde Vücut Tipi="HTML">
        

Mesaj gövdesi

to@example.com
Microsoft Graph REST Güncel
POST /ben/ePostaGönder
Yetkilendirme: Bearer {access_token}
İçerik-Türü: uygulama/json

{
  "mesaj": {
    "konu": "Graph'tan Merhaba",
    "vücut": {
      "içerik türü": "HTML",
      "içerik": "

Mesaj gövdesi

"
}, "Alıcılara": [ { "e-posta adresi": { "adres": "to@example.com" } } ] }, "gönderilenlereKaydet": true } Yanıt: HTTP 202 Kabul Edildi (gövde yok)
3 Takvim etkinliklerini al
EWS - FindAppointments SOAP Kullanımdan kaldırıldı
<ÖğeBul Dolaşım="Sığ">
  
    Tüm Özellikler
  
  TakvimGörünümü
    Döndürülen Maksimum Girdi="50"
    Başlangıç Tarihi="2026-05-01T00:00:00Z"
    Bitiş Tarihi="31-05-2026T23:59:59Z"
  />
  
    <t:AyricaliKlasorId
      Kimlik="takvim"/>
  
Microsoft Graph REST Güncel
GET /benim/etkinliklerim
  ?$select=konu,başlangıç,bitiş,yer,düzenleyen
  &$filter=başlangıç/zaman damgası '2026-05-01T00:00:00Z' den büyük veya eşit'
    ve end/dateTime le '2026-05-31T23:59:59Z'
  &$top=50
  &$orderby=başlangıç/tarih saat artan

Yetkilendirme: Bearer {access_token}

// Temiz bir JSON dizisi döndürür
// takvim etkinliği nesneleri - XML ayrıştırma yok
4 Gerçek zamanlı değişikliklere abone ol
EWS - Canlı Yayın Bildirimleri Kullanımdan kaldırıldı

  
    
      <t:AyricaliKlasorId
        Kimlik="gelen kutusu"/>
    
    
      YeniPostaOlayı
      SilinenEtkinlik
    
  
Abone Ol



Microsoft Graph Webhook'ları Güncel
POST /abonelikler
Yetkilendirme: Bearer {access_token}
İçerik-Türü: uygulama/json

{
  "değiştirTipi": "oluşturuldu, güncellendi, silindi",
  "bildirimUrl": "https://yourapp.com/webhook",
  "kaynak": "/benim/mesajlarım",
  "sonkullanmatarihi": "03-06-2026T18:00:00Z",
  "istemciDurumu": "gizli-durumunuz"
}

// Değişiklik olduğunda grafiğiniz URL'nize POST yapar.
Aboneliği sona ermeden yenileyin.
Kalıcı bağlantı gerekmez.
Dikkat Edin

Sık Karşılaşılan Sorunlar: İzinler, İstek Sınırları, Akış Kısıtlaması

Exchange Web Services konusunda deneyimli geliştiriciler bile Microsoft Graph’e geçiş yaparken düzenli olarak aynı sorunlarla karşılaşıyor. Bu 6 tuzak, geçiş sürecinde yaşanan üretim sorunlarının çoğunu oluşturuyor. Bunları şimdiden anlamak, ileride günlerce sürecek hata giderme çalışmalarından tasarruf etmenizi sağlar. Bu zorlukların farklı sağlayıcılar arasında nasıl karşılaştırılabileceğine dair daha geniş bir bakış açısı için, E-posta API sağlayıcılarının karşılaştırması.

Uygulama İzinleri ve Yetki Devri İzinleri
Bu, en sık rastlanan karışıklık. Devredilen izinler, oturum açmış bir kullanıcı adına geçerlidir. Uygulama İzinler, kullanıcı bağlamı olmayan bir hizmet olarak işlev görür ve yönetici onayı gerektirir.
TipBağlamYönetici onayı
DevredilenKullanıcı giriş yaptıBazen
UygulamaKullanıcı yok / görevliHer zaman
Kısıtlama limitleri: HTTP 429 ve Retry-After
Microsoft Graph, uygulama başına kiracı başına 10 dakikada yaklaşık 10.000 istek sınırı uygular. Daraltıldığında, alırsınız HTTP 429 with a Yeniden Dene Sonra Saniye cinsinden bekleme süresini belirten üstbilgi. Bu üstbilgiyi yoksayıp hemen yeniden denemek daha uzun süreli bir yasaklanmaya neden olur. Her zaman kesin Retry-After değeriyle üstel geri çekilme uygulayın.
@odata.nextLink ile Sayfalama
Grafik, sonuçları varsayılan sayfa boyutuyla (genellikle 10 mesaj) sayfalara ayırır. Kontrol etmezseniz @odata.nextLink Yanıtında sessizce veri atlıyorsun. Her zaman döngü yap: eğer @odata.nextLink geçerliyse, alan yok olana kadar yine o URL'ye (atlama jetonunu içerir) başka bir GET isteği yapın.
Hassas kapsamlar için yönetici onayı
Kapsamlar gibi Mail.ReadWrite.All, Takvimler.OkuYaz.Tümüve Kullanıcı.Tümünü.Oku Bir kullanıcının uygulamanızı yetkilendirmesinden önce bir kiracı yöneticisinin onay vermesini gerektirir. Yönetici onayı olmadan, OAuth akışı şunları döndürür: AADSTS65001 hatası, kimlik doğrulama isteğinin zaman aşımına uğradığı veya iptal edildiği anlamına gelir. hata. Kullan /devamedenonayı kurumsal müşteriler için uygulama kayıt ekranı.
Delta sorgu durumu: deltaLink yönetimi
Delta sorguları, en son senkronizasyonunuzdan bu yana yapılan değişiklikleri, şunlar tarafından tanımlanan bir şekilde döndürür: deltaBağlantı Son sayfadaki belirteci saklayın - bu sizin senkronizasyon imlecinizdir. Onu kaybederseniz, tam bir yeniden senkronizasyon yapmanız gerekir. Zaman aralığını asla sabit kodlamayın - yinelenenleri veya eksik değişiklikleri işlememek için deltaLink'i kullanın.
Ek işleme: 3MB boyut sınırı
3 MB'ın altındaki ekler tek bir API çağrısında satır içi olarak dahil edilebilir. 3 MB'tan büyük dosyalar için önce bir yükleme oturumu oluşturmanız gerekir.POST /benim/mesajlar/{id}/ekler/createUploadSession) ve yığınlar halinde yükleyin. Büyük bir dosyayı satır içi eklemeye çalışmak bir hataya neden olur 413 İstek Varlığı Çok Büyük hata.
Birleşik API Yaklaşımı

E-posta Göçü Sancısını Es Geçin: Birleşik E-posta API Yaklaşımı

Karmaşık bir uygulama için tam EWS'den Graf'a geçiş, 4-8 hafta mühendislik süresi gerektirir. Azure uygulamalarını kaydetmeniz, OAuth akışlarını uygulamanız, jeton yenilemesini ele almanız, kısıtlamaları yönetmeniz, her SOAP çağrısını yeniden yazmanız, hata işlemeyi güncellemeniz ve ortamlar genelinde test etmeniz gerekir. Ardından Microsoft bir şeyleri değiştirdiğinde bunu tekrar yapın.

Unipile, Microsoft Graph, Gmail ve IMAP'ı tek bir birleşik API altında soyutlar. Kullanıcılarınızı Unipile aracılığıyla bir kez kimlik doğrulaması yaparsınız ve aynı uç noktalarla üç sağlayıcıdaki e-postaları okuyup gönderebilir, takvimleri senkronize edebilir ve kişileri yönetebilirsiniz - Azure uygulama kaydı yok, sağlayıcı başına OAuth akışı yok, sürdürülecek kısıtlama mantığı yok. Bizimkini görün e-posta API kılavuzu ve e-posta API sağlayıcısı karşılaştırması manzarayı anlamak için.

Microsoft Graph'a 50 satır vs Unipile'a 5 satır

Microsoft Graph - Gelen Kutusuoku (yerel) ~50 satır
// 1. Azure uygulama kaydı (portal.azure.com)
// 2. OAuth yetkilendirme kodu akışı
const authUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/authorize?`
  + yeni URLSearchParams{
      istemci_kimliği: CLIENT_ID,
      yanıt_türü: 'kod',      redirect_uri: YÖNLENDİRME_URI,
      scope: 'Mail.Okuma çevrimdışı_erişim',
      yanıt_modu: 'sorgu'
    });
// 3. Yönlendirmeyi ele al, jetonlar için kodu takas et
const tokenSonucu = bekliyor fetch(`https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`, ,
  method: 'POST',
  body: yeni URLSearchParamsclient_id: CLIENT_ID, client_secret: CLIENT_SECRET,
    code: authCode, redirect_uri: REDIRECT_URI,
    grant_type: 'yetkilendirme_kodu'
  })
});
const { access_token, refresh_token } = bekliyor tokenRes.json();
// 4. Süresi dolduğunda (her saat) erişim + yenileme belirteçlerini depola
// 5. Bearer token ile Çağrı Grafiği
const rez = bekliyor fetch('https://graph.microsoft.com/v1.0/me/messages?$en fazla=10', ,
  başlıklar: { Yetkilendirme: `Bearer ${access_token}` }
});
// 6. Kötüye kullanımı yönetme (HTTP 429 + Retry-After)
eğer (durum.durum === 429) {
  const retryAfter = res.headers.olsun('Tekrar-Dene-Sonra');
  bekliyor uyku(yenidenDeneSonra * 1000);
  // tekrar dene...
}
// 7. @odata.nextLink ile sayfalama yapma
const veri = bekliyor res.json();
izin mesajlar = veri.değer;
iken (veri['@odata.nextLink']) { /* ... */ }
Unipile - Gelen Kutusu Oku (Birleşik API) 5 satır
// Azure uygulaması yok, uygulanacak OAuth akışı yok,
// sınırlama mantığı yok, token yenileme yok.
// Outlook, Gmail VE IMAP için çalışır.

const müşteri = yeni UnipileClient(API_ANAHTARI);

const mesajlar = bekliyor client.email.mesajları listele({
  account_id: kullanıcıHesapKimliği, // Bağlı hesap
  Klasör: 'GELEN KUTUSU',
  limit: 10
});

// Aynı kod, aynı yanıt biçimi
// Outlook, Gmail ve IMAP için.
// Unipile OAuth, kısıtlama,
// sayfalama ve token yenileme.
SOC 2 Tip II
GDPR uyumlu
CASA Seviye 2
,991 TP3T hizmet süre garantisi
Outlook + Gmail + IMAP
Aynı OAuth altyapısını yeniden oluşturmayı bırak
EWS'ten Graph'a geçişin karmaşıklığını Unipile halleder, böylece ekibiniz kimlik doğrulama akışları yerine özellikler yayınlar. Outlook, Gmail ve IMAP'te tek bir API ile e-postaları okuyun, mesaj gönderin, takvimleri senkronize edin.
Unipile ile inşa etmeye başlayın
Unipile - Outlook REST API & EWS SSS

Outlook REST API ve EWS - SSS

Outlook REST API'sinin kullanımdan kaldırılması, EWS'nin eskimesi ve Microsoft Graph'a geçişle ilgili sık sorulan sorular

Hayır. Outlook REST API (v2.0 ve beta), Microsoft tarafından kullanımdan kaldırıldı. Eski Outlook REST uç noktalarına yapılan tüm istekler artık başarısız oluyor. Resmi ikamesi şudur Microsoft Graph, aynı e-posta ve takvim işlemlerini ve çok daha fazlasını kapsayan. Uygulamanız hala Outlook REST uç noktalarını kullanıyorsa, Graph'a geçiş isteğe bağlı değildir.

Outlook REST API, yalnızca Outlook posta kutusu işlemlerini kapsayan özel bir REST API idi. Microsoft Graph, tüm Microsoft 365 ekosistemi için birleşik API'dir: Outlook posta, takvim, kişiler, Teams, SharePoint, OneDrive ve daha fazlası. Her ikisi de OAuth 2.0 kimlik doğrulamasını kullanır, ancak Graph tek bir temel URL kullanır. https://graph.microsoft.com/v1.0 ve kullanımdan kaldırılan Outlook'a özgü uç noktalardan daha tutarlı, özellik açısından zengin bir arayüz sunar.

Microsoft belirledi 1 Ekim 2026 Exchange Online'da (Microsoft 365) EWS'nin kullanımdan kaldırılmasına ilişkin zorlu uygulama tarihidir. Bu tarihten sonra EWS, Microsoft 365 posta kutuları için çalışmayacaktır. Bir uyum süresi yoktur ve duyurulmuş bir uzatma da bulunmamaktadır. EWS, şirket içi Exchange Server kurulumları için çalışmaya devam edecektir; bu kurulumlar bu son tarihten etkilenmez.

Microsoft Graph EWS'nin resmi yerine geçmektedir. Her EWS işleminin bir Graph karşılığı vardır: ÖğeBul olur GET /benim/mesajlarım, ÖğeOluştur (e-posta gönder) olur POST /ben/ePostaGönder, akış bildirimleri şuradan Graph web kancaları haline gelir POST /abonelikler. Kimlik doğrulama, Azure AD aracılığıyla NTLM/Kerberos/Basic Auth'tan OAuth 2.0'a geçiyor. Daha basit bir yol isteyen ekipler için, bir Unipile gibi birleşik e-posta API'si üç sağlayıcıyı tek bir SDK altında soyutlar.

Hayır. Outlook REST API v2.0 kullanımdan kaldırıldı. Bu uç noktalara yapılan istekler hatalarla başarısız olacaktır. Microsoft Graph, Outlook e-posta ve takvim entegrasyonu için tek desteklenen yoldur. Tüm yeni entegrasyonlar şunları hedeflemelidir https://graph.microsoft.com/v1.0 ve OAuth 2.0 kimlik doğrulamasını kullanın.

Çaba, OAN (Office AnyWhere) uygulamanızın karmaşıklığına bağlıdır. Birkaç okuma/yazma işlemiyle basit bir entegrasyon genellikle 1-2 hafta sürer. Akış bildirimleri, delta senkronizasyonu, çok klasörlü işlemler ve kapsamlı hata işleme özelliğine sahip karmaşık bir uygulama ise 4-8 hafta sürebilir. Geçiş şunları gerektirir: Azure AD uygulama kaydı, OAuth 2.0 uygulaması, uçtan uca değiştirme, kısıtlama mantığı, sayfalama güncellemeleri ve hata biçimi değişiklikleri. Bir alternatif ise kullanmaktır Unipile'ın Microsoft Graph soyutlaması, çoğu karmaşıklığı otomatik olarak halleden.

Ekim 2026 son tarihi özel olarak şunlar için geçerlidir Exchange Web Servisleri Exchange Online'da kullanım. Office.js API'sini kullanan Outlook eklentileri ayrı bir zaman çizelgesindedir. Ancak Microsoft, yerel COM ve VSTO eklentilerini aşamalı olarak kullanımdan kaldırıp web tabanlı Office Eklentilerini tercih etmektedir. Eklentiniz dahili olarak EWS çağrıları yapıyorsa, eklenti çerçevesinden bağımsız olarak bu çağrılar Ekim 2026'da başarısız olacaktır. Eklenti türünüze özel en son rehberlik için Microsoft 365 yol haritasını kontrol edin.

Outlook REST API kullanımdan kaldırıldığı için, ilgili kapsamlar şunlar içindir Microsoft Graph. Temel e-posta kapsamları: Mail.Read (mesajları oku), Mail.Gönder (e-posta gönder), Mail.ReadWrite (mesajları oku ve değiştir), Takvimler.OkumaYazma (takvim erişimi), Kişiler.Oku (kişiler). Her zaman dahil et çevrimdışı_erişim yenileme belirteci almak için. Uygulama düzeyinde kapsamlar gibi Mail.ReadWrite.All kiracı yöneticisinden yönetici onayı gerektirir ve yalnızca kullanıcı bağlamı olmayan daemon senaryoları için kullanılmalıdır. Bkz. Microsoft Graph OAuth kılavuzu tam bir kurulum kılavuzu için.

Microsoft Graph, kiracı başına uygulama başına 10 dakika içinde yaklaşık 10.000 istekle hız sınırlarını zorlar. Daraltıldığında, API şunu döndürür HTTP 429 Çok Fazla İstek with a Yeniden Dene Sonra Saniyeler içinde tam bekleme süresini belirten başlık. Kritik kural: her zaman saygı göster Yeniden Dene Sonra Değeri tam olarak. Bu pencere kapanmadan önce tekrar denemek, kısıtlama süresini uzatır. Her kiracının ayrı sınırlarının olduğu çok kiracılı SaaS uygulamalarında, bir kiracıdaki kısıtlama diğerlerini etkilemez. Ayrıca karşılaştırın IMAP bir alternatif olarak throttling of large ölçekte bir sorunsa.

Unipile bir birleşik e-posta API'si Microsoft Graph, Gmail ve IMAP'i tek bir SDK altında birleştirir. Microsoft Graph OAuth akışlarını uygulamak, erişim belirteçlerini yönetmek, sınırlamaları ele almak ve sağlayıcıya özgü kod yazmak yerine, kullanıcılarınızın hesaplarını Unipile aracılığıyla bağlarsınız ve üç sağlayıcı için de tutarlı tek bir API kullanırsınız. Bu, özellikle Outlook ve Gmail'i ayrı entegrasyon kodu tutmadan aynı anda desteklemesi gereken SaaS uygulamaları için etkileyicidir. Unipile, kimliği doğrulanmış her kullanıcı adına hareket eden bağımsız bir teknik aracı olarak faaliyet gösterir ve Microsoft ile bağlantılı değildir veya Microsoft tarafından onaylanmamıştır.

EWS geçişini tamamen atlayın. Ekibimiz yardım etmek için burada.

Başla
tr_TRTR