Analyzujte soubory PST aplikace Outlook v Pythonu

PST (Personal Storage Table) je formát souboru úložiště, který používají různé programy společnosti Microsoft. Soubory PST jsou schopny uchovávat data zpráv, kontaktů, kalendářů, událostí atd. Používají jej oblíbené programy společnosti Microsoft, jako jsou MS Outlook, Exchange a Windows Messaging. V některých případech může být nutné analyzovat soubor PST a extrahovat data z něj programově. Abychom toho dosáhli, tento článek ukazuje, jak analyzovat soubory PST z aplikací Python.

Knihovna Python pro analýzu souborů PST

K analýze souborů PST použijeme Aspose.Email pro Python. Je to výkonná knihovna Pythonu, která vám umožní bezproblémově implementovat e-mailové klienty bohaté na funkce. Kromě toho vám umožňuje pracovat s oblíbenými formáty e-mailů a úložiště. Knihovnu můžete nainstalovat z PyPI pomocí následujícího příkazu.

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

Analyzujte soubor PST v Pythonu

Následují kroky k analýze souboru PST a extrahování jeho informací v Pythonu.

  • Načtěte soubor PST pomocí metody PersonalStorage.fromfile().
  • Získejte kolekci složek v PST pomocí metody PersonalStorage.rootfolder.getsubfolders().
  • Získejte informace o složkách, jako je název, počet položek atd.

Následující ukázka kódu ukazuje, jak analyzovat soubor PST a načíst informace o složkách.

from aspose.email.storage.pst import PersonalStorage

# Načíst soubor PST
personalStorage = PersonalStorage.from_file("Outlook.pst")

# Získejte sbírku složek
folderInfoCollection = personalStorage.root_folder.get_sub_folders()

# Extrahujte informace o složkách
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))

Extrahujte zprávy ze souboru PST v Pythonu

Zprávy jsou hlavní entity, které jsou uloženy v souborech PST programy společnosti Microsoft, jako je MS Outlook. Pojďme se tedy podívat, jak extrahovat zprávy ze souboru PST v Pythonu.

  • Načtěte soubor PST pomocí metody PersonalStorage.fromfile().
  • Získejte odkaz na požadovanou složku v objektu pomocí metody PersonalStorage.rootfolder.getsubfolder().
  • Získejte kolekci zpráv pomocí metody getcontents().
  • Procházejte zprávy v kolekci a přečtěte si pole každé zprávy.

Následující ukázka kódu ukazuje, jak extrahovat zprávy ze souboru PST v Pythonu.

from aspose.email.storage.pst import PersonalStorage

# Načíst soubor PST
sourcePst = PersonalStorage.from_file("Outlook.pst")

# Vyberte požadovanou složku
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")

# Získejte obsah ve složce
messageInfoCollection = sourceFolder.get_contents()

# Procházet zprávy ve složce
for messageInfo in messageInfoCollection:
        print ("Subject: " + messageInfo.subject)
        print("To: " + messageInfo.display_to)

Extrahujte kontakty ze souboru PST v Pythonu

V některých případech může být nutné extrahovat informace o kontaktech uložené v souboru PST. Následující kroky ukazují, jak získat přístup ke kontaktům v souboru PST v Pythonu.

  • Načtěte soubor PST pomocí metody PersonalStorage.fromfile().
  • Získejte odkaz na složku kontaktů pomocí metody getpredefinedfolder(StandardIpmFolder.CONTACTS).
  • Získejte kolekci kontaktů pomocí metody getcontents().
  • Projděte sbírku a přečtěte si každý kontakt nebo jej uložte.

Následující ukázka kódu ukazuje, jak extrahovat kontakty ze souboru PST v Pythonu.

from aspose.email.storage.pst import PersonalStorage, StandardIpmFolder
from aspose.email.mapi import ContactSaveFormat

# Načíst soubor PST
pst = PersonalStorage.from_file("SampleContacts_out.pst")

# Vyberte složku kontaktů				
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)

# Získejte kontakty
contactCollection = folderInfo.get_contents()

# Procházet sbírkou kontaktů
for  messageInfo in contactCollection:

    # Získejte kontaktní informace
    mapi = pst.extract_message(messageInfo)

    contact = mapi.to_mapi_message_item()

    # Zobrazení určitého obsahu na obrazovce
    print("Name: " + contact.name_info.display_name)

    # Uložit na disk ve formátu MSG
    if contact.name_info.display_name is not None:
        # Uložit kontakt
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)

Získejte bezplatnou licenci API

Aspose.Email pro Python můžete vyzkoušet zdarma získáte dočasnou licenci.

Závěr

V tomto článku jste se naučili, jak analyzovat soubory PST v Pythonu. Dále jste viděli, jak extrahovat kontakty a zprávy ze souboru PST programově v Pythonu. Kromě toho můžete prozkoumat více o Aspose.Email pomocí dokumentace. Také můžete sdílet své dotazy nebo dotazy na našem fóru.

Viz také