مقدمة
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.