Wie man Dateien in Python analysiert

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

Erfordert Python 3.10 oder höher.


Schritt 2: Importieren der MapiMessage-Klasse

from aspose.email_foss.msg import MapiMessage

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

 Deutsch