تصفية الرسائل من صندوق بريد Exchange
Aspose.Email for C++ يسمح للمطورين بتصفية الرسائل في صندوق بريد Exchange باستخدام IEWSClient, MailQuery, و ExchangeQueryBuilder. يمكنك تصفية الرسائل حسب التاريخ، المرسل، النطاق، معرف الرسالة، إشعارات التسليم، والعديد من المعايير الأخرى.
لاسترداد الرسائل من مجلد للمعالجة الإضافية، الـ IEWSClient. لديه الطرق التالية:
- ListMessages() - يحصل على جميع الرسائل من علبة بريد.
- ListMessages() تجاوز - يُرجع فقط الرسائل التي تطابق شروطًا محددة. يقبل MailQuery الذي يحدد قواعد التصفية مثل كلمات مفتاحية في الموضوع، نطاقات التاريخ، والتصفية بناءً على العنوان.
تصفية الرسائل باستخدام IEWSClient
يوضح مثال الشيفرة التالي كيفية استعلام واسترجاع رسائل بريد إلكتروني محددة من خادم Exchange باستخدام Exchange Web Services (EWS) مع Aspose.Email للغة C++. يبيّن العملية الكاملة للاتصال بخادم Exchange (Office 365 في هذه الحالة)، بناء استعلام بحث للعثور على رسائل تحتوي على "Newsletter" في الموضوع والتي وصلت اليوم، تنفيذ الاستعلام ضد صندوق الوارد، استرجاع الرسائل المتطابقة، ومعالجة دورة حياة الاتصال بشكل صحيح مع معالجة الأخطاء.
- الاتصال بخادم Exchange باستخدام IEWSClient.
- إنشاء MailQuery أو ExchangeQueryBuilder وتحديد شروط التصفية.
- استدعِ ListMessages(folderUri, query) للحصول على النتائج التي تم تصفيتها.
تصفية الرسائل حسب المعايير
يفلتر مثال الشيفرة أعلاه الرسائل بناءً على موضوع البريد الإلكتروني وتاريخه. يمكنك أيضًا التصفية بناءً على خصائص أخرى. أدناه بعض الأمثلة على تعيين الشروط باستخدام MailQuery.
تصفية بحسب تاريخ اليوم
يوضح مثال الشيفرة التالي كيفية إنشاء استعلام للعثور على رسائل البريد الإلكتروني التي وصلتها اليوم.
تصفية حسب نطاق التاريخ
يوضح مثال الشيفرة التالي كيفية إنشاء استعلام للعثور على رسائل البريد الإلكتروني التي وصلتها خلال آخر 7 أيام.
تصفية حسب مرسل محدد
يوضح مثال الشيفرة التالي كيفية إنشاء استعلام للعثور على رسائل البريد الإلكتروني من مرسل محدد.
تصفية حسب النطاق
يوضح مثال الشيفرة التالي كيفية إنشاء استعلام للعثور على رسائل البريد الإلكتروني من نطاق محدد.
تصفية حسب المستلم
يوضح مثال الشيفرة التالي كيفية إنشاء استعلام للعثور على رسائل البريد الإلكتروني المرسلة إلى مستلم محدد.
تصفية حسب معرف الرسالة
يوضح مثال الشيفرة التالي كيفية إنشاء استعلام للعثور على بريد إلكتروني محدد عبر معرف رسالته MessageId.
تصفية إشعارات تسليم البريد
يوضح مثال الشيفرة التالي كيفية إنشاء استعلام للعثور على إشعارات تسليم البريد (MDNs).
تصفية حسب حجم الرسالة
يوضح مثال الشيفرة التالي كيفية إنشاء استعلام للعثور على رسائل بريد إلكتروني أكبر من حجم معين.
إنشاء استعلامات معقدة
عند استخدام MailQueryBuilder أو ExchangeQueryBuilder, كل خاصية تقوم بتعيينها تنشئ شرط تصفية. إذا تم تعريف هذه الشروط في بيانات منفصلة، يتم دمجها باستخدام AND منطقي، مما يعني أن جميع الشروط يجب أن تتطابق لكي يتم إرجاع الرسالة.
يتيح ذلك للمطورين بناء فلاتر دقيقة مثل:
- رسائل ضمن نطاق تاريخي
- رسائل من نطاق محدد
- رسائل بريدية تطابق معايير متعددة في آن واحد
دمج الاستعلامات باستخدام AND
استخدام خصائص مُنشئ متعددة بالتتابع ينشئ تلقائيًا عملية AND.
المثال التالي يسترجع الرسائل التي:
- تأتي من نطاق محدد
- وصلت قبل اليوم
- وصلت خلال آخر سبعة أيام
دمج الاستعلامات باستخدام OR
لمطابقة الرسائل التي تحقق أحد الشرطين، استخدم طريقة Or().
المثال التالي يحصل على الرسائل التي:
- تحتوي على “test” في الموضوع، أو
- تم إرسالها بواسطة “noreply@host.com”
تصفية البريد الإلكتروني بحساسية الأحرف
يمكنك تطبيق تصفية حساسة لحالة الأحرف أو غير حساسة عند استعلام الرسائل من صندوق بريد Exchange. للتحكم في هذا السلوك، استخدم علامة IgnoreCase المتاحة في طرق التصفية. تمرير true يفعّل المطابقة غير الحساسة لحالة الأحرف.
المثال أدناه يصفّي الرسائل التي:
- تحتوي على كلمة "Newsletter" في الموضوع (بدون حساسية لحالة الأحرف)
- وصلت اليوم
الصفحات في تصفية الرسائل
عند العمل مع صناديق بريد Exchange الكبيرة، تسمح الخاصية Paging باسترجاع الرسائل على دفعات أصغر وأكثر قابلية للإدارة. الـ ListMessagesByPage طريقة من IEWSClient يعيد النتائج صفحة بصفحة بناءً على حجم صفحة محدد ومعايير الاستعلام.
المثال أدناه يوضح كيفية:
- إنشاء مرشح باستخدام MailQueryBuilder.
- استرجاع النتائج على دفعات.
- تكرار عبر جميع الصفحات حتى الأخيرة.
- احسب العدد الإجمالي للرسائل المطابقة.