Analysera Outlook PST-filer i Python

PST (Personal Storage Table) är ett lagringsfilformat som används av olika Microsoft-program. PST-filer kan lagra information om meddelanden, kontakter, kalendrar, händelser, etc. Det används av populära Microsoft-program som MS Outlook, Exchange och Windows Messaging. I vissa fall kan du behöva analysera en PST-fil och extrahera data från den programmatiskt. För att uppnå det visar den här artikeln hur man analyserar PST-filer från Python-applikationerna.

Python-bibliotek för att analysera PST-filer

För att analysera PST-filer kommer vi att använda Aspose.Email for Python. Det är ett kraftfullt Python-bibliotek som låter dig implementera funktionsrika e-postklienter sömlöst. Dessutom låter den dig arbeta med populära e-post- och lagringsformat. Du kan installera biblioteket från PyPI med följande kommando.

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

Analysera en PST-fil i Python

Följande är stegen för att analysera en PST-fil och extrahera dess information i Python.

  • Ladda PST-filen med metoden PersonalStorage.fromfile().
  • Hämta mappsamlingen i PST med metoden PersonalStorage.rootfolder.getsubfolders().
  • Hämta information om mapparna som namn, antal objekt osv.

Följande kodexempel visar hur man analyserar en PST-fil och hämtar mapparinformation.

from aspose.email.storage.pst import PersonalStorage

# Ladda PST-fil
personalStorage = PersonalStorage.from_file("Outlook.pst")

# Hämta mappars samling
folderInfoCollection = personalStorage.root_folder.get_sub_folders()

# Extrahera information om mappar
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))

Extrahera meddelanden från en PST-fil i Python

Meddelanden är de viktigaste enheterna som lagras i PST-filer av Microsoft-program som MS Outlook. Så låt oss se hur man extraherar meddelanden från en PST-fil i Python.

  • Ladda PST-filen med metoden PersonalStorage.fromfile().
  • Hämta referensen till den önskade mappen i ett objekt med metoden PersonalStorage.rootfolder.getsubfolder().
  • Hämta meddelandesamling med metoden getcontents().
  • Gå igenom meddelandena i samlingen och läs varje meddelandes fält.

Följande kodexempel visar hur man extraherar meddelanden från en PST-fil i Python.

from aspose.email.storage.pst import PersonalStorage

# Ladda PST-fil
sourcePst = PersonalStorage.from_file("Outlook.pst")

# Välj önskad mapp
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")

# Hämta innehåll i mappen
messageInfoCollection = sourceFolder.get_contents()

# Gå igenom meddelanden i mappen
for messageInfo in messageInfoCollection:
        print ("Subject: " + messageInfo.subject)
        print("To: " + messageInfo.display_to)

Extrahera kontakter från en PST-fil i Python

I vissa fall kan du behöva extrahera kontakternas information lagrad i en PST-fil. Följande steg visar hur du kommer åt kontakterna i en PST-fil i Python.

  • Ladda PST-filen med metoden PersonalStorage.fromfile().
  • Få referens till kontaktmappen med metoden getpredefinedfolder(StandardIpmFolder.CONTACTS).
  • Få samling av kontakter med metoden getcontents().
  • Gå igenom samlingen och läs varje kontakt eller spara den.

Följande kodexempel visar hur man extraherar kontakter från en PST-fil i Python.

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

# Ladda PST-fil
pst = PersonalStorage.from_file("SampleContacts_out.pst")

# Välj kontaktmapp				
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)

# Skaffa kontakter
contactCollection = folderInfo.get_contents()

# Gå igenom kontaktinsamlingen
for  messageInfo in contactCollection:

    # Få kontaktinformationen
    mapi = pst.extract_message(messageInfo)

    contact = mapi.to_mapi_message_item()

    # Visa en del innehåll på skärmen
    print("Name: " + contact.name_info.display_name)

    # Spara på skiva i MSG-format
    if contact.name_info.display_name is not None:
        # Spara kontakt
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)

Skaffa en gratis API-licens

Du kan prova Aspose.Email för Python gratis genom att skaffa en tillfällig licens.

Slutsats

I den här artikeln har du lärt dig hur du analyserar PST-filer i Python. Dessutom har du sett hur man extraherar kontakter och meddelanden från en PST-fil programmatiskt i Python. Dessutom kan du utforska mer om Aspose.Email med hjälp av dokumentation. Du kan också dela dina frågor eller frågor på vårt forum.

Se även