إرسال، قراءة، وتنظيم الرسائل على خادم Exchange

استرجاع معلومات صندوق بريد Exchange باستخدام EWS

يتيح Aspose.Email لك استرجاع تفاصيل صندوق البريد من Microsoft Exchange باستخدام الـ IEWSClient فئة. باستدعاء الـ GetMailboxInfo() طريقة، يُعيد العميل ExchangeMailboxInfo كائن يحتوي على عناوين URI مفيدة للمجلدات مثل Mailbox، Inbox، Drafts، وSent Items.

لاتصال بخادم Exchange باستخدام Exchange Web Services (EWS)، استخدم الـ IEWSClient فئة. تستخدم هذه الفئة EWS للاتصال وإدارة العناصر على خادم Exchange.

يوضح مثال الشيفرة التالي كيفية الحصول على معلومات صندوق البريد باستخدام خدمات الويب لتبادل البريد (exchange web services).

إرسال رسائل البريد الإلكتروني عبر EWS

يمكنك إرسال رسائل البريد الإلكتروني عبر Exchange عن طريق استدعاء IEWSClient->Send() طريقة. تحتاج إلى MailMessage كائن ويقدمه مباشرةً عبر الخادم باستخدام EWS.

يوضح مثال الشيفرة التالي كيفية إرسال رسالة بريد إلكتروني بصيغة HTML عبر خادم Exchange باستخدام Exchange Web Services (EWS) مع Aspose.Email للـ C++. يُظهر العملية الكاملة لإنشاء اتصال بـ Exchange، وإنشاء رسالة بريد مع المرسل، المستلم، الموضوع، ومحتوى HTML، ثم إرسال الرسالة باستخدام طريقة Send الخاصة بعميل EWS.

قراءة رسائل البريد الإلكتروني من صندوق بريد مستخدم آخر

بعض الحسابات على خوادم Exchange لديها الحق في الوصول إلى عدة صناديق بريد، وبعض المستخدمين لديهم حسابات بريد إلكتروني متعددة على نفس خادم Exchange. في كلتا الحالتين، يمكن للمستخدمين الوصول إلى صناديق بريد المستخدمين الآخرين باستخدام Aspose.Email. توفر الواجهة البرمجية آلية للوصول إلى المجلدات والرسائل من صناديق بريد أخرى باستخدام IEWSClient الفئة. يمكن تحقيق هذه الوظيفة باستخدام نسخة التحميل الزائد من GetMailboxInfo() الطريقة وتزويد عنوان بريد المستخدم كمعامل.

يعرض لك مقتطف الشيفرة التالي كيفية قراءة الرسائل الإلكترونية باستخدام IEWSClient فئة.

قائمة الرسائل باستخدام EWS

يسمح لك Aspose.Email للـ C++ باسترجاع بيانات الرسائل الوصفية من صناديق بريد خادم Exchange عبر IEWSClient. باستخدام نظام EWS ListMessages من خلال الAPI، يمكنك سرد الرسائل من أي مجلد، تصفح بيانات الرسائل الوصفية، وتنفيذ التجزئة لل صناديق البريد الكبيرة.

قائمة الرسائل من علبة الوارد

استخدام ListMessages لاسترجاع معلومات الرسالة الأساسية مثل الموضوع، المرسل، المستلمين، ومعرّف الرسالة من علبة الوارد أو أي مجلد.

يوضح لك عينة الشيفرة التالية كيفية سرد وعرض المعلومات الأساسية لجميع الرسائل في خادم Exchange.

  1. إنشاء نسخة من IEWSClient.
  2. استدعِ ListMessages مع مسار URI للمجلد المستهدف.
  3. التكرار عبر ExchangeMessageInfoCollection.

قائمة الرسائل من أي مجلد

ListMessages تقبل أي URI صالح للمجلد، مما يتيح لك سرد العناصر من عناصر المحذوفة، المسودات، العناصر المرسلة، أو المجلدات المخصصة. استخدم IEWSClient->get_MailboxInfo->xxxFolderUri خاصية للحصول على URI للمجلدات المختلفة.

يبين لك عينة الشيفرة التالية كيفية الوصول إلى مسارات URI لمجلدات مختلفة في خادم Exchange واسترجاع الرسائل من مجلد محدد.

