Yazar: Kristijan Sekereš

Exchange Online'da EWS 1 Nisan 2027'de Kapanıyor: Entegrasyonlarınızı Microsoft Graph'a Taşımak

Karanlık bir odada e-posta gelen kutusunu gösteren açık dizüstü bilgisayar

Microsoft, Exchange Online'da Exchange Web Services'i (EWS) kapatmaya başladı. İlk uygulama adımları bu ay devreye giriyor; EWS ayarlarına hiç dokunmamış kiracılar ise bunun ardından tek tek kapatılacak. Microsoft'un EWS'yi tamamen kapatma hedefi 1 Nisan 2027, ancak 1 Ekim tarihli MC1485116 numaralı Message Center bildirimi, dünya geneli ve ABD kamu bulutlarındaki dağıtımın Temmuz 2027 başına kadar tamamlanmasını öngörüyor. Planınızı 1 Nisan'a göre yapın. Microsoft, Nisan 2027'den sonra istisna olmayacağını açıkça söyledi.

Şirketinizin geliştirdiği bir şey Microsoft 365 posta kutularıyla EWS üzerinden konuşuyorsa en geç bu tarihte, belki de çok daha önce çalışmayı bırakır. Akla ilk gelenler: müşteri e-postalarını ilgili hesaplara kaydeden bir CRM, bir arşivleme veya saklama betiği, bir toplantı odası rezervasyon ekranı, ortak bir destek posta kutusunu okuyan bir talep yönetim sistemi, ekip başına e-posta sayan bir raporlama işi. Çözüm, Microsoft Graph'a karşı yeniden yazmak; üstelik EWS'nin yapabildiği bazı şeylerin Graph'ta hiçbir karşılığı yok.

Tarih Tarih Neler Oluyor

Microsoft, EWS'yi her kiracı için üç değer alan EWSEnabled ayarıyla yönetiyor: Null (varsayılan), True ve False. Bunun yanında artık ikinci bir ayar daha var: EWSAllowedAppIDs, yani EWS'yi kullanmaya devam edebilecek uygulama kimliklerinin listesi. Güncel Microsoft Learn sayfası ana hatları şöyle veriyor: “Ekim 2026: EWS tüm kuruluşlar için küresel olarak devre dışı bırakılmaya başlar” ve “Nisan 2027: EWS tamamen devre dışı bırakılır.”

Ayrıntılar, Exchange ekibinin 1 Ekim tarihli EWS Deprecation Is Here yazısında. Dünya geneli ticari bulut için:

  • 2 Ekim 2026, Pasifik saatiyle gün sonu: Microsoft, EWSEnabled değeri True olan ama izin listesi bulunmayan her kiracıyı kayda alır.
  • 8 ve 9 Ekim 2026: Microsoft bu kiracılar için izin listesini oluşturur ve son 60 günde EWS kullanan uygulama kimlikleriyle doldurur.
  • 10 Ekim 2026'dan itibaren: EWSEnabled True olduğunda izin listesi zorunludur. Listede olmayan bir uygulama reddedilir.
  • Ardından ikinci aşama: hâlâ Null durumunda olan kiracıların EWSEnabled değeri False yapılır; bu da EWS'yi tüm uygulamalar için engeller. Her kiracı Message Center'da 7 gün önceden uyarı alır ve Microsoft, kısa süre önce 60 günlük kullanıma göre bir izin listesi doldurur; böylece bir yönetici True ile EWS'yi yeniden açabilir.
  • 1 Nisan 2027: Microsoft'un EWS'nin “tamamen ve kalıcı olarak devre dışı” bırakılması için hedef tarihi; bundan sonra kiracı yöneticileri EWSEnabled ayarını hiç değiştiremez. MC1485116, Worldwide, GCC, GCC High ve DoD genelinde dağıtımın beklenen bitişi olarak Temmuz 2027 başını veriyor; yani bazı kiracılarda EWS biraz daha uzun süre açık kalabilir. Kimse bunlardan biri olacağına güvenmemeli.

