البرمجة مع Thunderbird

قراءة الرسائل

Mozilla Thunderbird هو عميل بريد إلكتروني مفتوح المصدر ومتعدد الأنظمة، تم تطويره بواسطة Mozilla Foundation. يخزن رسائل البريد في هيكله الملفية الخاص، يدير مؤشرات الرسائل والمجلدات الفرعية عبر صيغ ملفات مملوكة. يمكن لـ Aspose.Email العمل مع هياكل تخزين بريد Thunderbird. تسمح الفئة MboxrdStorageReader للمطورين بقراءة الرسائل من ملف تخزين بريد Mozilla Thunderbird. توضح هذه المقالة كيفية قراءة الرسائل من تخزين بريد Thunderbird:

  1. افتح ملف التخزين الخاص بـ Thunderbird
  2. أنشئ نسخة من الفئة MboxrdStorageReader ومرّر التدفق أعلاه إلى المُنشئ.
  3. استدعِ read_next_message() للحصول على الرسالة الأولى.
  4. استخدم نفس الدالة read_next_message() داخل حلقة while لقراءة جميع الرسائل.
  5. إغلاق جميع التدفقات.

يعرض مقطع الشيفرة التالي كيفية قراءة جميع الرسائل من تخزين بريد Thunderbird.

استرجاع خصائص الرسالة

لقراءة واستخراج المعلومات من ملف Mbox، توفر Aspose.Email الـ MboxStorageReader فئة لإنشاء كائن قارئ لملف Mbox و MboxLoadOptions فئة لتحميل الملف. الخصائص التالية للـ MboxMessageInfo يمكن استخدام الفئة للوصول إلى تفاصيل الرسالة المحددة وعرضها:

  • ‘date’ - يحصل على تاريخ الرسالة.
  • ‘from_address’ - يحصل على عنوان المرسل.
  • ‘subject’ - يحصل على موضوع الرسالة.
  • ’to’ - يحصل على مجموعة العناوين التي تحتوي على مستقبلات الرسالة.
  • ‘cc’ - يحصل على مجموعة العناوين التي تحتوي على مستقبلات CC.
  • ‘bcc’ - يحصل على مجموعة العناوين التي تحتوي على مستقبلات BCC للرسالة.

يعرض المثال البرمجي التالي كيفية استخدام هذه الخصائص لقراءة واستخراج معلومات الرسائل من ملف Mbox:

import aspose.email as ae

reader = ae.storage.mbox.MboxStorageReader.create_reader(file_name, ae.storage.mbox.MboxLoadOptions())

for mbox_message_info in reader.enumerate_message_info():
    print(f"Subject: {mbox_message_info.subject}")
    print(f"Date: {mbox_message_info.date}")
    print(f"From: {mbox_message_info.from_address}")
    print(f"To: {mbox_message_info.to}")
    print(f"CC: {mbox_message_info.cc}")
    print(f"Bcc: {mbox_message_info.bcc}")

استخراج الرسائل من MBOX باستخدام المعرفات

لقراءة الرسائل من ملف MBOX، توفر Aspose.Email طريقة ‘create_reader()’ الخاصة بـ MboxStorageReader فئة لإنشاء كائن قارئ للملف. تأخذ اسم الملف و MboxLoadOptions كوسائط، مما يسمح للمستخدم بتحميل ملف MBOX بخيارات محددة إذا لزم الأمر.

لاستخراج الرسائل، تُستخدم الطرق والخصائص التالية:

  • طريقة ’enumerate_message_info()’ الخاصة بـ MboxStorageReader فئة - تتكرّر عبر كل رسالة في ملف MBOX.
  • طريقة ’extract_message()’ الخاصة بـ MboxStorageReader فئة - تستخرج كل رسالة باستخدام معرّف الإدخال الخاص بها.
  • خاصية ’entry_id’ الخاصة بـ MboxMessageInfo فئة - يحصل على معرّف الإدخال.

أخيرًا، يتم تحويل الرسالة إلى تنسيق EML باستخدام EmlLoadOptions.

يوضح المثال البرمجي أدناه كيفية استخدام هذه المميزات لقراءة واستخراج الرسائل من ملف MBOX:

import aspose.email as ae

reader = ae.storage.mbox.MboxStorageReader.create_reader("my.mbox", ae.storage.mbox.MboxLoadOptions())

for mbox_message_info in reader.enumerate_message_info():
    eml = reader.extract_message(mbox_message_info.entry_id, ae.EmlLoadOptions())