التجزئة في سرد الرسائل

لصناديق البريد الكبيرة، استخدم ListMessagesByPage لتحميل الرسائل على دفعات أصغر.

يوضح لك عينة الشيفرة التالية كيفية تنفيذ التصفية للصفحات لاسترجاع عدد كبير من الرسائل من علبة وارد خادم Exchange.

  1. أولًا، ينشئ عدة رسائل اختبارية على الخادم.
  2. ثم، يستخدم ListMessagesByPage طريقة لاسترجاع الرسائل على دفعات أصغر (5 رسائل لكل صفحة في هذه الحالة)، مع التكرار عبر جميع الصفحات حتى الوصول إلى الصفحة الأخيرة.
  3. أخيرًا، يتحقق الكود من أن جميع الرسائل تم استرجاعها بنجاح عن طريق عدّ إجمالي العناصر عبر جميع الصفحات.

الحصول على معلومات نوع الرسالة

استخدام ExchangeMessageInfo->MessageInfoType لتحديد نوع الرسالة الأساسي في Exchange (مثل بريد إلكتروني، طلب اجتماع، إلخ).

يبين لك عينة الشيفرة التالية كيفية الاتصال بخادم Exchange واسترجاع معلومات نوع الرسالة من مجلد العناصر المحذوفة.

حفظ الرسائل باستخدام خدمات الويب لـ Exchange (EWS)

يتيح لك Aspose.Email استرجاع الرسائل من صندوق بريد خادم Exchange وحفظها بصيغ متعددة، مثل EML، تدفقات الذاكرة، و MSG. توضح الأمثلة أدناه كيفية جلب معلومات الرسالة وتخزين الرسائل باستخدام IEWSClient API.

حفظ الرسائل كملفات EML

لحفظ رسائل الصندوق كملفات EML:

  1. إنشاء IEWSClient مثيل باستخدام بيانات اعتماد صالحة.
  2. استدعِ ListMessages() لاسترجاع ExchangeMessagesInfoCollection.
  3. التكرار عبر المجموعة للوصول إلى URI الفريد لكل رسالة.
  4. استدعِ SaveMessage() لتخزين كل رسالة على القرص بصيغة EML.

يبين لك عينة الشيفرة التالية كيفية حفظ رسائل البريد الإلكتروني من علبة وارد خادم Exchange كملفات EML منفصلة محليًا باستخدام Aspose.Email للـ C++.

حفظ الرسائل إلى تدفق الذاكرة

بدلاً من الكتابة إلى القرص، يمكنك حفظ الرسائل إلى تدفق الذاكرة—مفيد لتخزين رسائل البريد الإلكتروني في قاعدة بيانات أو معالجتها في الذاكرة.

يبين لك عينة الشيفرة التالية كيفية حفظ رسائل البريد الإلكتروني من علبة وارد خادم Exchange إلى تدفقات الذاكرة.

حفظ الرسائل بصيغة MSG

لحفظ الرسائل كملفات MSG:

  1. استرجع الرسالة باستخدام FetchMessage(), والتي تُرجِع MailMessage.
  2. استدعِ MailMessage::Save() مع خيارات حفظ MSG.

يبين لك عينة الشيفرة التالية كيفية جلب وحفظ رسائل البريد الإلكتروني من علبة وارد خادم Exchange كملفات بصيغة Outlook MSG.

استرجاع تفاصيل الرسالة عبر URI الرسالة

عندما يكون URI الفريد للرسالة فقط متاحًا، لا يزال بإمكانك استرجاع كامل ExchangeMessageInfo الكائنات. الـ IEWSClient::ListMessages() التحمل الزائد يقبل قائمة بمعرفات الرسائل (URIs) ويعيد ExchangeMessageInfoCollection. استخدم هذه الميزة عندما تقوم بتخزين أو استلام URI للرسائل خارجيًا وتحتاج إلى تحميل البيانات الوصفية (الموضوع، المرسل، الحجم، إلخ) دون جلب الرسائل بالكامل.

يبين لك عينة الشيفرة التالية كيفية إنشاء عدة رسائل بريد إلكتروني على خادم Exchange ثم استرجاع معلومات رسائلهم باستخدام معرفات فريدة.

جلب محتوى الرسالة بالكامل

