Hogyan kell MSG fájlokat feldolgozni Pythonban

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-foss

Python 3.10 vagy újabb szükséges.


2. lépés: A MapiMessage osztály importálása

from aspose.email_foss.msg import MapiMessage

3. 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.

 Magyar