PST (Personal Storage Table) est un format de fichier bien connu qui est utilisé à des fins de stockage par différents programmes Microsoft tels que MS Outlook, Exchange et Windows Messaging. Les fichiers PST peuvent stocker des messages, des contacts et des informations sur d’autres éléments tels que des calendriers, des événements, etc. 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 lire les fichiers MS Outlook PST à l’aide de Java. À l’aide d’exemples de code, vous apprendrez à extraire les informations des dossiers, à lire les e-mails et à récupérer les contacts à partir d’un fichier PST.
- API Java pour lire les fichiers PST
- Lire un fichier Outlook PST
- Lire des e-mails à partir d’un fichier PST
- Extraire les contacts d’un fichier PST
API Java pour lire les fichiers Outlook PST
Aspose.Email for Java est une API de traitement des e-mails populaire et riche en fonctionnalités pour la création et l’envoi d’e-mails. De plus, il vous permet de travailler avec des clients de messagerie et des formats de fichiers de stockage populaires. Dans cet article, nous utiliserons Aspose.Email for Java pour lire les messages et autres informations des fichiers PST. Vous pouvez soit télécharger l’API ou l’installer à l’aide des configurations Maven suivantes.
Repository:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
Dependency:
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>22.3</version>
<classifier>jdk16</classifier>
</dependency>
Lire un fichier Outlook PST en Java
Voici les étapes pour lire un fichier PST et extraire ses informations.
- 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.getRootFolders().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 lire un fichier PST et récupérer les informations des dossiers.
// Charger le fichier Outlook PST
PersonalStorage pst = PersonalStorage.fromFile("PersonalStorage.pst");
// Obtenir les informations des dossiers
FolderInfoCollection folderInfoCollection = pst.getRootFolder().getSubFolders();
// Parcourez chaque dossier pour afficher les informations
for (int i = 0; i < folderInfoCollection.size(); i++) {
FolderInfo folderInfo = (FolderInfo) folderInfoCollection.get_Item(i);
System.out.println("FolderId: " + folderInfo.getEntryIdString());
System.out.println("Folder: " + folderInfo.getDisplayName());
System.out.println("Total items: " + folderInfo.getContentCount());
System.out.println("Total unread items: " + folderInfo.getContentUnreadCount());
System.out.println("-----------------------------------");
}
Lire des e-mails à partir d’un fichier PST en Java
Voici les étapes pour lire les messages électroniques à partir d’un fichier PST en Java.
- Chargez le fichier PST à l’aide de la méthode PersonalStorage.fromFile().
- Accédez au dossier racine à l’aide de la méthode PersonalStorage.getRootFolder().
- Obtenez la collection de messages de chaque sous-dossier à l’aide de la méthode FolderInfo.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 Java.
// Charger le fichier Outlook PST
PersonalStorage pst = PersonalStorage.fromFile(path);
// Obtenir le format d'affichage du fichier PST
System.out.println("Display Format: " + pst.getFormat());
// Obtenir les informations sur les dossiers et les messages
FolderInfo folderInfo = pst.getRootFolder();
// Appelez la méthode récursive pour extraire les fichiers msg de chaque dossier
extractMsgFiles(folderInfo, pst);
// Il s'agit d'une méthode récursive pour afficher le contenu d'un dossier
private static void extractMsgFiles(FolderInfo folderInfo, PersonalStorage pst) {
// afficher le nom du dossier
System.out.println("Folder: " + folderInfo.getDisplayName());
System.out.println("==================================");
// Parcourez tous les messages de ce dossier
MessageInfoCollection messageInfoCollection = folderInfo.getContents();
for (MessageInfo messageInfo : messageInfoCollection) {
System.out.println("Saving message {0} ...." + messageInfo.getSubject());
// Obtenir le message dans l'instance MapiMessage
MapiMessage message = pst.extractMessage(messageInfo);
// Enregistrez ce message sur le disque au format msg
message.save(message.getSubject().replace(":", " ") + ".msg");
// Enregistrez ce message pour le diffuser au format msg
ByteArrayOutputStream messageStream = new ByteArrayOutputStream();
message.save(messageStream);
}
// Appelez cette méthode de manière récursive pour chaque sous-dossier
if (folderInfo.hasSubFolders() == true) {
for (FolderInfo subfolderInfo : folderInfo.getSubFolders()) {
extractMsgFiles(subfolderInfo, pst);
}
}
}
Extraire les contacts d’un fichier PST en Java
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 Java.
- 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 PersonalStorage.getRootFolder().getSubFolder(“Contacts”).
- Obtenez une collection de contacts à l’aide de la méthode FolderInfo.getContents().
- Parcourez la collection de contacts et lisez chaque contact ou enregistrez-le.
L’exemple de code suivant montre comment extraire des contacts d’un fichier PST en Java.
// Charger le fichier Outlook PST
PersonalStorage pst = PersonalStorage.fromFile("SampleContacts.pst");
// Obtenir le dossier Contacts
FolderInfo folderInfo = pst.getRootFolder().getSubFolder("Contacts");
// Parcourez tous les contacts de ce dossier
MessageInfoCollection messageInfoCollection = folderInfo.getContents();
for (int i = 0; i < messageInfoCollection.size(); i++) {
MessageInfo messageInfo = (MessageInfo) messageInfoCollection.get_Item(i);
// Obtenir les coordonnées
MapiContact contact = (MapiContact) pst.extractMessage(messageInfo).toMapiMessageItem();
// Afficher certains contenus à l'écran
System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "\n");
// Enregistrer sur disque au format MSG
if (contact.getNameInfo().getDisplayName() != null) {
MapiMessage message = pst.extractMessage(messageInfo); // Get rid of illegal characters that cannot be used as a file name
String messageName = message.getSubject().replace(":", " ").replace("\\", " ").replace("?", " ").replace("/", " ");
message.save(messageName + ".msg");
}
}
Obtenez une licence API gratuite
Vous pouvez essayer gratuitement Aspose.Email for Java en obtenant une licence temporaire.
Conclusion
Dans cet article, vous avez appris à lire des fichiers PST par programmation en Java. De plus, vous avez vu comment extraire des informations de dossier, récupérer des e-mails et récupérer des contacts à partir d’un fichier PST en Java. De plus, vous pouvez en savoir plus sur Aspose.Email for Java en utilisant documentation. De plus, au cas où vous auriez des questions ou des requêtes, n’hésitez pas à nous le faire savoir via notre forum.