Microsoft'un diğer bulutlarındaki kiracılar kendi takvimlerini Message Center üzerinden alıyor.

İzin listesi çözüm değil, zaman kazandırır

Otomatik liste 60 günlük trafiğe göre oluşturuluyor ve Microsoft'un kendi 4 Eylül tarihli rehberi, listenin “seyrek çalışan uygulamaları atlayabileceği” konusunda uyarıyor. Çeyrek sonu dışa aktarımı ya da yıl sonu arşiv işi listede yer almaz ve bir sonraki çalışmasında başarısız olur.

İzin listesindeki değişikliklerin etkili olması 24 saat, EWSEnabled değişikliklerininki ise yaklaşık bir saat sürüyor. Bir hatadan sonra yaptığınız her düzeltme en az bir güne mal olur.

Kiracınızın durumunu görmek için Exchange Online PowerShell erişimi olan bir yönetici şunu çalıştırabilir:

Get-OrganizationConfig | Format-List EWSEnabled
Get-OrganizationConfig -RetrieveEwsOperationAccessPolicy | Format-List EwsAllowedAppIDs

Bu Yazı Kimin İçin, Kimler Okumayı Bırakabilir

Şirket içi Exchange Server etkilenmiyor. Microsoft, kullanımdan kaldırmanın “yalnızca Microsoft 365 ve Exchange Online için” geçerli olduğunu ve “Exchange Server'daki EWS'de hiçbir değişiklik olmadığını” söylüyor. Tüm posta kutularınız kendi sunucularınızdaysa burada durabilirsiniz.

Hibrit kurulumlar daha yakından incelenmeli. Şirket içindeki posta kutuları EWS kullanmaya devam edebilir; buluttaki posta kutuları ise Graph'a geçmek zorunda. Microsoft'un 30 Eylül tarihli hibrit yazısı, hemen önlem gerektiren iki durumu ele alıyor. Bunlardan biri arşivi Exchange Online'da bulunan şirket içi posta kutuları; şimdilik önerilen, EWS'yi açık tutmak ve hibrit uygulamayı izin listesine eklemek.

Paket yazılım, sağlayıcının sorumluluğunda. EWS'yi çağıran şey ticari bir ürünse Graph sürümünü çıkarmak sağlayıcının işi; sizin işiniz onlardan bir tarih almak ve güncellemeyi kurmak. Microsoft'un kendi istemcileri de farklı değil: bazıları hâlâ kullanım raporlarında görünüyor ve güncellenene kadar izin listesinde olmaları gerekiyor.

Kurum içi kod sizin sorumluluğunuzda. Betikler, iç servisler, özelleştirilmiş açık kaynak araçlar ve bir ajansın yıllar önce kurduğu entegrasyonlar için bunları düzeltecek bir üst sağlayıcı yok. Asıl iş burada. Ölçek hakkında fikir vermesi için: Exchange ile EWS üzerinden konuşmaya yarayan Python kütüphanesi exchangelib, geçen ay PyPI'dan 1.174.625 kez indirildi. Bunun bir kısmı şirket içi kullanım, ama yine de ne kadar kodun doğrudan EWS konuştuğuna dair bir fikir veriyor.

Birinci Adım: EWS Kullanan Her Şeyi Bulun

İşe Microsoft 365 yönetim merkezindeki EWS kullanım raporuyla başlayın (Raporlar, Kullanım, Exchange, ardından EWS kullanımı sekmesi). Rapor her uygulama için Microsoft Entra uygulama kimliğini, o uygulamanın çağırdığı her SOAP eylemini, çağrı hacmini ve son etkinlik tarihini listeliyor. 7, 30 veya 90 gün geriye bakabilir ve CSV olarak dışa aktarabilirsiniz.

