Hogyan kell MSG fájlokat feldolgozni Pythonban
aspose-email-foss for Python egy tiszta Python API-t biztosít az Outlook MSG fájlok olvasásához Microsoft Office függőségek nélkül. Töltsön be egy fájlt egy MapiMessage objektumba, hogy hozzáférjen az összes üzenet adatához.
Lépésről‑lépésre útmutató
1. lépés: A csomag telepítése
pip install aspose-email-fossPython 3.10 vagy újabb szükséges.
2. lépés: A MapiMessage osztály importálása
from aspose.email_foss.msg import MapiMessage3. lépés: MSG fájl betöltése
msg = MapiMessage.from_file("message.msg")A hibás fájlok enyhe feldolgozásához adja át strict=False:
msg = MapiMessage.from_file("message.msg", strict=False)4. lépés: Üzenettulajdonságok elérése
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. lépés: Mellékletek listázása
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. lépés: Alacsony szintű CFB struktúra ellenőrzése
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()Általános problémák és megoldások
CFBError betöltéskor
A fájl nem érvényes CFB tároló. Ellenőrizze, hogy valódi Outlook MSG fájl-e, nem EML.
A body üres, de a HTML body tartalmaz tartalmat
Néhány üzenet csak HTML-ben tárolja a tartalmat. Ellenőrizze msg.body_html, amikor msg.body visszaadja None.
Érvényesítési figyelmeztetések
A msg.validation_issues elérésével megtekintheti a betöltött fájlra vonatkozó megfelelőségi figyelmeztetések tuple-ját.
Gyakran Ismételt Kérdések (GYIK)
Olvashatok EML fájlokat?
Nem közvetlenül. A könyvtár kezeli az MSG (CFB) formátumot. Először konvertálja az EML tartalmat egy EmailMessage objektummá, majd használja a MapiMessage.from_email_message()‑t.
A betöltés beolvassa az összes melléklet adatát a memóriába?
Nem. A melléklet metaadatai igény szerint kerülnek beolvasásra. Használja a iter_attachments_info()‑t könnyű iterációhoz.
Szálbiztonságú?
Minden MapiMessage példány független. A különálló példányokból történő egyidejű olvasás biztonságos.