كيفية تحليل ملفات MSG في بايثون

كيفية تحليل ملفات MSG في بايثون

توفر aspose-email-foss للغة Python واجهة برمجة تطبيقات pure-Python لقراءة ملفات Outlook MSG دون الاعتماد على Microsoft Office. قم بتحميل ملف إلى كائن MapiMessage للوصول إلى جميع بيانات الرسالة.

دليل خطوة بخطوة

الخطوة 1: تثبيت الحزمة

pip install aspose-email-foss

يتطلب Python 3.10 أو أحدث.


الخطوة 2: استيراد فئة MapiMessage

from aspose.email_foss.msg import MapiMessage

الخطوة 3: تحميل ملف MSG

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

لتحليل متساهل للملفات غير الصالحة، مرّر strict=False:

msg = MapiMessage.from_file("message.msg", strict=False)

الخطوة 4: الوصول إلى خصائص الرسالة

print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html[:200] if msg.body_html else 'None'}")
print(f"Message Class: {msg.message_class}")

الخطوة 5: سرد المرفقات

for att in msg.iter_attachments_info():
    name = att.storage_name
    is_embedded = att.is_embedded_message
    print(f"Attachment: {name}, embedded={is_embedded}")

الخطوة 6: فحص بنية CFB منخفضة المستوى

from aspose.email_foss.cfb import CFBReader

reader = CFBReader.from_file("message.msg")
print(f"Directory entries: {reader.directory_entry_count}")
for entry in reader.iter_streams():
    print(f"  Stream: {entry}")
reader.close()

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

CFBError عند التحميل

الملف ليس حاوية CFB صالحة. تحقق من أنه ملف Outlook MSG فعلي، وليس EML.

المحتوى فارغ لكن جسم HTML يحتوي على محتوى

بعض الرسائل تخزن المحتوى فقط في HTML. تحقق من msg.body_html عندما msg.body يُعيد None.

تحذيرات التحقق

الوصول إلى msg.validation_issues لرؤية مجموعة من تحذيرات الامتثال للملف المحمَّل.


الأسئلة المتكررة (FAQ)

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

ليس مباشرة. المكتبة تتعامل مع تنسيق MSG (CFB). حوّل محتوى EML إلى كائن EmailMessage أولاً، ثم استخدم MapiMessage.from_email_message().

هل يقرأ التحميل جميع بيانات المرفق في الذاكرة؟

لا. يتم قراءة بيانات تعريف المرفق عند الطلب. استخدم iter_attachments_info() للتكرار الخفيف.

هل هو آمن من تعدد الخيوط؟

كل مثيل MapiMessage مستقل. القراءات المتزامنة من مثيلات منفصلة آمنة.

 العربية