Rapor hakkında bilmeniz gereken üç şey:

  • Veriler haftalık olarak toplanıyor ve görünmesi 10 güne kadar sürebiliyor.
  • Uygulama kimliği bir sahip değildir. Her kimliği Microsoft Entra'daki Kurumsal uygulamalarla eşleştirin, ardından onu çalıştıran kişiyi veya ekibi bulun. Kimsenin tanımadığı birkaç kimlik çıkmasını bekleyin.
  • SOAP eylemi sütunu her işin ne kadar büyük olduğunu gösterir. Yalnızca FindItem ve GetItem çağıran bir uygulama kısa bir iştir. SyncFolderItems, Subscribe ve ExportItems çağıran bir uygulama ise bir projedir.

90 gün bile yıllık işleri kaçırır; bu yüzden diğer tarafı da kontrol edin: zamanlanmış görevler ve cron girdileri ile EWS uç noktası (Exchange.asmx), .NET için EWS Managed API ve exchangelib için taranmış kod depoları. Microsoft'un kullanımdan kaldırma sayfası ayrıca .NET kodu için bir EWS analiz aracına (Visual Studio ve VS Code'da EWS çağrılarını işaretler ve Graph karşılıklarını önerir) ve yapay zeka destekli yeniden düzenleme üzerine bir eğitime bağlantı veriyor.

İkinci Adım: Her Entegrasyonun Ne Olacağına Karar Verin

Listedeki her uygulama dört cevaptan birini alır:

  1. Kullanımdan kaldırın. Bazı entegrasyonlar yalnızca kimse kapatmadığı için var.
  2. Güncelleyin. Sağlayıcı ürünleri sağlayıcının yükseltmesiyle güncellenir. Tarihi şimdiden kararlaştırın.
  3. Microsoft Graph'a karşı yeniden yazın. Kurum içi kod için varsayılan yol.
  4. Yeniden tasarlayın. Graph'ın hiçbir zaman sahip olmayacağı bir yeteneğe dayanan her şey için (aşağıya bakın).

Microsoft, bir iş akışını yeniden uygulamanın yollarından biri olarak Power Platform'u da sayıyor. Ekleri bir klasöre ileten bir betik için bu en ucuz cevap olabilir.

Graph'a Geçiş Gerçekte Neleri Kapsıyor

EWS işlemlerinin çoğunun doğrudan bir Graph karşılığı var ve Microsoft bir EWS'den Graph'a eşleme tablosu tutuyor. Eşleme işin kolay kısmı. Zor kısımlar, tablonun göstermedikleri.

İzinler daralıyor ve bu bir avantaj

Oturum açmış bir kullanıcı olmadan EWS kullanan bir uygulama, Microsoft'un “tüm posta kutularına tam erişim” olarak tanımladığı EWS uygulama iznine sahiptir. Graph bunu ayrı izinlere bölüyor: Mail.Read, Mail.ReadBasic, Mail.Send, Calendars.ReadWrite, MailboxSettings.Read ve diğerleri.

Bir uygulamanın hangi posta kutularına erişeceğini de sınırlayabilirsiniz. RBAC for Applications in Exchange Online, bir izni bir yönetim kapsamına veya bir yönetim birimine karşı atar ve eski Application Access Policies'in yerini alır. Bir oda rezervasyon ekranı on iki oda posta kutusunun takvimlerini okuyabilir, başka hiçbir şeyi okuyamaz. Bir tuzak var: bu şekilde verilen yetkiler Microsoft Entra'daki kiracı genelindeki yetkilere eklenir; dolayısıyla Mail.Read için orada hâlâ onay verilmişse kapsamınız hiçbir şeyi kısıtlamaz. Entra'daki yetkiyi kaldırın.

Uygulama kimlik doğrulaması için mümkün olduğunda istemci gizli anahtarları yerine sertifika kullanın ve kimlik bilgilerini betiklerin ve depoların dışında tutun.

Senkronizasyon ve bildirimler çevrilmez, yeniden kurulur

Posta kutusu verilerinin yerel bir kopyasını tutan her şey için genellikle en büyük değişiklik budur.

