بقلم Kristijan Sekereš
انتهاء EWS في Exchange Online في 1 أبريل 2027: نقل تكاملاتك إلى Microsoft Graph

بدأت Microsoft إيقاف Exchange Web Services (EWS) في Exchange Online. فخطوات الإنفاذ الأولى تجري هذا الشهر، وبعد ذلك تُوقَف المستأجرات التي لم تلمس إعدادات EWS لديها واحدة تلو الأخرى، واعتباراً من 1 أبريل 2027 ينتهي EWS في كل مستأجرات Microsoft 365. وقد قالت Microsoft بوضوح إنه لن تكون هناك استثناءات بعد أبريل 2027.
إن كان هناك شيء بنته شركتك يتواصل مع صناديق بريد Microsoft 365 عبر EWS، فسيتوقف عن العمل بحلول ذلك التاريخ على أبعد تقدير، وربما قبله بكثير. المشتبه بهم المعتادون: نظام CRM يربط رسائل العملاء بحساباتهم، أو سكربت أرشفة أو احتفاظ بالبيانات، أو شاشة حجز قاعات الاجتماعات، أو نظام تذاكر يقرأ صندوق بريد دعم مشتركاً، أو مهمة تقارير تحصي الرسائل لكل فريق. والحل إعادة كتابة مقابل Microsoft Graph، وبعض ما كان EWS يستطيع فعله لا مقابل له في Graph على الإطلاق.
ما الذي يحدث، تاريخاً بتاريخ
تتحكم Microsoft في EWS لكل مستأجر عبر الإعداد EWSEnabled، وله ثلاث قيم: Null (الافتراضية)، وTrue، وFalse. وبجانبه يوجد الآن إعداد ثانٍ، EWSAllowedAppIDs: قائمة بمعرّفات التطبيقات المسموح لها بمواصلة استخدام EWS. وتقدّم صفحة Microsoft Learn الحالية الخطوط العريضة: "أكتوبر 2026: يبدأ تعطيل EWS عالمياً لكل المؤسسات" و"أبريل 2027: يُعطَّل EWS بالكامل."
والتفاصيل في منشور فريق Exchange بتاريخ 1 أكتوبر، EWS Deprecation Is Here. وبالنسبة للسحابة التجارية العالمية:
- 2 أكتوبر 2026، نهاية اليوم بتوقيت المحيط الهادئ: تسجّل Microsoft كل مستأجر ضُبط فيه
EWSEnabledعلى True دون قائمة سماح. - 8 و9 أكتوبر 2026: لتلك المستأجرات، تُنشئ Microsoft قائمة السماح وتملؤها بمعرّفات التطبيقات التي استخدمت EWS خلال الأيام الستين السابقة.
- اعتباراً من 10 أكتوبر 2026: حين يكون
EWSEnabledمضبوطاً على True، تصبح قائمة السماح إلزامية. والتطبيق غير المدرج فيها يُرفض. - المرحلة الثانية، بعد ذلك: المستأجرات التي لا تزال على Null يُضبط فيها
EWSEnabledعلى False، وهذا يحظر EWS لكل التطبيقات. ويحصل كل مستأجر على تحذير قبل 7 أيام في Message Center، وتملأ Microsoft قائمة سماح من استخدام 60 يوماً قبل ذلك بقليل، حتى يستطيع المسؤول إعادة تشغيل EWS بضبطه على True. - 1 أبريل 2027: يُعطَّل EWS "بالكامل ونهائياً"، ويفقد مسؤولو المستأجرات القدرة على تغيير
EWSEnabledأصلاً.
أما المستأجرات في سحابات Microsoft الأخرى فتحصل على جداولها الزمنية الخاصة عبر Message Center.
قائمة السماح تشتري الوقت، لا الحل
تُبنى القائمة التلقائية من حركة 60 يوماً، وإرشادات Microsoft نفسها الصادرة في 4 سبتمبر تحذّر من أنها "قد تفوّت تطبيقات تعمل على فترات متباعدة". فمهمة تصدير نهاية الربع أو مهمة أرشفة نهاية السنة لن تكون فيها، وستفشل في المرة التالية التي تعمل فيها.
تستغرق التغييرات على قائمة السماح 24 ساعة لتسري، وتستغرق التغييرات على EWSEnabled نحو ساعة. فأي إصلاح تجريه بعد إخفاق يكلّفك يوماً على الأقل.
لمعرفة وضع المستأجر لديك، يستطيع المسؤول الذي يملك Exchange Online PowerShell تشغيل:
Get-OrganizationConfig | Format-List EWSEnabled
Get-OrganizationConfig -RetrieveEwsOperationAccessPolicy | Format-List EwsAllowedAppIDs
لمن هذا المقال، ومن يستطيع التوقف عن القراءة
Exchange Server المحلي غير متأثر. تقول Microsoft إن الإيقاف ينطبق "على Microsoft 365 وExchange Online فقط"، وإنه "لا توجد تغييرات على EWS في Exchange Server". فإن كانت كل صناديق بريدك على خوادمك الخاصة، يمكنك التوقف هنا.
الإعدادات الهجينة تحتاج إلى نظرة أدق. صناديق البريد المحلية تستطيع مواصلة استخدام EWS؛ أما صناديق البريد السحابية فيجب أن تنتقل إلى Graph. ويغطي منشور Microsoft حول البيئات الهجينة بتاريخ 30 سبتمبر حالتين تحتاجان إلى إجراء الآن، منها صناديق البريد المحلية التي لها أرشيفات في Exchange Online، والنصيحة حالياً فيها هي إبقاء EWS مفعّلاً ووضع التطبيق الهجين في قائمة السماح.
البرمجيات الجاهزة مسؤولية المورّد. إن كان ما يستدعي EWS منتجاً تجارياً، فتوفير نسخة تعمل بـ Graph مسؤولية المورّد، ومسؤوليتك أن تحصل منه على موعد وأن تثبّت التحديث. وعملاء Microsoft أنفسهم ليسوا استثناء: فبعضهم لا يزال يظهر في تقارير الاستخدام ويحتاج إلى قائمة السماح إلى أن يُحدَّث.
الشيفرة الداخلية مسؤوليتك. السكربتات، والخدمات الداخلية، وأدوات المصدر المفتوح المخصصة، والتكاملات التي بنتها وكالة قبل سنوات، لا أحد في المنبع يصلحها. وهنا يقع العمل. وللإحاطة بالحجم: exchangelib، وهي مكتبة Python للتواصل مع Exchange عبر EWS، نُزّلت 1,174,625 مرة من PyPI خلال الشهر الماضي. بعض ذلك استخدام محلي، لكنه يعطي فكرة عن حجم الشيفرة التي تخاطب EWS مباشرة.
الخطوة الأولى: اعثر على كل ما يستخدم EWS
ابدأ بـ تقرير استخدام EWS في مركز إدارة Microsoft 365 (Reports، ثم Usage، ثم Exchange، ثم تبويب EWS usage). فهو يسرد لكل تطبيق معرّف التطبيق في Microsoft Entra، وكل إجراء SOAP استدعاه ذلك التطبيق، وحجم الاستدعاءات، وتاريخ آخر نشاط. ويمكنك النظر إلى الوراء 7 أو 30 أو 90 يوماً والتصدير إلى CSV.
ثلاثة أمور يجب معرفتها عنه:
- تُجمَّع البيانات أسبوعياً وقد تستغرق حتى 10 أيام لتظهر.
- معرّف التطبيق ليس مالكاً. طابق كل معرّف مع Enterprise applications في Microsoft Entra، ثم ابحث عن الشخص أو الفريق الذي يشغّله. وتوقّع بضعة معرّفات لا يعرفها أحد.
- عمود إجراءات SOAP يخبرك بحجم كل مهمة. فالتطبيق الذي لا يستدعي سوى
FindItemوGetItemمهمة قصيرة. أما الذي يستدعيSyncFolderItemsوSubscribeوExportItemsفمشروع.
حتى 90 يوماً تفوّت المهام السنوية، فافحص الجانب الآخر أيضاً: المهام المجدولة ومدخلات cron، ومستودعات الشيفرة بحثاً عن نقطة نهاية EWS (Exchange.asmx)، وEWS Managed API لـ .NET، ومكتبة exchangelib. وتحيل صفحة الإيقاف لدى Microsoft أيضاً إلى أداة تحليل EWS لشيفرة .NET (تشير إلى استدعاءات EWS في Visual Studio وVS Code وتقترح مقابلاتها في Graph)، وإلى دليل تعليمي لإعادة الهيكلة بمساعدة الذكاء الاصطناعي.
الخطوة الثانية: قرّر ما يصبح عليه كل تكامل
كل تطبيق في القائمة يحصل على واحدة من أربع إجابات:
- أوقفه. بعض التكاملات موجود فقط لأن أحداً لم يوقفه.
- حدّثه. المنتجات التجارية تحصل على ترقية من المورّد. اتفق على الموعد الآن.
- أعد كتابته مقابل Microsoft Graph. الخيار الافتراضي للشيفرة الداخلية.
- أعد تصميمه. لكل ما يعتمد على قدرة لن تتوفر في Graph أبداً (انظر أدناه).
وتذكر Microsoft أيضاً Power Platform كطريقة لإعادة تنفيذ سير العمل. وبالنسبة لسكربت يحوّل المرفقات إلى مجلد، قد يكون هذا أرخص إجابة.
ما الذي تتضمنه إعادة الكتابة مقابل Graph فعلاً
لمعظم عمليات EWS مقابل مباشر في Graph، وتحافظ Microsoft على جدول مطابقة من EWS إلى Graph. والمطابقة هي الجزء السهل. أما الأجزاء الأصعب فهي التي لا يُظهرها الجدول.
الصلاحيات تضيق، وهذه ميزة
التطبيق الذي يستخدم EWS دون مستخدم مسجّل الدخول يحمل صلاحية تطبيق EWS، التي تصفها Microsoft بأنها "وصول كامل إلى كل صناديق البريد". ويقسّم Graph ذلك إلى صلاحيات منفصلة: Mail.Read، وMail.ReadBasic، وMail.Send، وCalendars.ReadWrite، وMailboxSettings.Read، وهكذا.
ويمكنك أيضاً تقييد صناديق البريد التي يصل إليها التطبيق. فـ RBAC for Applications في Exchange Online يسند الصلاحية مقابل نطاق إدارة أو وحدة إدارية، ويحل محل Application Access Policies الأقدم. فتستطيع شاشة حجز القاعات قراءة تقاويم اثني عشر صندوق بريد للقاعات ولا شيء غيرها. وفخ واحد: المنح التي تتم بهذه الطريقة تُضاف إلى أي منح على مستوى المستأجر في Microsoft Entra، فإن كانت Mail.Read لا تزال ممنوحة هناك، فنطاقك لا يقيّد شيئاً. أزِل المنح من Entra.
استخدم الشهادات بدلاً من أسرار العميل لمصادقة التطبيق حيثما أمكن، وأبقِ بيانات الاعتماد خارج السكربتات والمستودعات.
المزامنة والإشعارات يُعاد بناؤها، لا تُترجم
هذا عادة أكبر تغيير لأي شيء يحتفظ بنسخة محلية من بيانات صندوق البريد.
المزامنة. يقابل SyncFolderItems استعلام delta للرسائل في Graph، ويقابل SyncFolderHierarchy استعلام delta لمجلدات البريد. ويعمل delta الرسائل على مجلد واحد في كل مرة، فالمزامنة الكاملة لصندوق بريد تعني تتبع شجرة المجلدات وتخزين رابط delta منفصل لكل مجلد. والتصفية محدودة (على تاريخ الاستلام فقط)، وتتضمن النتائج عمليات الحذف، والنقل خارج المجلد، وتغييرات حالة القراءة حتى حين لا تطابق مرشّحك.
الإشعارات. تصبح اشتراكات البث والدفع في EWS إشعارات تغيير في Graph، تُسلَّم إلى webhook تشغّله أنت أو إلى Azure Event Hubs أو Event Grid. ويجب أن يكون الـ webhook قابلاً للوصول من جانب Microsoft، وهذا تغيير معماري لسكربت كان يُبقي اتصالاً مفتوحاً من خلف الجدار الناري. وتدوم اشتراكات البريد والتقويم وجهات الاتصال 10,080 دقيقة على الأكثر (أقل بقليل من سبعة أيام)، أو 1,440 دقيقة حين يحمل الإشعار البيانات، فلا بد أن يتولى شيء ما تجديدها. ويسمح كل صندوق بريد بـ 1,000 اشتراك نشط على الأكثر عبر كل التطبيقات.
النمط الذي يصمد: تعامل مع الإشعار كتلميح، وشغّل استعلام delta لمعرفة ما تغيّر، وشغّله أيضاً على مؤقت لالتقاط أي شيء كان سيضيع بسبب إشعار فائت.
البيانات والمعرّفات والإنتاجية
- المعرّفات المخزَّنة. إن كان نظام CRM أو نظام التذاكر لديك قد حفظ معرّفات عناصر EWS لربط الرسائل بالسجلات، فتلك الروابط تحتاج إلى تحويل. ولدى Graph دالة
translateExchangeIdsلهذا الغرض تحديداً. خطط للتحويل كخطوة ترحيل قائمة بذاتها. - عمليات البحث. يقابل
ResolveNamesواجهة People API، ويقابلGetUserAvailabilityالدالةgetSchedule، وتقابل إعدادات الغياب عن المكتب إعدادات صندوق البريد. مقابلات قريبة، لا متطابقة. - تقييد المعدل. يحدّ Graph كل زوج من التطبيق وصندوق البريد بـ 10,000 طلب لكل 10 دقائق، وأربعة طلبات متزامنة، و150 ميغابايت من التحميلات لكل 5 دقائق. والمهمة الجماعية التي كانت تشغّل عشرات خيوط EWS المتوازية على صندوق بريد واحد يجب إعادة تصميمها حول هذه الأرقام.
الفجوات، وما لن يأتي أبداً
تنشر Microsoft خارطة طريق لقدرات EWS التي لا تزال غائبة عن Graph. وتشمل الاستيراد والتصدير الكاملين لصناديق بريد الأرشيف والمجلدات العامة والمجموعات، والوصول إلى الأرشيفات الموضعية (in-place archives)، وصلاحيات المجلدات عبر Exchange Admin API، وإنشاء رسائل غير مسودّة من MIME. ومعظم المواعيد المستهدفة في الربع الرابع من 2026. وكان بعضها مستحقاً في الربع الثالث، الذي انتهى الآن، فتحقق مما صدر فعلاً قبل أن تصمم حوله. وتحذير Microsoft نفسها: إن لم تكن القدرة على خارطة الطريق، "فلا تخطط" لوجود مقابل لها في Graph قبل إيقاف EWS.
وثلاث قدرات مؤكد أنها لن تأتي إلى Graph أبداً:
- الوصول العام إلى المجلدات العامة (إنشاء المجلدات والعناصر وقراءتها وتحديثها وحذفها).
- الوصول العام إلى صناديق بريد مجموعات Microsoft 365. يغطي Graph محادثات المجموعات وسلاسلها ومنشوراتها بدلاً من ذلك.
- الوصول إلى صندوق بريد الاكتشاف (Discovery). وتحيل Microsoft إلى Purview eDiscovery بدلاً منه.
إن كانت أداة ما تعتمد على إحدى هذه القدرات، فنقل الشيفرة لا يكفي: يجب أن تنتقل البيانات أو سير العمل إلى مكان آخر أولاً، وهذا يستغرق أطول من إعادة الكتابة.
خطة من ستة أشهر
من اليوم حتى 1 أبريل 2027 أقل بقليل من ستة أشهر. ترتيب واقعي:
أكتوبر 2026: اعرف أين تقف.
افحص EWSEnabled وقائمة السماح. صدّر تقرير الاستخدام لمدة 90 يوماً. راجع القائمة التي ملأتها Microsoft، وأزِل ما لا ينبغي أن يكون فيها، وأضف المهام المتباعدة التي تعرفها. وإن كان المستأجر لديك لا يزال على Null، ففكّر في ضبط القائمة وTrue بنفسك بدلاً من انتظار تحويل Microsoft له إلى False واكتشاف ما ينكسر.
نوفمبر 2026: الفرز. حدّد مالكاً وإجابة (إيقاف، أو تحديث، أو إعادة كتابة، أو إعادة تصميم) لكل معرّف تطبيق. افحص الشيفرة. ضع علامة على كل ما يمس المجلدات العامة أو صناديق بريد المجموعات أو صناديق بريد الاكتشاف، وابدأ إعادة التصميم الآن. وأنشئ تسجيلات تطبيقات Graph بصلاحيات محددة النطاق.
من ديسمبر 2026 إلى يناير 2027: البناء. ابدأ بالتكامل الذي ستفتقده الأعمال أولاً. ابنِ البنية الأساسية للمزامنة والإشعارات مرة واحدة وأعد استخدامها. وحوّل المعرّفات المخزَّنة.
فبراير 2027: شغّل الاثنين جنباً إلى جنب. ما دام EWS يعمل، شغّل النسختين القديمة والجديدة على صناديق البريد نفسها وقارن المخرجات. ومع قبول كل نسخة، أزِل معرّفها من قائمة السماح. وهذا أيضاً هو الاختبار: انتظر الساعات الأربع والعشرين وتأكد من أن شيئاً آخر لم يتوقف.
مارس 2027: أوقف EWS بنفسك.
اضبط EWSEnabled على False قبل 1 أبريل بوقت كافٍ. فأي شيء فاتك يفشل وأنت لا تزال قادراً على إعادة تشغيل EWS. وبعد 1 أبريل يزول هذا الخيار. وامنح المهام الربعية والسنوية تشغيلاً تجريبياً مقصوداً قبل ذلك أيضاً: فالمهمة التي تعمل عند إقفال الربع الأول ستعمل لأول مرة بعد زوال EWS.
أين تحصل على المساعدة
الحالة الصعبة هي التكامل الذي غادر مطوره الأصلي. وخدمة صيانة الأنظمة القديمة مبنية لهذا: نقرأ الشيفرة القائمة، ونعيد كتابة أجزاء EWS مقابل Microsoft Graph (الصلاحيات، والمزامنة، والإشعارات، وترحيل المعرّفات)، ونشغّل القديم والجديد جنباً إلى جنب حتى تتطابق الأرقام. وإن كنت تحتاج بدلاً من ذلك إلى مهندسين يعملون داخل فريقك، فاطّلع على خدمة تعزيز الفريق.
إن كان تقرير الاستخدام لديك مليئاً بمعرّفات تطبيقات لا يعرفها أحد، راسلنا على office@c9group.dev.