إعداد خيارات التحميل عند قراءة الرسائل من MBOX

مع Aspose.Email EmlLoadOptions فئة، يمكنك تحديد خيارات إضافية عند تحميل MailMessage من تنسيق Eml. على سبيل المثال، يمكنك ضبط خيار للحفاظ على مرفقات TNEF أثناء تحميل ملف EML باستخدام الخاصية ‘preserve_tnef_attachments’ الخاصة بـ EmlLoadOptions فئة.

يمكنك قراءة الرسالة البريدية التالية من ملف mbox باستخدام خيارات التحميل المحددة عبر طريقة ‘read_next_message’ الخاصة بـ MboxStorageReader فئة وتحويل الملف إلى تنسيق PST باستخدام طريقة ‘mbox_to_pst’ الخاصة بـ MailStorageConverter فئة .

يوضح المثال البرمجي أدناه كيفية استخدام هذه الطرق والخصائص للعمل مع ملفات تخزين البريد، بما في ذلك قراءة الرسائل من تنسيق mbox، الحفاظ على مرفقات TNEF، وتحويل الرسائل من تنسيق mbox إلى pst:

import aspose.email as ae

reader = ae.storage.mbox.MboxrdStorageReader(fileName, ae.storage.mbox.MboxLoadOptions())
# Read messages preserving tnef attachments.
load_options = ae.EmlLoadOptions()
load_options.preserve_tnef_attachments = True
eml = reader.read_next_message(load_options)
ae.storage.MailStorageConverter.MboxMessageOptions(load_options)
# Convert messages from mbox to pst preserving tnef attachments.
pst = ae.storage.MailStorageConverter.mbox_to_pst("Input.mbox", "Output.pst")

تحديد ترميز النص المفضّل عند تحميل ملفات Mbox للقراءة

يمكنك تحديد ترميز النص الذي سيُستخدم أثناء تحميل ملف MBOX. الخاصية ‘preferred_text_encoding’ المتاحة لـ MboxLoadOptions الفئة تحدد خيارًا إضافيًا وتضمن قراءة ومعالجة الرسالة ذات المحتوى المشفر بشكل صحيح.

يعرض المقتطف البرمجي التالي كيفية استخدام هذه الميزة في مشروع:

import aspose.email as ae

load_options = ae.storage.mbox.MboxLoadOptions()
load_options.preferred_text_encoding = 'utf-8'
reader = ae.storage.mbox.MboxrdStorageReader("sample.mbox", load_options)
message = reader.read_next_message()

تحويل MBOX إلى PST مع الحفاظ على التوقيع أو إزالته

لإزالة التوقيع من ملف أثناء عملية التحويل، عيّن الخاصية MboxToPstConversionOptions.remove_signature إلى true.

يعرض المثال البرمجي التالي كيفية استخدام هذه الخاصية:

import aspose.email as ae

personalStorage = ae.storage.pst.PersonalStorage.create("target.pst", ae.storage.pst.FileFormatVersion.UNICODE)
conversion_options = ae.storage.MboxToPstConversionOptions()
conversion_options.remove_signature = True
ae.storage.MailStorageConverter.mbox_to_pst( ae.storage.mbox.MboxrdStorageReader("source.mbox", ae.storage.mbox.MboxLoadOptions()), personalStorage, "Inbox", conversion_options)

كتابة الرسائل

توفر الفئة MboxrdStorageWriter إمكانية كتابة رسائل جديدة إلى ملف تخزين بريد Thunderbird. لكتابة الرسائل:

  1. افتح ملف تخزين Thunderbird في FileStream.
  2. أنشئ نسخة من الفئة MboxrdStorageWriter ومرّر التدفق أعلاه إلى المُنشئ.
  3. جهّز رسالة جديدة باستخدام الفئة MailMessage.
  4. استدعِ طريقة write_message() ومرّر نسخة MailMessage أعلاه لإضافة الرسالة إلى تخزين Thunderbird.
  5. إغلاق جميع التدفقات.

يعرض مقطع الشيفرة التالي كيفية كتابة الرسائل إلى تخزين بريد Thunderbird.

الحصول على العدد الكلي للرسائل من ملف MBox

توفر فئة MboxrdStorageReader القدرة على قراءة عدد العناصر المتاحة في ملف MBox. يمكن استخدام ذلك لتطوير تطبيقات تعرض تقدم العملية أثناء معالجة هذا الملف.

الحصول على حجم الرسالة الحالية