مقدمة

Aspose.Email FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and converting Outlook .msg ملفات بالكامل في Python، دون أي اعتماد على Microsoft Office أو أي امتداد أصلي. قم بتثبيتها باستخدام pip install aspose-email-foss>=26.3 وابدأ العمل مع حاويات MSG و CFB فورًا.

تستهدف المكتبة Python 3.10 وما بعده. فهي تنفّذ تنسيق Compound File Binary (CFB) وتنسيق رسائل MSG من الصفر، مما يمنحك تحكمًا حتميًا في كيفية تسلسل رسائل البريد الإلكتروني وقراءتها. وبما أن التنفيذ نقي Python، فإنه يعمل بنفس الطريقة على Windows و macOS و Linux، وكذلك في بيئات الحاويات.

Aspose.Email FOSS is designed for developers building email processing pipelines, compliance archival tools, forensic analysis workflows, or any application that needs to create or inspect Outlook-compatible message files without a running Exchange or Outlook installation.


الميزات الرئيسية

إنشاء ملفات MSG

إنشاء ملفات متوافقة مع Outlook .msg من الصفر باستخدام MapiMessage.create(). اضبط خصائص MAPI القياسية مثل الموضوع، والمرسل، ووقت التسليم، وحقول العرض عبر PropertyId التعداد. أضف المستلمين باستخدام add_recipient() ومرفقات الملفات باستخدام add_attachment(),، ثم احفظ النتيجة على القرص.

from aspose.email_foss import msg

message = msg.MapiMessage.create(
    "Quarterly status update and rollout plan",
    "Hello team,\n\nPlease find the latest rollout summary attached.\n\nRegards,\nEngineering",
)

message.set_property(msg.PropertyId.SENDER_NAME, "Build Agent")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "build.agent@example.com")
message.set_property(msg.PropertyId.INTERNET_MESSAGE_ID, "<example-001@example.com>")

message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_recipient("bob@example.com", display_name="Bob Example")
message.add_recipient(
    "carol@example.com",
    display_name="Carol Example",
    recipient_type=msg.RECIPIENT_TYPE_CC,
)

message.add_attachment("hello.txt", b"sample attachment\n", mime_type="text/plain")
message.save("example-message.msg")

قراءة وتحويل MSG إلى EML

حمّل ملفًا موجودًا .msg مع MapiMessage.from_file() وحوّله إلى Python قياسي EmailMessage كائن عبر to_email_message(). من هناك، قم بتسلسل إلى بايتات EML للتخزين أو الإرسال عبر SMTP.

from aspose.email_foss import msg

with msg.MapiMessage.from_file("example-message.msg") as loaded:
    email_message = loaded.to_email_message()
    eml_bytes = email_message.as_bytes()

with open("example-message.eml", "wb") as f:
    f.write(eml_bytes)

فحص بنية MSG الداخلية

استخدم MsgReader والمكوّن الأساسي CFBReader لفحص البنية الثنائية لملف MSG. الوصول إلى بيانات تعريف CFB (الإصدار، حجم القطاع، عدد إدخالات الدليل) والتكرار على مدخلات خصائص MAPI على المستوى الثنائي.

from aspose.email_foss import msg

reader = msg.MsgReader.from_file("example-message.msg")
cfb = reader.cfb_reader

print(f"CFB major_version={cfb.major_version}")
print(f"sector_size={cfb.sector_size}")
print(f"directory_entries={cfb.directory_entry_count}")

for entry in reader.iter_top_level_fixed_length_properties():
    tag = entry.property_tag
    print(f"tag=0x{tag:08X} flags=0x{entry.flags:08X} value={entry.value.hex()}")

reader.close()

الوصول منخفض المستوى إلى CFB

اقرأ وتجوّل في أي حاوية Compound File Binary باستخدام CFBReader. عدّ التخزينات والتدفقات، حلّ المسارات حسب الاسم، واستخراج بيانات التدفق الخام للمعالجة المخصصة.

from aspose.email_foss.cfb import CFBReader

reader = CFBReader.from_file("example-message.msg")

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

for entry in reader.iter_streams():
    data = reader.get_stream_data(entry.stream_id)
    print(f"Stream: {entry.name} size={len(data)}")

reader.close()

بدء سريع

قم بتثبيت المكتبة وأنشئ أول ملف MSG لك في أقل من عشر أسطر:

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

message = msg.MapiMessage.create("Hello from Python", "This is a test message.")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "sender@example.com")
message.add_recipient("recipient@example.com", display_name="Recipient")
message.save("hello.msg")

with msg.MapiMessage.from_file("hello.msg") as loaded:
    eml = loaded.to_email_message()
    print(eml["Subject"])

الصيغ المدعومة

تنسيقاستيرادتصدير
MSGنعمنعم
CFBنعمنعم

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

Aspose.Email FOSS for Python is released under the رخصة MIT. يمكنك استخدامه في المشاريع الشخصية والداخلية والتجارية دون قيود. الشيفرة المصدرية متاحة على GitHub.


البدء