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
- Analizza un file PST in Python
- Estrai messaggi da un file PST
- Estrai i contatti da un file PST
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.