Analysieren Sie Outlook-PST-Dateien in Python

PST (Personal Storage Table) ist ein Speicherdateiformat, das von verschiedenen Microsoft-Programmen verwendet wird. PST-Dateien können Daten von Nachrichten, Kontakten, Kalendern, Ereignissen usw. speichern. Sie werden von gängigen Microsoft-Softwareprogrammen wie MS Outlook, Exchange und Windows Messaging verwendet. In bestimmten Fällen müssen Sie möglicherweise eine PST-Datei parsen und Daten daraus programmgesteuert extrahieren. Um dies zu erreichen, zeigt dieser Artikel, wie Sie PST-Dateien aus den Python-Anwendungen heraus parsen.

Python-Bibliothek zum Analysieren von PST-Dateien

Um PST-Dateien zu analysieren, verwenden wir Aspose.Email for Python. Es ist eine leistungsstarke Python-Bibliothek, mit der Sie funktionsreiche E-Mail-Clients nahtlos implementieren können. Darüber hinaus können Sie mit gängigen E-Mail- und Speicherformaten arbeiten. Sie können die Bibliothek von PyPI mit dem folgenden Befehl installieren.

> pip install Aspose.Email-for-Python-via-NET

Analysieren Sie eine PST-Datei in Python

Im Folgenden sind die Schritte zum Analysieren einer PST-Datei und zum Extrahieren ihrer Informationen in Python aufgeführt.

  • Laden Sie die PST-Datei mit der Methode PersonalStorage.fromfile().
  • Rufen Sie die Ordnersammlung in PST mit der Methode PersonalStorage.rootfolder.getsubfolders() ab.
  • Rufen Sie die Informationen der Ordner wie Name, Anzahl der Elemente usw. ab.

Das folgende Codebeispiel zeigt, wie eine PST-Datei analysiert und die Ordnerinformationen abgerufen werden.

from aspose.email import PersonalStorage

# PST-Datei laden
personalStorage = PersonalStorage.from_file("Outlook.pst")

# Holen Sie sich die Sammlung der Ordner
folderInfoCollection = personalStorage.root_folder.get_sub_folders()

# Ordnerinformationen extrahieren
for folderInfo in folderInfoCollection:
	print("Folder: " + folderInfo.display_name)
	print("Total Items: " + str(folderInfo.content_count))
	print("Total Unread Items: " + str(folderInfo.content_unread_count))

Nachrichten aus einer PST-Datei in Python extrahieren

Nachrichten sind die wichtigsten Einheiten, die von Microsoft-Programmen wie MS Outlook in PST-Dateien gespeichert werden. Sehen wir uns also an, wie Nachrichten aus einer PST-Datei in Python extrahiert werden.

  • Laden Sie die PST-Datei mit der Methode PersonalStorage.fromfile().
  • Rufen Sie die Referenz des gewünschten Ordners in einem Objekt mit der Methode PersonalStorage.rootfolder.getsubfolder() ab.
  • Rufen Sie die Nachrichtensammlung mit der Methode getcontents() ab.
  • Durchlaufen Sie die Nachrichten in der Sammlung und lesen Sie die Felder jeder Nachricht.

Das folgende Codebeispiel zeigt, wie Nachrichten aus einer PST-Datei in Python extrahiert werden.

from aspose.email import PersonalStorage

# PST-Datei laden
sourcePst = PersonalStorage.from_file("Outlook.pst")

# Gewünschten Ordner auswählen
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")

# Holen Sie sich Inhalte in den Ordner
messageInfoCollection = sourceFolder.get_contents()

# Nachrichten im Ordner durchlaufen
for messageInfo in messageInfoCollection:
        print ("Subject: " + messageInfo.subject)
        print("To: " + messageInfo.display_to)

Extrahieren Sie Kontakte aus einer PST-Datei in Python

In bestimmten Fällen müssen Sie möglicherweise die in einer PST-Datei gespeicherten Kontaktinformationen extrahieren. Die folgenden Schritte zeigen, wie Sie in Python auf die Kontakte in einer PST-Datei zugreifen.

  • Laden Sie die PST-Datei mit der Methode PersonalStorage.fromfile().
  • Rufen Sie die Referenz des Kontaktordners mit der Methode getpredefinedfolder(StandardIpmFolder.CONTACTS) ab.
  • Holen Sie sich eine Sammlung von Kontakten mit der Methode getcontents().
  • Durchlaufen Sie die Sammlung und lesen Sie jeden Kontakt oder speichern Sie ihn.

Das folgende Codebeispiel zeigt, wie Kontakte aus einer PST-Datei in Python extrahiert werden.

from aspose.email import PersonalStorage, StandardIpmFolder, ContactSaveFormat

# PST-Datei laden
pst = PersonalStorage.from_file("SampleContacts_out.pst")

# Kontaktordner auswählen				
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)

# Kontakte erhalten
contactCollection = folderInfo.get_contents()

# Durchlaufen Sie die Kontaktsammlung
for  messageInfo in contactCollection:

    # Holen Sie sich die Kontaktinformationen
    mapi = pst.extract_message(messageInfo)

    contact = mapi.to_mapi_message_item()

    # Zeigen Sie einige Inhalte auf dem Bildschirm an
    print("Name: " + contact.name_info.display_name)

    # Auf Disc im MSG-Format speichern
    if contact.name_info.display_name is not None:
        # Kontakt speichern
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)

Holen Sie sich eine kostenlose API-Lizenz

Sie können Aspose.Email für Python kostenlos testen, indem Sie eine temporäre Lizenz erwerben.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie PST-Dateien in Python parsen. Außerdem haben Sie gesehen, wie Sie Kontakte und Nachrichten programmgesteuert in Python aus einer PST-Datei extrahieren. Darüber hinaus können Sie mehr über Aspose.Email erfahren, indem Sie Dokumentation verwenden. Außerdem können Sie Ihre Fragen oder Fragen in unserem Forum teilen.

Siehe auch