Senkronizasyon. SyncFolderItems, Graph'taki mesaj delta sorgusuna; SyncFolderHierarchy ise posta klasörü delta sorgusuna karşılık gelir. Mesaj deltası her seferinde tek bir klasörde çalışır; bu yüzden tam bir posta kutusu senkronizasyonu, klasör ağacını izlemeyi ve her klasör için ayrı bir delta bağlantısı saklamayı gerektirir. Filtreleme sınırlıdır (yalnızca alınma tarihine göre) ve sonuçlar, filtrenizle eşleşmeseler bile silmeleri, klasör dışına taşımaları ve okundu durumu değişikliklerini içerir.

Bildirimler. EWS akış (streaming) ve anlık (push) abonelikleri, Graph değişiklik bildirimlerine dönüşür; bunlar sizin çalıştırdığınız bir webhook'a ya da Azure Event Hubs veya Event Grid'e iletilir. Bir webhook'a Microsoft tarafından erişilebilmesi gerekir; bu da güvenlik duvarının arkasından açık bir bağlantı tutan bir betik için mimari bir değişiklik demektir. Posta, takvim ve kişiler için abonelikler en fazla 10.080 dakika (yedi günden biraz az), bildirim veriyi de taşıyorsa 1.440 dakika sürer; dolayısıyla bir şeyin bunları yenilemesi gerekir. Her posta kutusu, tüm uygulamalar genelinde en fazla 1.000 etkin aboneliğe izin verir.

Sağlam çalışan örüntü şu: bildirimi bir ipucu olarak kabul edin, neyin değiştiğini görmek için delta sorgusunu çalıştırın ve kaçırılan bir bildirimin kaybettireceği her şeyi yakalamak için sorguyu bir zamanlayıcıyla da çalıştırın.

Veriler, kimlikler ve iş hacmi

  • Saklanan kimlikler. CRM'iniz veya talep yönetim sisteminiz e-postaları kayıtlara bağlamak için EWS öğe kimliklerini sakladıysa bu bağlantıların dönüştürülmesi gerekir. Graph'ta tam da bunun için bir translateExchangeIds işlevi var. Dönüşümü kendi başına bir geçiş adımı olarak planlayın.
  • Aramalar. ResolveNames People API'ye, GetUserAvailability getSchedule'a, ofis dışı ayarları posta kutusu ayarlarına karşılık gelir. Bunlar birebir aynı değil, yakın karşılıklar.
  • Kısıtlama (throttling). Graph her uygulama ve posta kutusu çifti için 10 dakikada 10.000 istek, dört eşzamanlı istek ve 5 dakikada 150 MB yükleme sınırı uyguluyor. Tek bir posta kutusuna karşı onlarca paralel EWS iş parçacığı çalıştıran bir toplu iş, bu sayılara göre yeniden tasarlanmak zorunda.

Eksikler ve hiç gelmeyecek olanlar

Microsoft, Graph'ta hâlâ eksik olan EWS yeteneklerinin bir yol haritasını yayımlıyor. Bu haritada arşiv, ortak klasör ve grup posta kutuları için tam doğrulukta içe ve dışa aktarma, yerinde arşivlere erişim, Exchange Admin API üzerinden klasör izinleri ve MIME'dan taslak olmayan mesaj oluşturma yer alıyor. Hedeflerin çoğu 2026'nın dördüncü çeyreği. Üçünün vadesi artık sona ermiş olan üçüncü çeyrekti: notlar API'si Ağustos 2026'da Graph'ta genel kullanıma sunuldu, kişisel kişi listeleri ise Haziran 2026'dan beri önizlemede (beta). Geri kalanlar için tasarımınızı bunlara dayandırmadan önce gerçekte neyin yayımlandığını kontrol edin. Microsoft'un kendi uyarısı: bir yetenek yol haritasında yoksa, EWS kapanmadan önce bir Graph karşılığı “planlamayın”.

Üç yeteneğin Graph'a hiçbir zaman gelmeyeceği kesinleşti:

  • Genel ortak klasör erişimi (klasörlerin ve öğelerin oluşturulması, okunması, güncellenmesi ve silinmesi).
  • Genel Microsoft 365 Grup posta kutusu erişimi. Graph bunun yerine grup konuşmalarını, yazışma dizilerini ve gönderileri kapsıyor.
  • Keşif (discovery) posta kutusu erişimi. Microsoft bunun yerine Purview eDiscovery'yi gösteriyor.

