Analizza i file PST di Outlook in Python

PST (Personal Storage Table) è un formato di file di archiviazione utilizzato da diversi programmi Microsoft. I file PST sono in grado di conservare i dati di messaggi, contatti, calendari, eventi, ecc. Viene utilizzato da popolari software Microsoft come MS Outlook, Exchange e Windows Messaging. In alcuni casi, potrebbe essere necessario analizzare un file PST ed estrarne i dati a livello di codice. Per raggiungere questo obiettivo, questo articolo mostra come analizzare i file PST dall’interno delle applicazioni Python.

Libreria Python per analizzare i file PST

Per analizzare i file PST, useremo Aspose.Email for Python. È una potente libreria Python che ti consente di implementare senza problemi client di posta elettronica ricchi di funzionalità. Inoltre, ti consente di lavorare con i formati di posta elettronica e di archiviazione più diffusi. È possibile installare la libreria da PyPI utilizzando il comando seguente.

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

Analizza un file PST in Python

Di seguito sono riportati i passaggi per analizzare un file PST ed estrarne le informazioni in Python.

  • Caricare il file PST utilizzando il metodo PersonalStorage.fromfile().
  • Ottieni la raccolta di cartelle in PST utilizzando il metodo PersonalStorage.rootfolder.getsubfolders().
  • Recupera le informazioni delle cartelle come nome, numero di elementi, ecc.

Nell’esempio di codice seguente viene illustrato come analizzare un file PST e recuperare le informazioni sulle cartelle.

from aspose.email import PersonalStorage

# Load PST file
personalStorage = PersonalStorage.from_file("Outlook.pst")

# Get folders' collection
folderInfoCollection = personalStorage.root_folder.get_sub_folders()

# Extract folders' information
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))

Estrai messaggi da un file PST in Python

I messaggi sono le principali entità archiviate nei file PST da programmi Microsoft come MS Outlook. Vediamo quindi come estrarre i messaggi da un file PST in Python.

  • Caricare il file PST utilizzando il metodo PersonalStorage.fromfile().
  • Ottieni il riferimento della cartella desiderata in un oggetto utilizzando il metodo PersonalStorage.rootfolder.getsubfolder().
  • Ottieni la raccolta dei messaggi usando il metodo getcontents().
  • Scorri i messaggi nella raccolta e leggi i campi di ogni messaggio.

L’esempio di codice seguente mostra come estrarre i messaggi da un file PST in Python.

from aspose.email import PersonalStorage

# Load PST file
sourcePst = PersonalStorage.from_file("Outlook.pst")

# Select desired folder
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")

# Get content in the folder
messageInfoCollection = sourceFolder.get_contents()

# Loop through messages in folder
for messageInfo in messageInfoCollection:
        print ("Subject: " + messageInfo.subject)
        print("To: " + messageInfo.display_to)

Estrai i contatti da un file PST in Python

In alcuni casi, potrebbe essere necessario estrarre le informazioni sui contatti archiviate in un file PST. I passaggi seguenti mostrano come accedere ai contatti in un file PST in Python.

  • Caricare il file PST utilizzando il metodo PersonalStorage.fromfile().
  • Ottieni il riferimento della cartella dei contatti usando il metodo getpredefinedfolder(StandardIpmFolder.CONTACTS).
  • Ottieni la raccolta di contatti usando il metodo getcontents().
  • Scorri la raccolta e leggi ogni contatto o salvalo.

L’esempio di codice seguente mostra come estrarre i contatti da un file PST in Python.

from aspose.email import PersonalStorage, StandardIpmFolder, ContactSaveFormat

# Load PST file
pst = PersonalStorage.from_file("SampleContacts_out.pst")

# Select contacts folder				
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)

# Get contacts
contactCollection = folderInfo.get_contents()

# Loop through contacts collection
for  messageInfo in contactCollection:

    # Get the contact information
    mapi = pst.extract_message(messageInfo)

    contact = mapi.to_mapi_message_item()

    # Display some contents on screen
    print("Name: " + contact.name_info.display_name)

    # Save to disc in MSG Format
    if contact.name_info.display_name is not None:
        # Save contact
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)

Ottieni una licenza API gratuita

Puoi provare Aspose.Email per Python gratuitamente ottenendo una licenza temporanea.

Conclusione

In questo articolo, hai imparato come analizzare i file PST in Python. Inoltre, hai visto come estrarre contatti e messaggi da un file PST a livello di codice in Python. Inoltre, puoi esplorare di più su Aspose.Email utilizzando la documentazione. Inoltre, puoi condividere le tue domande o richieste sul nostro forum.

Guarda anche