1. المنتجات
  2.   Aspose.Email
  3.   Aspose.Email FOSS for C++

Aspose.Email FOSS للـ C++

قراءة وإنشاء ومعالجة ملفات Outlook MSG وحاويات CFB من C++ — مجانية ومفتوحة المصدر، دون الاعتماد على Microsoft Outlook.

مكتبة C++ مفتوحة المصدر لملفات MSG وCFB

Aspose.Email FOSS للـ C++ هو مكتبة C++ مرخصة تحت MIT ومفتوحة المصدر للعمل مع ملفات Microsoft Outlook .msg وحاويات Compound File Binary (CFB). قم بتضمين رؤوس الملفات عبر CMake وابدأ فورًا في قراءة، إنشاء، ومعالجة رسائل البريد الإلكتروني دون تثبيت Microsoft Outlook أو أي بيئة تشغيل مملوكة.

توفر المكتبة مستويين من الوصول. على المستوى المنخفض، cfb_reader و cfb_writer يمنحان تحكمًا كاملاً في حاويات CFB الثنائية — استعراض إدخالات الدليل، قراءة وكتابة عقد التخزين وبيانات التدفق، وفحص تخطيط القطاع الخام. msg_reader و msg_writer يتعاملان مع تنسيق MSG فوق CFB، مكشفين عن تدفقات خصائص MAPI، جداول المستلمين، وتخزينات فرعية للمرفقات. على المستوى العالي، mapi_message يتيح لك إنشاء رسائل جديدة من الصفر، قراءة العناوين، النصوص، المستلمين، والمرفقات، وتحويل بين تنسيق MSG و EML. المكتبة تُبنى على أي منصة تحتوي على مترجم C++17 ولا تعتمد على أي تبعيات خارجية، مما يجعلها مناسبة لنظام Windows، Linux، macOS، حاويات Docker، والأنظمة المدمجة. يتم تقديم نسخة المؤسسة مع ميزات إضافية كـ Aspose.Email for C++.

قراءة وكتابة حاوية CFB

  • فتح ملفات CFB: حمّل حاويات CFB الموجودة من مسار ملف أو تدفق أو مصفوفة بايت عبر cfb_reader::from_file()، cfb_reader::from_stream() أو cfb_reader::from_bytes().
  • تصفح شجرة الدليل: عدّ التخزينات والتدفقات باستخدام storage_ids()، stream_ids()، وchild_ids()، وتصفح التسلسلات الهرمية المتداخلة باستخدام resolve_path().
  • فحص العقد: تحقق من نوع العقدة باستخدام cfb_node::is_storage() و cfb_node::is_stream()، واقرأ الطوابع الزمنية عبر creation_time() و modified_time().
  • إنشاء حاويات CFB: قم بإنشاء مستندات CFB برمجيًا باستخدام cfb_document وتسلسلها إلى بايتات أو ملف عبر cfb_writer::to_bytes() أو cfb_writer::write_file().

أين يُستخدم وصول CFB

  • فحص ملف MSG: CFB هو تنسيق الحاوية لملفات Outlook .msg — يتيح الوصول المباشر إلى CFB فحصًا جنائيًا وإصلاحًا.
  • تنسيقات ثنائية مخصصة: يمكن قراءة أو كتابة أي تطبيق قديم يستخدم CFB لتخزين البيانات دون الاعتماد على COM.
  • استعادة البيانات: تصفح شجرة الدليل الكاملة واستخراج بايتات تدفق البيانات الخام من ملفات CFB التالفة أو غير القياسية.

قراءة وكتابة ملف MSG

  • قراءة ملفات MSG: افتح ملفات Outlook MSG باستخدام msg_reader::from_file() أو msg_reader::from_stream() واطّلع على تدفقات خصائص MAPI الأساسية وتخزينات المرفقات الفرعية.
  • اكتب ملفات MSG: إنتاج ملفات MSG من msg_document باستخدام msg_writer::to_bytes() أو msg_writer::write_file().
  • فحص مستند MSG: الوصول إلى بيانات تعريف الإصدار عبر msg_document::major_version()، msg_document::minor_version()، والتحقق من الصرامة باستخدام msg_document::strict().
  • تحويل إلى CFB: استخراج مستند CFB الأساسي من ملف MSG عبر msg_document::to_cfb_document().

