كيفية البدء مع Aspose.Email FOSS لـ Python
aspose-email-foss لـ Python هو مكتبة مجانية مرخصة من MIT للإنشاء والقراءة والوصول إلى تحويل ملفات Outlook MSG وملحقات CFB – لا Microsoft Office مطلوب، لا الأصلي التمديدات ، Python النقي من PyPI.
خطوة بخطوة دليل
الخطوة 1: قم بتثبيت الحزمة
تثبيت من PIPI مع Pip:
pip install aspose-email-fossتحقق من التحميل الصحيح:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")الخطوة 2: استيراد الدروس المطلوبة
استيراد الوحدات التي تحتاجها لإنشاء الرسالة، وتعيين الممتلكات، وتحويل النموذج:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdالخطوة 3: إنشاء ملف MSG
استخدام MapiMessage.create() لإنشاء رسالة مع موضوع وجسم.إعداد بيانات الميتا مع PropertyId إضافات مستمرة، وإضافة المستلمين، ورفع ملف.
message = MapiMessage.create("Getting Started", "Hello from aspose-email-foss!")
message.set_property(PropertyId.SENDER_NAME, "Build Agent")
message.set_property(PropertyId.SENDER_EMAIL_ADDRESS, "agent@example.com")
message.set_property(
PropertyId.MESSAGE_DELIVERY_TIME,
datetime(2026, 1, 1, 9, 0, tzinfo=timezone.utc),
)
message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_attachment("notes.txt", b"Meeting notes go here.\n", mime_type="text/plain")
message.save("getting-started.msg")
print("getting-started.msg written.")الخطوة 4: اقرأ ملف MSG مرة أخرى
تحميل الملف المحفوظ باستخدام MapiMessage.from_file() كمدير السياق، يتوجه إلى subject و body الممتلكات مباشرة من الكائن الذي تم إرجاعه.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")الخطوة 5: تحويل MSG إلى EML
to_email_bytes() تحويل الرسالة التي تم تحميلها إلى تنسيق RFC 5322 . أ أ .eml الملفات مع مكتبة القياسية.
from pathlib import Path
with MapiMessage.from_file("getting-started.msg") as message:
Path("getting-started.eml").write_bytes(message.to_email_bytes())
print("getting-started.eml written.")مشكلات و تصحيحات مشتركة
ModuleNotFoundError: No module named 'aspose' لا يتم تثبيت الحزمة في بيئة Python النشطة. pip install aspose-email-foss في نفس البيئة الافتراضية التي تستخدمها لتشغيل السيناريو. pip show aspose-email-foss.
FileNotFoundError عندما يطلب MapiMessage.from_file() المسار الذي مررت به لا يوجد أو يستخدم الفصل الخاطئ لنظام التشغيل الخاص بك. pathlib.Path لإنشاء مسارات قابلة للتحميل: MapiMessage.from_file(Path("folder") / "file.msg").
يفتح ملف MSG في Outlook ولكن لا يعرض موضوعًا MapiMessage.create() يعتبر الموضوع أول حجة موقفية.إذا كنت قد مررت في شريط فارغ، يظهر Outlook الرسالة غير المسمى.مر شريطة غير فارغة أو قم بتعيينها وبشكل واضح مع set_property(PropertyId.SUBJECT, "My Subject").
تحويل EML ينتج جسم فارغ to_email_bytes() استخدامات body_html إذا كان يعود، ويعود إلى body.وأكد أن في على الأقل واحد من هذه الخصائص غير فارغ بعد تحميل MSG مع from_file().
محتوى النيكود في المستلمين أو الموضوع يتم تثبيته مرسوم unicode_strings=True إلى MapiMessage.create() لضمان أن الخصائص المرتبطة بالشريط هي يتم تخزينها في Unicode (PT_UNICODE) بدلاً من ANSI ( PT_STRING8).
الأسئلة المتكررة
هل يتطلب موقع البريد الإلكتروني المحدد Microsoft Office؟?
لا. مكتبة هو تماما الذاتية. فإنه يقرأ ويكتب تنسيقات MSG و CFB الثنائية في Python دون أي إدمان على Microsoft Office, COM أوتوماتيك, أو Win32 APIs.
هل يمكنني استخدام هذه المكتبة على Linux أو macOS؟?
نعم . aspose-email-foss هو Python النقي وتعمل على أي منصة تدعم Python 3.10 أو في وقت لاحق - بما في ذلك Windows و macOS و Linux و Docker containers و الخادم-free functions.
هل المكتبة مجانية للاستخدام التجاري؟?
نعم، يتم إصدارها بموجب ترخيص MIT. يمكنك استخدامها وتعديلها وإعادة توزيعها لأي غرض، بما في ذلك التطبيقات التجارية، دون أي حقوق أو متطلبات التخصيص خارج نص الترخيصة.
كيف يمكنني إضافة مستلمي CC و BCC؟?
مرسوم recipient_type=msg.RECIPIENT_TYPE_CC أو msg.RECIPIENT_TYPE_BCC كما ثالثاً الحجة إلى add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)كيف يمكنني إدراج MSG في داخل MSD؟?
استخدام MapiMessage.add_embedded_message_attachment(),من خلال الممر الداخلي MapiMessage وَقَالَ الْمُتَّكِئُونَ كَأَنَّهُ أَوْلَى:
inner = MapiMessage.create("Inner message", "Embedded body.")
outer = MapiMessage.create("Outer message", "See attachment.")
outer.add_embedded_message_attachment(inner, "inner.msg")
outer.save("outer.msg")