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.
// 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ı`);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.
| İ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şturunv2.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.
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.
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.
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.
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.
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.
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.
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.
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 API
Microsoft.Exchange.WebServices) - EWS Üzerinden Yayın Bildirimleri
- EWS taklidi
ExchangeYetkisi) - 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şlat2026'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 |
// 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önderildiTakvim 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şturOAuth 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.
Azure AD Uygulama Kaydı: 5 Adım
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.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.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.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.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ı
| 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
// 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_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.
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.
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.
<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
ÖğeŞekli>
<IndexedPageItemView
Döndürülen Maksimum Girdi="10"
Öteleme="0"
Temel Nokta="Başlangıç"/>
<t:AyricaliKlasorId Kimlik="gelen kutusu"/>
ÜstKlasörKimlikleri>
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://..."
}
Öğ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
Öğeler>
ÖğeOluştur>
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)
<ÖğeBul Dolaşım="Sığ">
Tüm Özellikler
ÖğeŞekli>
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"/>
ÜstKlasörKimlikleri>
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
<t:AyricaliKlasorId
Kimlik="gelen kutusu"/>
YeniPostaOlayı
SilinenEtkinlik
Abone Ol
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.
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ı.
| Tip | Bağlam | Yönetici onayı |
|---|---|---|
| Devredilen | Kullanıcı giriş yaptı | Bazen |
| Uygulama | Kullanıcı yok / görevli | Her zaman |
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 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.
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ı.
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.
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.
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
// 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']) { /* ... */ }
// 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.
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