Analizuj pliki PST programu Outlook w języku Python

PST (Personal Storage Table) to format pliku pamięci używany przez różne programy firmy Microsoft. Pliki PST mogą przechowywać dane wiadomości, kontaktów, kalendarzy, wydarzeń itp. Jest używany przez popularne oprogramowanie firmy Microsoft, takie jak MS Outlook, Exchange i Windows Messaging. W niektórych przypadkach może być konieczne przeanalizowanie pliku PST i programowe wyodrębnienie z niego danych. Aby to osiągnąć, w tym artykule pokazano, jak analizować pliki PST z poziomu aplikacji Python.

Biblioteka Python do analizowania plików PST

Do parsowania plików PST użyjemy Aspose.Email for Python. Jest to potężna biblioteka Python, która umożliwia bezproblemową implementację bogatych w funkcje klientów poczty e-mail. Ponadto umożliwia pracę z popularnymi formatami poczty e-mail i przechowywania. Możesz zainstalować bibliotekę z PyPI za pomocą następującego polecenia.

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

Przeanalizuj plik PST w Python

Poniżej przedstawiono kroki, aby przeanalizować plik PST i wyodrębnić jego informacje w Python.

  • Załaduj plik PST przy użyciu metody PersonalStorage.fromfile().
  • Pobierz kolekcję folderów w pliku PST za pomocą metody PersonalStorage.rootfolder.getsubfolders().
  • Pobierz informacje o folderach, takie jak nazwa, liczba elementów itp.

Poniższy przykładowy kod pokazuje, jak analizować plik PST i pobierać informacje o folderach.

from aspose.email.storage.pst import PersonalStorage

# Załaduj plik PST
personalStorage = PersonalStorage.from_file("Outlook.pst")

# Pobierz kolekcję folderów
folderInfoCollection = personalStorage.root_folder.get_sub_folders()

# Wyodrębnij informacje o folderach
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))

Wyodrębnij wiadomości z pliku PST w Python

Wiadomości to główne elementy przechowywane w plikach PST przez programy firmy Microsoft, takie jak MS Outlook. Zobaczmy więc, jak wyodrębnić wiadomości z pliku PST w Python.

  • Załaduj plik PST przy użyciu metody PersonalStorage.fromfile().
  • Uzyskaj odniesienie do żądanego folderu w obiekcie za pomocą metody PersonalStorage.rootfolder.getsubfolder().
  • Pobierz kolekcję wiadomości za pomocą metody getcontents().
  • Przejrzyj wiadomości w kolekcji i przeczytaj pola każdej wiadomości.

Poniższy przykładowy kod pokazuje, jak wyodrębnić komunikaty z pliku PST w języku Python.

from aspose.email.storage.pst import PersonalStorage

# Załaduj plik PST
sourcePst = PersonalStorage.from_file("Outlook.pst")

# Wybierz żądany folder
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")

# Pobierz zawartość w folderze
messageInfoCollection = sourceFolder.get_contents()

# Zapętlaj wiadomości w folderze
for messageInfo in messageInfoCollection:
        print ("Subject: " + messageInfo.subject)
        print("To: " + messageInfo.display_to)

Wyodrębnij kontakty z pliku PST w Python

W niektórych przypadkach może być konieczne wyodrębnienie informacji o kontaktach przechowywanych w pliku PST. Poniższe kroki pokazują, jak uzyskać dostęp do kontaktów w pliku PST w Python.

  • Załaduj plik PST przy użyciu metody PersonalStorage.fromfile().
  • Pobierz odwołanie do folderu kontaktów za pomocą metody getpredefinedfolder(StandardIpmFolder.CONTACTS).
  • Pobierz kolekcję kontaktów za pomocą metody getcontents().
  • Przejrzyj kolekcję i przeczytaj każdy kontakt lub zapisz go.

Poniższy przykładowy kod pokazuje, jak wyodrębnić kontakty z pliku PST w języku Python.

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

# Załaduj plik PST
pst = PersonalStorage.from_file("SampleContacts_out.pst")

# Wybierz folder kontaktów				
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)

# Zdobądź kontakty
contactCollection = folderInfo.get_contents()

# Zapętlaj kolekcję kontaktów
for  messageInfo in contactCollection:

    # Uzyskaj informacje kontaktowe
    mapi = pst.extract_message(messageInfo)

    contact = mapi.to_mapi_message_item()

    # Wyświetl niektóre treści na ekranie
    print("Name: " + contact.name_info.display_name)

    # Zapisz na dysku w formacie MSG
    if contact.name_info.display_name is not None:
        # Zapisz kontakt
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)

Uzyskaj bezpłatną licencję API

Możesz wypróbować Aspose.Email for Python za darmo, uzyskując tymczasową licencję.

Wniosek

W tym artykule nauczyłeś się analizować pliki PST w Python. Ponadto widziałeś, jak programowo wyodrębnić kontakty i wiadomości z pliku PST w Python. Ponadto możesz dowiedzieć się więcej o Aspose.Email za pomocą dokumentacji. Możesz także dzielić się swoimi pytaniami lub zapytaniami na naszym forum.

Zobacz też