الميزات والوظائف

الميزات والوظائف

الميزات والوظائف

تغطي هذه الصفحة كل ميزة رئيسية لـ aspose-email-foss 26.3 مع أمثلة Python عاملة.


قراءة ملفات MSG

حمّل ملف MSG واطّلع على خصائصه الأساسية:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.from_file("message.msg")

print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html}")
print(f"Message Class: {msg.message_class}")

إنشاء ملفات MSG

أنشئ رسالة جديدة من الصفر:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")

عيّن الموضوع والنص في رسالة موجودة:

msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")

المستلمون

أضف المستلمين مع أسماء العرض والأنواع:

from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC

msg = MapiMessage.create("Hello", "Message body")
msg.add_recipient("alice@example.com", display_name="Alice Smith")
msg.add_recipient("bob@example.com", display_name="Bob Jones", recipient_type=RECIPIENT_TYPE_CC)
msg.save("with_recipients.msg")

المرفقات

أضف مرفقات ملفات ثنائية:

with open("report.pdf", "rb") as f:
    data = f.read()

msg.add_attachment("report.pdf", data, mime_type="application/pdf")
msg.save("with_attachment.msg")

ضمّ رسالة MSG كمرفق متداخل:

inner = MapiMessage.create("Inner Subject", "Inner body")
msg.add_embedded_message_attachment(inner, filename="embedded.msg", mime_type="application/vnd.ms-outlook")
msg.save("with_embedded.msg")

خصائص MAPI

قراءة وكتابة خصائص MAPI حسب معرف الخاصية:

from aspose.email_foss.msg import PropertyId

# Read a property
subject = msg.get_property(PropertyId.SUBJECT)

# Set a property
msg.set_property(PropertyId.SUBJECT, "New Subject")

تكرار جميع الخصائص:

for prop in msg.iter_properties():
    print(f"Tag: {prop.property_tag:#010x}")

تحويل البريد الإلكتروني

تحويل بين صيغ MSG (MAPI) والبريد الإلكتروني (RFC 5322):

# MSG to email string
email_str = msg.to_email_string()
print(email_str[:500])

# MSG to EmailMessage object
email_msg = msg.to_email_message()

# EmailMessage back to MapiMessage
msg2 = MapiMessage.from_email_message(email_msg)
msg2.save("roundtrip.msg")

عمليات CFB منخفضة المستوى

قراءة بنية حاوية CFB مباشرةً:

from aspose.email_foss.cfb import CFBReader

reader = CFBReader.from_file("message.msg")
print(f"File size: {reader.file_size} bytes")
print(f"Sectors: {reader.fat_sector_count}")
print(f"Entries: {reader.directory_entry_count}")

for entry in reader.iter_storages():
    print(f"Storage: {entry}")

for entry in reader.iter_streams():
    print(f"Stream: {entry}")

reader.close()

كتابة مستندات CFB:

from aspose.email_foss.msg import MsgWriter

data = msg.to_bytes()
with open("output.msg", "wb") as f:
    f.write(data)

نصائح وأفضل الممارسات

  • دائمًا استدعِ msg.close() أو استخدم مدير السياق عند الانتهاء من القراءة لإطلاق مقابض الملفات
  • استخدم msg.validation_issues للتحقق من مشكلات توافق تنسيق MSG
  • ال strict المعامل في MapiMessage.from_file() يتحكم في تحمل الأخطاء — اضبط إلى False لتحليل متساهل
  • يتم تحميل جميع بيانات المرفقات إلى الذاكرة أثناء from_file() — استخدم att.data للوصول إلى البايتات مباشرة؛; iter_attachments_info() هو مكرّر مريح على قائمة المرفقات المملوءة مسبقًا
  • استخدم to_email_string() للمعاينات النصية السريعة دون إنشاء كائن البريد الإلكتروني بالكامل

المشكلات الشائعة

مشكلةسببإصلاح
CFBError أثناء التحميلملف CFB/MSG غير صالحتحقق من أن الملف هو MSG فعلي من Outlook
المحتوى فارغ بعد التحميلالمحتوى مخزن بصيغة HTML فقطتحقق msg.body_html بدلاً من msg.body
المستلمون مفقودونملف MSG لا يحتوي على تخزين للمستلمينالمستلمون اختياريون في تنسيق MSG؛ تحقق iter_attachments_info()

FAQ

ما إصدارات صيغة MSG المدعومة؟?

المكتبة تقرأ وتكتب ملفات MSG بصيغة CFB v3 و v4، متوافقة مع Microsoft Outlook.

هل يمكنني قراءة ملفات EML؟?

ليس مباشرةً. المكتبة تتعامل مع تنسيق MSG. استخدم MapiMessage.from_email_message() لتحويل من RFC 5322 EmailMessage الكائنات.

هل يتم دعم أمان الخيوط (thread-safety)؟?

كل MapiMessage و CFBReader الـinstance مستقل. الوصول المتزامن إلى الـinstances المنفصلة من الـthreads المنفصلة آمن.


ملخص مرجع API

الفئة / الطريقةالوصف
MapiMessageتمثيل رسالة MSG عالي المستوى
MapiMessage.from_file()تحميل ملف MSG
MapiMessage.create()إنشاء رسالة MSG جديدة
MapiMessage.save()حفظ إلى ملف MSG
MapiMessage.to_email_message()تحويل إلى EmailMessage (RFC 5322)
MapiMessage.from_email_message()تحويل من EmailMessage إلى MSG
MapiMessage.add_recipient()إضافة مستلم
MapiMessage.add_attachment()إضافة مرفق ثنائي
MapiAttachmentمرفق على رسالة
MapiRecipientمستلم على رسالة
MapiPropertyإدخال خاصية MAPI
CFBReaderقارئ حاوية CFB منخفض المستوى
CFBWriterكاتب حاوية CFB منخفض المستوى
MsgReaderقارئ بنية MSG منخفض المستوى
 العربية