Analyser les fichiers Outlook PST en Python

PST (Personal Storage Table) est un format de fichier de stockage utilisé par différents programmes Microsoft. Les fichiers PST sont capables de conserver les données des messages, contacts, calendriers, événements, etc. Il est utilisé par les logiciels Microsoft populaires tels que MS Outlook, Exchange et Windows Messaging. Dans certains cas, vous devrez peut-être analyser un fichier PST et en extraire des données par programmation. Pour y parvenir, cet article montre comment analyser les fichiers PST à partir des applications Python.

Bibliothèque Python pour analyser les fichiers PST

Afin d’analyser les fichiers PST, nous utiliserons Aspose.Email for Python. Il s’agit d’une puissante bibliothèque Python qui vous permet d’implémenter de manière transparente des clients de messagerie riches en fonctionnalités. De plus, il vous permet de travailler avec des formats de messagerie et de stockage populaires. Vous pouvez installer la bibliothèque à partir de PyPI à l’aide de la commande suivante.

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

Analyser un fichier PST en Python

Voici les étapes pour analyser un fichier PST et extraire ses informations en Python.

  • Chargez le fichier PST à l’aide de la méthode PersonalStorage.fromfile().
  • Obtenez la collection de dossiers dans PST à l’aide de la méthode PersonalStorage.rootfolder.getsubfolders().
  • Récupérer les informations des dossiers telles que le nom, le nombre d’éléments, etc.

L’exemple de code suivant montre comment analyser un fichier PST et récupérer les informations des dossiers.

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))

Extraire des messages d’un fichier PST en Python

Les messages sont les principales entités stockées dans les fichiers PST par les programmes Microsoft tels que MS Outlook. Voyons donc comment extraire des messages d’un fichier PST en Python.

  • Chargez le fichier PST à l’aide de la méthode PersonalStorage.fromfile().
  • Obtenez la référence du dossier souhaité dans un objet à l’aide de la méthode PersonalStorage.rootfolder.getsubfolder().
  • Obtenez la collection de messages à l’aide de la méthode getcontents().
  • Parcourez les messages de la collection et lisez les champs de chaque message.

L’exemple de code suivant montre comment extraire des messages d’un fichier PST en 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)

Extraire les contacts d’un fichier PST en Python

Dans certains cas, vous devrez peut-être extraire les informations des contacts stockées dans un fichier PST. Les étapes suivantes montrent comment accéder aux contacts dans un fichier PST en Python.

  • Chargez le fichier PST à l’aide de la méthode PersonalStorage.fromfile().
  • Obtenez la référence du dossier de contacts à l’aide de la méthode getpredefinedfolder(StandardIpmFolder.CONTACTS).
  • Obtenez une collection de contacts à l’aide de la méthode getcontents().
  • Parcourez la collection et lisez chaque contact ou enregistrez-le.

L’exemple de code suivant montre comment extraire des contacts d’un fichier PST en 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)

Obtenez une licence API gratuite

Vous pouvez essayer gratuitement Aspose.Email for Python en obtenant une licence temporaire.

Conclusion

Dans cet article, vous avez appris à analyser des fichiers PST en Python. De plus, vous avez vu comment extraire des contacts et des messages d’un fichier PST par programme en Python. De plus, vous pouvez en savoir plus sur Aspose.Email en utilisant documentation. Vous pouvez également partager vos questions ou requêtes sur notre forum.

Voir également