package com.aspose.email.examples.outlook.pst; import com.aspose.email.FolderInfo; import com.aspose.email.MessageInfo; import com.aspose.email.MessageInfoCollection; import com.aspose.email.PersonalStorage; import com.aspose.email.examples.Utils; public class GetMessageInformationFromPSTFile { public static void main(String[] args) { // The path to the resource directory. String dataDir = Utils.getSharedDataDir(GetMessageInformationFromPSTFile.class) + "outlook/"; String pstFileName = dataDir + "PersonalStorage.pst"; // load the Outlook PST file PersonalStorage pst = PersonalStorage.fromFile(pstFileName); FolderInfo folderInfo = pst.getRootFolder(); // call the recursive method to display the folder contents displayFolderContents(folderInfo, pst); } private static void displayFolderContents(FolderInfo folderInfo, PersonalStorage pst) { // display the folder name System.out.println("Folder: " + folderInfo.getDisplayName()); // display information about messages inside this folder MessageInfoCollection messageInfoCollection = folderInfo.getContents(); for (int i = 0; i < messageInfoCollection.size(); i++) { MessageInfo messageInfo = (MessageInfo) messageInfoCollection.get_Item(i); System.out.println("Subject: " + messageInfo.getSubject()); System.out.println("Sender: " + messageInfo.getSenderRepresentativeName()); System.out.println("To: " + messageInfo.getDisplayTo()); System.out.println("CC: " + messageInfo.getDisplayCC()); System.out.println("EntryID: " + messageInfo.getEntryIdString()); } // call this method recursively for each subfolder if (folderInfo.hasSubFolders() == true) { for (int i = 0; i < folderInfo.getSubFolders().size(); i++) { FolderInfo subfolderInfo = (FolderInfo) folderInfo.getSubFolders().get_Item(i); displayFolderContents(subfolderInfo, pst); } } } }