Jak analyzovat MSG soubory v Pythonu

Jak analyzovat MSG soubory v Pythonu

aspose-email-foss pro Python poskytuje čistě pythonové API pro čtení souborů Outlook MSG bez závislostí Microsoft Office. Nahrát soubory do aplikace MapiMessage odmítnout přístup ke všem údajům z zprávy.

Krok za krokem

Krok 1: Nainstalujte balíček

pip install aspose-email-foss

Vyžaduje Python 3.10 nebo novější.


Krok 2: Import třídy MapiMessage

from aspose.email_foss.msg import MapiMessage

Krok 3: Nahrát soubor MSG

msg = MapiMessage.from_file("message.msg")

Pro lehké analýzy chybně formovaných souborů, projít strict=False:

msg = MapiMessage.from_file("message.msg", strict=False)

Krok 4: Vlastnosti přístupu k zprávě

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}")

Krok 5: Seznam příloh

for att in msg.iter_attachments_info():
    name = att.storage_name
    is_embedded = att.is_embedded_message
    print(f"Attachment: {name}, embedded={is_embedded}")

Krok 6: Zkontrolujte strukturu CFB nízké úrovně

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()

Obvyklé problémy a řešení

CFBError při nakládání

Soubor není platný CFB kontejner. Ověřte, že je to skutečný soubor Outlook MSG a ne EML.

Tělo je prázdné, ale HTML tělo má obsah.

Některé zprávy ukládají obsah pouze v HTML. Zkontrolujte msg.body_html kdy? msg.body výnosy None.

Varování při ověřování

Přístup msg.validation_issues Pro načtený soubor je k dispozici několik varování ohledně shody.


Časté otázky (FAQ)

Můžu si přečíst soubory?

Ne přímo. Knihovna zachází s formátem MSG (CFB). Konvertujte obsah EML na formátu . EmailMessage Objekt nejprve, pak použití. MapiMessage.from_email_message().

Čte načtení všechny údaje o připojených souborech do paměti?

Ano, všechny údaje o připojených souborech včetně binárního obsahu jsou načteny do paměti. MapiMessage.from_file() dokončuje. iter_attachments_info() je komfortní iterátor již načteného seznamu příloh.

Je to bezpečné?

Každá. MapiMessage Souběžné čtení z samostatných instanc je bezpečné.

 Čeština