Bir araç bunlardan birine dayanıyorsa kodu taşımak yetmez: önce verinin ya da iş akışının başka bir yere taşınması gerekir ve bu, yeniden yazmaktan daha uzun sürer.

Altı Aylık Bir Plan

Bugünden 1 Nisan 2027'ye altı aydan biraz az zaman var. Gerçekçi bir sıralama:

Ekim 2026: nerede durduğunuzu görün. EWSEnabled ayarını ve izin listesini kontrol edin. Kullanım raporunun 90 günlük verisini dışa aktarın. Microsoft'un doldurduğu listeyi gözden geçirin, orada olmaması gerekenleri çıkarın ve bildiğiniz seyrek çalışan işleri ekleyin. Kiracınız hâlâ Null durumundaysa Microsoft'un False'a geçirmesini bekleyip neyin bozulduğunu sonradan öğrenmek yerine listeyi ve True değerini kendiniz ayarlamayı düşünün.

Kasım 2026: önceliklendirme. Her uygulama kimliğine bir sahip ve bir cevap (kullanımdan kaldır, güncelle, yeniden yaz, yeniden tasarla) atayın. Kodu tarayın. Ortak klasörlere, grup posta kutularına veya keşif posta kutularına dokunan her şeyi işaretleyin ve yeniden tasarıma şimdi başlayın. Graph uygulama kayıtlarını kapsamı daraltılmış izinlerle oluşturun.

Aralık 2026-Ocak 2027: geliştirme. İşletmenin ilk eksikliğini hissedeceği entegrasyonla başlayın. Senkronizasyon ve bildirim altyapısını bir kez kurun ve yeniden kullanın. Saklanan kimlikleri dönüştürün.

Şubat 2027: ikisini yan yana çalıştırın. EWS hâlâ çalışırken eski ve yeni sürümleri aynı posta kutularına karşı çalıştırın ve çıktıları karşılaştırın. Her biri kabul edildikçe kimliğini izin listesinden çıkarın. Bu aynı zamanda testin kendisi: 24 saat bekleyin ve başka hiçbir şeyin durmadığını doğrulayın.

Mart 2027: EWS'yi kendiniz kapatın. EWSEnabled değerini 1 Nisan'dan çok önce False yapın. Gözden kaçırdığınız her şey, EWS'yi hâlâ yeniden açabileceğiniz bir dönemde başarısız olur. 1 Nisan'dan sonra bu seçenek ortadan kalkar. Üç aylık ve yıllık işleri de bu tarihten önce bilinçli olarak bir kez test edin: ilk çeyrek kapanırken çalışan bir iş, EWS kapandıktan sonra ilk kez çalışmış olacak.

Nereden Destek Alabilirsiniz

Zor olan, ilk geliştiricisi artık ortada olmayan entegrasyondur. Eski sistem bakım hizmetimiz tam bunun için: mevcut kodu okuyor, EWS kısımlarını Microsoft Graph'a karşı yeniden yazıyor (izinler, senkronizasyon, bildirimler, kimlik geçişi) ve sayılar tutana kadar eskiyle yeniyi yan yana çalıştırıyoruz. Bunun yerine kendi ekibinizin içinde çalışacak mühendislere ihtiyacınız varsa ekip takviyesi hizmetimize göz atın.

Kullanım raporunuz kimsenin tanımadığı uygulama kimlikleriyle doluysa office@c9group.dev adresine yazın.

Platform Geçişleri

Yeni rehberler ve kural değişiklikleri e-postanızda

Bir kural değiştiğinde, bir son tarih kaydığında ya da yeni bir rehber yayımladığımızda size e-postayla göndeririz.

Önce bir onay bağlantısı göndeririz. Aboneliğinizi istediğiniz zaman sonlandırabilirsiniz. Gizlilik Politikası