مقدمة

إن نشر رسائل البريد الإلكتروني برامج هو متطلب شائع لعملية نقل البيانات، وتدفقات العمل الأرشيف، وأدوات الامتثال. يستخدم ملفات Outlook MSG تنسيق الملفات الثنائية (CFB) حاوية مع خصائص MAPI لتشفير بيانات الرسالة المتعددة، ومحتوى الجسم، والمستلمين، والإرفقات. يعمل هذا النموذج في Python قد يتطلب تقليديا إما مكتبات تجارية أو منخفضة المستوى التلاعب الثانوي.

وَالْمُتَّقِينَ aspose-email-foss الحزمة توفر مكتبة بيوثون النقي، MIT مرخصة للقراءة، وإنشاء، وتحويل ملفات Outlook MSG. MapiMessage API للمهام المشتركة جنبا إلى جنب مع المستوى السفلي MsgReader الوصول إلى فحص مفصل للهيكل الأساسي CFB. يتطلب المكتبة Python 3.10 أو أحدث وليس لديها إدمانات محلية.

سواء كنت بحاجة إلى استخراج خط الموضوع والجسم من مجموعة من الرسائل المأخوذة، أو إدراج الملحقات للتصنيف، وإما تحويل ملفات MSG إلى تنسيق RFC القياسي 5322، هذه المكتبة تتعامل مع التناوب الثنائي حتى تتمكن من التركيز على منطق التطبيق الخاص بك.


ما هو مدرجة

قراءة ملفات MSG مع MapiMessage

وَالْمُتَّقِينَ MapiMessage فئة هي نقطة الدخول الرئيسية لتنظيف ملفات Outlook MSG. افتح الملف، والوصول إلى خصائصه، وإغلاقه نظيفة مع مدير السياق.

from aspose.email_foss import msg

with msg.MapiMessage.from_file("meeting-invite.msg") as message:
    print(f"Subject: {message.subject}")
    print(f"Body: {message.body[:200]}")
    print(f"HTML body available: {message.body_html is not None}")

وَالْمُتَّقِينَ from_file الطريقة تقرأ حاوية CFB ، وتتلاشى تدفقات الممتلكات MAPI ، ويقيم الصفات التي يتم اختبارها. subject, body,و ، و body_html الممتلكات تعيد الشرائح المزهرة مباشرة.

استخراج المكونات

كل ملف MSG يخزن المعلومات المتلقي في مخازن MAPI المخصصة. MapiMessage.recipients الممتلكات تعيد قائمة من MapiRecipient الكائنات التي تحتوي على الحقول المكتوبة لعرض الاسم وعنوان البريد الإلكتروني ونوع المستلم (TO أو CC أو BCC).

from aspose.email_foss import msg

with msg.MapiMessage.from_file("team-update.msg") as message:
    for recipient in message.recipients:
        print(
            f"{recipient.display_name} <{recipient.email_address}> "
            f"type={recipient.recipient_type}"
        )

العمل مع الوحدات

وَالْمُتَّقِينَ iter_attachments_info طريقة الدفع MapiAttachment الكائنات التي توفر اسم الملف، والبايت الخام، ونوع MIME، واختيار المحتوى-ID للصور في الخطوط.

from aspose.email_foss import msg

with msg.MapiMessage.from_file("report.msg") as message:
    for att in message.iter_attachments_info():
        print(f"  {att.filename} ({att.mime_type}, {len(att.data)} bytes)")
        if att.content_id:
            print(f"    inline content-id: {att.content_id}")

الوصول إلى ميزات MAPI

بالنسبة للمشاهد التي تتطلب قيم مملوكة محددة من MAPI تتجاوز خصائص الراحة، استخدم get_property_value مع A PropertyId هذا يوفر الوصول المباشر إلى أي ممتلكات مخزنة في ملف MSG.

from aspose.email_foss import msg

with msg.MapiMessage.from_file("notification.msg") as message:
    sender = message.get_property_value(msg.PropertyId.SENDER_NAME)
    email = message.get_property_value(msg.PropertyId.SENDER_EMAIL_ADDRESS)
    delivery = message.get_property_value(msg.PropertyId.MESSAGE_DELIVERY_TIME)
    print(f"From: {sender} <{email}>")
    print(f"Delivered: {delivery}")

إزالة جميع الممتلكات

عندما تحتاج إلى فحص كل ممتلكات في رسالة (لإزالة أو مراجعة أو الهجرة) ، فإن iter_properties طريقة الدفع MapiProperty الكائنات مع علامة كاملة ومعلومات القيمة.

from aspose.email_foss import msg

with msg.MapiMessage.from_file("sample.msg") as message:
    for prop in message.iter_properties():
        print(
            f"tag=0x{prop.property_tag:08X} "
            f"type=0x{prop.property_type:04X} "
            f"value={prop.value!r}"
        )

تحويل MSG إلى EML

وَالْمُتَّقِينَ to_email_message طريقة تحويل MSG المقطوع إلى Python القياسي email.message.EmailMessage من هناك يمكنك تسلسل الرسالة إلى تنسيق RFC 5322 (EML) باستخدام المكتبة القياسية.

from aspose.email_foss import msg

with msg.MapiMessage.from_file("archive.msg") as message:
    email_message = message.to_email_message()
    eml_bytes = email_message.as_bytes()
    with open("archive.eml", "wb") as f:
        f.write(eml_bytes)

ملاحظة أن إصدار EML يستخدم Python المدمج email المكتبة تتعامل مع تحويل MSG-to-MAPI-To-EmailMessage؛ والمكتبت القياسي يتعامل بفرم الأسلاك RFC 5322.


بدء سريع

قم بتثبيت الحزمة من PyPI وتقسيم ملف MSG الأول في أقل من 20 خطًا:

# Install: pip install aspose-email-foss>=26.3
from aspose.email_foss import msg

# Create a new message
message = msg.MapiMessage.create(
    "Project status update",
    "Hello team,\n\nPlease review the attached report.\n\nRegards",
)
message.add_recipient("alice@example.com", display_name="Alice")
message.add_attachment("notes.txt", b"meeting notes\n", mime_type="text/plain")
message.save("status-update.msg")

# Read it back and extract data
with msg.MapiMessage.from_file("status-update.msg") as loaded:
    print(f"Subject: {loaded.subject}")
    print(f"Recipients: {len(loaded.recipients)}")
    for att in loaded.iter_attachments_info():
        print(f"Attachment: {att.filename} ({len(att.data)} bytes)")

تنسيقات مدعومة

شكلالتمديدقراءةكتب
Outlook MSG.msgنعمنعم
ملف ثنائي الملفات.cfbنعمنعم
EML (من خلال التحويل).emlنعم ( من خلال from_email_message)نعم ( من خلال to_email_message)

يدعم EML يعمل من خلال التحويل: MapiMessage.from_email_message() استيراد من Python email.message.EmailMessage الموضوع، و to_email_message() لا يتم توفير إزالة الملفات EML مباشرة - تتعامل المكتبة القياسية مع تنسيق الأسلاك EM L.


المصدر المفتوح و الترخيص

Aspose.Email FOSS for Python is released under the MIT license. You are free to use, modify, and distribute the library in both commercial and non-commercial projects. The full source code is available on GitHub.

مكتبة هي تطبيق Python النقي مع لا توجد إضافات أو تمييزات أصلية.يتم تشغيله على أي منصة تدعم Python 3.10 أو ما بعدها.


بدءاً من

استكشاف المزيد من الموارد للعمل مع Aspose.Email FOSS for Python: