Wie man Dateien in Python analysiert
aspose-email-foss für Python bietet eine reine Python API zum Lesen von Outlook MSG Dateien ohne Microsoft Office Abhängigkeiten. Laden Sie eine Datenbank in ein MapiMessage Einwände gegen den Zugriff auf alle Nachrichtendaten.
Schritt für Schritte
Schritt 1: Installieren des Pakets
pip install aspose-email-fossErfordert Python 3.10 oder höher.
Schritt 2: Importieren der MapiMessage-Klasse
from aspose.email_foss.msg import MapiMessageSchritt 3: Laden einer MSG Datei ein
msg = MapiMessage.from_file("message.msg")Für eine leichte Analyse von fehlerhaften Dateien, passieren Sie die strict=False:
msg = MapiMessage.from_file("message.msg", strict=False)Schritt 4: Zugriff auf Nachrichten-Eigenschaften
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}")Schritt 5: Liste der Anhänge
for att in msg.iter_attachments_info():
name = att.storage_name
is_embedded = att.is_embedded_message
print(f"Attachment: {name}, embedded={is_embedded}")Schritt 6: Überprüfen Sie die CFB-Struktur auf niedriger Ebene.
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()Häufige Probleme und Lösungen
CFBError beim Laden
Die Datei ist kein gültiger CFB-Container. Überprüfen Sie, dass es sich um eine tatsächliche Outlook MSG-Datei handelt und nicht um ein EML.
Körper ist leer, aber HTML-Körper hat Inhalt
Einige Nachrichten speichern Inhalte nur in HTML. Überprüfen msg.body_html - Wann? msg.body Rückgabe None.
Validierungswarnungen
Zugang zu den Informationen msg.validation_issues Um eine Reihe von Warnungen zur Einhaltung der Anforderungen für die geladene Datei zu sehen.
Häufig gestellte Fragen (FAQ)
Kann ich die Dateien lesen?
Nicht direkt. Die Bibliothek verarbeitet das Format MSG (CFB). Konvertieren Sie den Inhalt von EML in ein EmailMessage Objekt zuerst, dann benutzen. MapiMessage.from_email_message().
Liest das Laden alle Anlagendaten in den Speicher?
Ja, alle Anlage-Daten einschließlich binärer Inhalte werden in den Speicher geladen. MapiMessage.from_file() Vollendet. iter_attachments_info() ist ein Komfort-Iterator über die bereits geladene Anhänge Liste.
Ist es schnurrsicher?
Jeder von ihnen MapiMessage Gleichzeitige Lesungen von separaten Instanzen sind sicher.