Lire les fichiers PST Outlook, récupérer les informations des dossiers et sous‑dossiers
Aspose.Email pour .NET fournit une API pour lire les fichiers PST de Microsoft Outlook. Vous pouvez charger un fichier PST depuis le disque ou un flux dans une instance de la PersonalStorage classe pour accéder aux informations détaillées de son contenu, telles que dossiers, sous‑dossiers et messages. De plus, l’API permet d’inclure les dossiers de recherche lors de la récupération des messages depuis les dossiers PST.
Chargement d’un fichier PST
Un fichier PST Outlook peut être chargé dans une instance de la PersonalStorage La classe. L’extrait de code suivant vous montre comment charger le fichier PST.
Affichage des informations du PST
Après chargement d’un fichier PST, vous pouvez obtenir les informations sur le nom d’affichage du fichier, le dossier racine, les sous‑dossiers et le nombre de messages. L’extrait de code suivant vous montre comment afficher le nom du fichier PST, les dossiers et le nombre de messages dans les dossiers :
Obtenir uniquement les dossiers créés par l’utilisateur
Les fichiers PST/OST peuvent contenir des dossiers créés par un utilisateur, c’est‑à‑dire excluant tous les dossiers IPM standard. Aspose.Email fournit la fonctionnalité d’accéder uniquement aux dossiers créés par l’utilisateur en utilisant la propriété only_folders_created_by_user de la PersonalStorageQueryBuilder classe. Vous pouvez définir cette propriété sur True pour obtenir uniquement les dossiers créés par l’utilisateur. L’extrait de code suivant montre comment vous pouvez utiliser la propriété only_folders_created_by_user dans votre projet :
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
query_builder = ae.storage.pst.PersonalStorageQueryBuilder()
query_builder.only_folders_created_by_user.equals(True)
folders = pst.root_folder.get_sub_folders(query_builder.get_query())
for folder in folders:
print(f"Folder: {folder.display_name}")
Identification des dossiers prédéfinis
Pour savoir si un dossier d’un fichier PST est un dossier standard, utilisez la méthode get_predefined_type de la FolderInfo classe. Les dossiers standard (ou prédéfinis), par opposition aux dossiers créés par l’utilisateur, sont des dossiers créés par Outlook lorsque vous ajoutez un compte de messagerie tel que Boîte de réception, Éléments envoyés, Brouillons, Éléments supprimés, Calendrier, Tâches, Notes, etc.
L’exemple de code ci‑dessous montre comment utiliser cette méthode dans un projet. Si elle est définie sur True, elle renvoie le type prédéfini du dossier parent de niveau supérieur. Cela détermine si le dossier actuel est un sous‑dossier d’un dossier prédéfini. Si elle est définie sur False, elle renvoie le type prédéfini du dossier actuel.
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
folders = pst.root_folder.get_sub_folders()
for folder in folders:
print(f"Folder: {folder.display_name}")
print(f"Is predefined: {folder.get_predefined_type(False) != ae.storage.pst.StandardIpmFolder.UNSPECIFIED}")
print("-----------------------------------")
Gestion des flux RSS dans PersonalStorage
Aspose.Email fournit la fonctionnalité de récupérer une référence à un dossier prédéfini RSS Feeds, permettant aux développeurs d’accéder et de manipuler programmatiquement les flux RSS stockés dans un fichier PST Outlook. En obtenant une référence au "dossier RSS Feeds", les développeurs peuvent travailler avec les données du flux RSS, ce qui peut inclure l’abonnement à de nouveaux flux, la mise à jour de flux existants ou l’extraction d’informations depuis les flux.
La valeur de RssFeeds dans le StandardIpmFolder l’énumération représenterait généralement le type de dossier prédéfini spécialement conçu pour stocker les flux RSS dans un fichier PST Outlook. En utilisant cette valeur d’énumération, les développeurs peuvent cibler et interagir avec le "dossier RSS Feeds" de manière programmatique. Les exemples de code suivants montreront comment implémenter cette fonctionnalité dans votre projet :
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
rss_folder = pst.get_predefined_folder(ae.storage.pst.StandardIpmFolder.RSS_FEEDS)
Pour ajouter un dossier RSS Feeds, utilisez l’extrait de code suivant :
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
rss_folder = pst.create_predefined_folder("RSS Feeds", ae.storage.pst.StandardIpmFolder.RSS_FEEDS)
Analyse des dossiers recherchables
Aspose.Email fournit un FolderKind énumération pour travailler avec différents types de dossiers PST. En plus des dossiers NORMAUX, elle fonctionne avec les dossiers RECHERCHE. Un dossier RECHERCHE est un dossier virtuel qui offre une vue de tous les éléments de courrier correspondant à des critères de recherche spécifiques. Pour analyser les dossiers RECHERCHE, utilisez l’extrait de code suivant :
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
folders = pst.root_folder.get_sub_folders(ae.storage.pst.FolderKind.SEARCH | ae.storage.pst.FolderKind.NORMAL)
# Browse through each folder to display folder name and number of messages
for folder in folders:
print(f"Folder: {folder.display_name}")
sub_folders = folder.get_sub_folders(ae.storage.pst.FolderKind.SEARCH | ae.storage.pst.FolderKind.NORMAL)
for sub_folder in sub_folders:
print(f"Sub-folder: {folder.display_name}")
Récupération des informations du dossier parent
L’extrait de code suivant vous montre comment récupérer les informations du dossier parent depuis MessageInfo.
Récupération d’un sous‑dossier PST par chemin
Pour récupérer un sous‑dossier PST par chemin, utilisez la méthode get_sub_folder de la FolderInfo classe. Elle récupère un sous‑dossier spécifique au sein d’un répertoire ou d’un système de fichiers.
La méthode prend les paramètres suivants :
-
name – représente le nom du sous‑dossier à récupérer. Il est utilisé pour spécifier le nom ou l’identifiant du sous‑dossier que la méthode doit rechercher.
-
ignore_case – est une valeur booléenne qui détermine si la méthode doit ignorer la sensibilité à la casse lors de la comparaison du nom du sous‑dossier. Si définie sur True, la méthode considérera les correspondances de nom sans tenir compte de la casse (ex. "folder" et "Folder" seront traités comme identiques). Si définie sur False, elle effectuera une comparaison sensible à la casse.
-
handle_path_separator – est une valeur booléenne qui indique si la méthode doit gérer le séparateur de chemin lors de la recherche du sous‑dossier. Les séparateurs de chemin sont des caractères utilisés pour séparer les dossiers dans un chemin de répertoire (ex. "\" sous Windows ou "/" sous Unix). Si défini sur True, la méthode gérera automatiquement le séparateur de chemin, assurant une correspondance correcte des dossiers. Si défini sur False, il sera traité comme faisant partie du nom du sous‑dossier, entraînant un comportement de recherche différent.
L’exemple de code suivant montre comment récupérer un sous‑dossier PST par chemin :
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
# In this sample, the method will return a ‘Jan’ named folder
# that is located at the Inbox\Reports\ path
# relative to the root folder.
folder = pst.root_folder.get_sub_folder("Inbox\Reports\Jan", True, True)