ListMessages() يرجع معلومات ملخصة (الموضوع، المرسل، المعرفات). لتحميل محتوى الرسالة بالكامل — النص، الرؤوس، المرفقات — استخدم FetchMessage().

يبين لك عينة الشيفرة التالية كيفية جلب رسائل كاملة من علبة وارد خادم Exchange واستخراج معلومات المرفقات:

  1. إنشاء IEWSClient كائن.
  2. استدعِ ListMessages() للحصول على البيانات الوصفية الأساسية للرسالة.
  3. استخراج URI الفريد لكل رسالة.
  4. استدعِ FetchMessage() لاسترجاع تفاصيل الرسالة بالكامل.

جلب حجم الرسالة (دون تحميل الرسالة بالكامل)

يوفر Aspose.Email معلومات حجم الرسالة دون جلب البريد الإلكتروني بالكامل، عبر ExchangeMessageInfo::Size خاصية.

هذا مفيد لـ:

  • إحصائيات الصندوق البريدي
  • حسابات الحصة
  • تصفية الرسائل الكبيرة قبل التحميل

يبين لك عينة الشيفرة التالية كيفية سرد وعرض البيانات الوصفية للرسائل بما في ذلك الحجم من علبة وارد خادم Exchange.

تنزيل رسائل البريد الإلكتروني من المجلدات العامة في Exchange

تسمح المجلدات العامة في Exchange بتخزين الرسائل المشتركة بين المستخدمين.

Aspose.Email IEWSClient يسمح لك بأداء العمليات التالية مع هذه المجلدات والرسائل المخزنة فيها:

  • قائمة المجلدات العامة
  • تصفح المجلدات الفرعية بشكل تكراري
  • تنزيل الرسائل وحفظها (مثلًا، كملفات MSG)

ملاحظة: يلزم Microsoft Exchange Server 2007 أو أحدث، حيث أن الإصدارات الأقدم لا تدعم EWS.

يبين لك عينة الشيفرة التالية كيفية تنزيل الرسائل من جميع المجلدات العامة ومجلداتها الفرعية على خادم Exchange بشكل تكراري، وحفظها كملفات Outlook MSG محليًا.

نقل الرسائل بين مجلدات Exchange

يمكنك نقل الرسائل من مجلد Exchange إلى آخر باستخدام IEWSClient::MoveItem طريقة. تتطلب:

  • URI الفريد للرسالة المراد نقلها.
  • URI الفريد للمجلد الوجهة.

يبين لك عينة الشيفرة التالية كيفية تصفية ونقل رسائل بريد إلكتروني محددة من علبة وارد خادم Exchange إلى مجلد آخر بناءً على معايير المحتوى.

  1. الاتصال بخادم Exchange باستخدام بيانات اعتماد EWS.
  2. احصل على معلومات الصندوق البريدي (مسارات URI للمجلدات).
  3. قائمة جميع الرسائل من علبة الوارد.
  4. التكرار عبر كل رسالة.
  5. تحقق مما إذا كان الموضوع يحتوي على "process this message".
  6. نقل الرسائل المطابقة إلى مجلد العناصر المحذوفة.
  7. إخراج تأكيد لكل رسالة تم نقلها.

حذف الرسائل من مجلد Exchange

يمكنك حذف رسائل البريد الإلكتروني من مجلد بمساعدة الـ  IEWSClient->DeleteMessage الطريقة. تأخذ URI الفريد للرسالة كمعامل.

يبين لك عينة الشيفرة التالية كيفية تصفية وحذف رسائل بريد إلكتروني محددة من علبة وارد خادم Exchange بناءً على معايير الموضوع.

  1. التكرار عبر رسائل علبة الوارد.
  2. معالجة الرسائل بناءً على معايير معينة (في هذا المثال، نبحث عن كلمة رئيسية في موضوع الرسالة).
  3. حذف الرسائل المتطابقة.

نسخ الرسائل إلى مجلد Exchange آخر

استخدام IEWSClient::CopyItem لتكرار رسالة في مجلد مختلف. النسخة المحملة الزائدة تُعيد URI النسخة المُنشأة حديثًا.

يبين لك عينة الشيفرة التالية كيفية إنشاء رسالة بريد إلكتروني على خادم Exchange ونسخها إلى مجلد آخر.