أين يتم استخدام معالجة MSG

  • خطوط أنابيب أرشفة البريد الإلكتروني: قراءة جماعية لملفات .msg من أدلة الأرشيف واستخراج البيانات الوصفية أو المرفقات.
  • أدوات الترحيل: تحويل مجموعات MSG إلى صيغ قياسية للاستيراد إلى أنظمة غير Outlook.
  • اكتشاف قانوني: تحليل تدفقات خصائص MAPI الخام لاستخراج جميع حقول الرسالة بما في ذلك الخصائص غير القياسية.

واجهة برمجة تطبيقات رسائل MAPI عالية المستوى

  • إنشاء رسائل: بناء بريد إلكتروني كامل باستخدام mapi_message::create()، ثم تعيين الموضوع، النص، وHTML النص عبر set_subject()، set_body()، وset_html_body().
  • تعيين تفاصيل المرسل: قم بتكوين set_sender_name() وset_sender_email_address() وset_sender_address_type() للرسالة الصادرة.
  • إدارة المرفقات: تحميل المرفقات من البايتات أو التدفقات باستخدام mapi_attachment::from_bytes() و mapi_attachment::from_stream()، والتحقق من الرسائل المضمنة عبر is_embedded_message().
  • حفظ وإعادة التحميل: تسلسل باستخدام mapi_message::save() وإعادة التحميل باستخدام mapi_message::from_file() أو mapi_message::from_stream().

أين يتم استخدام واجهة برمجة التطبيقات عالية المستوى

  • إنشاء بريد إلكتروني تلقائي: إنشاء آلاف ملفات MSG مخصصة من سجلات البيانات في وظائف الدُفعات.
  • إنشاء تجهيز الاختبار: بناء ملفات MSG معروفة الصلاحية بمحتوى يمكن التنبؤ به لاختبارات التكامل.
  • استخراج المرفقات: حمّل ملف MSG، وتكرّر عبر المرفقات، واحفظ كلًّا منها على القرص.

تحويل EML و MIME

  • Load EML into mapi_message: تحليل ملف .eml قياسي (RFC 5322 / MIME) إلى كائن mapi_message كامل عبر mapi_message::load_from_eml().
  • حفظ mapi_message كـ EML: تسلسل mapi_message مرة أخرى إلى تنسيق MIME باستخدام save_to_eml().
  • دقة النقل ذهابًا وإيابًا: الموضوع، النص، المرسل، المستلمين، والمرفقات تُحافظ عليها خلال عمليات التحويل من EML إلى MSG إلى EML.

أين يتم استخدام تحويل EML

  • جسر الصيغة: استلام رسائل البريد الإلكتروني كملفات EML من خوادم البريد وتحويلها إلى MSG لتخزين متوافق مع Outlook.
  • الامتثال للمعايير: تحويل ملفات MSG المملوكة إلى MIME قياسي للتسليم إلى أي وسيلة نقل بريد.
  • التطبيع الأرشيفي: قم بتطبيع أرشيف مختلط من ملفات .eml و .msg إلى تنسيق واحد.

قراءة الموضوع من ملف MSG

افتح ملف Outlook MSG من تدفق واطبع الموضوع — لا يلزم Microsoft Outlook.

#include <fstream>
#include <iostream>

#include "aspose/email/foss/msg/mapi_message.hpp"

int main()
{
    std::ifstream input("sample.msg", std::ios::binary);
    auto message = aspose::email::foss::msg::mapi_message::from_stream(input);
    std::cout << message.subject() << '\n';
}

إنشاء وحفظ رسالة MSG

قم بإنشاء بريد إلكتروني كامل مع المرسل والمستلم والمرفق، ثم احفظه بصيغتي MSG و EML.

#include <fstream>

#include "aspose/email/foss/msg/mapi_message.hpp"

int main()
{
    auto message = aspose::email::foss::msg::mapi_message::create("Hello", "Body");
    message.set_sender_name("Alice");
    message.set_sender_email_address("alice@example.com");
    message.add_recipient("bob@example.com", "Bob");
    message.add_attachment("note.txt", std::vector<std::uint8_t>{'a', 'b', 'c'}, "text/plain");

    std::ofstream msg_output("hello.msg", std::ios::binary);
    message.save(msg_output);

    std::ofstream eml_output("hello.eml", std::ios::binary);
    message.save_to_eml(eml_output);
}
  

الدعم وموارد التعلم

 العربية