כיצד לנתח קבצי MSG בפייתון

כיצד לנתח קבצי 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 הוא עצמאי. קריאות מקבילות ממופעים נפרדים בטוחות.

 עברית