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-fossVyžaduje Python 3.10 nebo novější.
Krok 2: Import třídy MapiMessage
from aspose.email_foss.msg import MapiMessageKrok 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é.