כיצד לנתח קבצי MSG בפייתון
aspose-email-foss עבור Python מספק API טהור-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 הוא עצמאי. קריאות מקבילות ממופעים נפרדים בטוחות.