PST (Personal Storage Table) – це добре відомий формат файлів, який використовується для зберігання різними програмами Microsoft, такими як MS Outlook, Exchange і Windows Messaging. Файли PST можуть зберігати повідомлення, контакти та інформацію про інші елементи, такі як календарі, події тощо. У деяких випадках може знадобитися проаналізувати файл PST і витягти з нього дані програмним шляхом. Щоб досягти цього, у цій статті показано, як читати файли Outlook PST у Java. За допомогою зразків коду ви дізнаєтеся, як витягувати інформацію з папок, читати електронні листи та отримувати контакти з файлу PST.
- Java API для читання файлу Outlook PST
- Прочитайте PST-файл Outlook у Java
- Читайте електронні листи з файлу PST
- Витягніть контакти з файлу PST
Java API для обробки файлу Outlook PST – Безкоштовне завантаження
Aspose.Email for Java — це популярний і багатофункціональний API обробки електронної пошти для створення та надсилання електронних листів. Крім того, він дозволяє працювати з популярними поштовими клієнтами та форматами зберігання файлів. У цій статті ми будемо використовувати Aspose.Email for Java для читання повідомлень та іншої інформації з файлів PST. Ви можете завантажити API або встановити його за допомогою наведених нижче конфігурацій Maven.
Репозиторій:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
Залежність:
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>22.3</version>
<classifier>jdk16</classifier>
</dependency>
Прочитайте PST-файл Outlook у Java
Нижче наведено кроки для читання файлу PST і витягування його інформації в Java.
- Завантажте файл PST за допомогою методу PersonalStorage.fromFile().
- Отримайте колекцію папок у PST за допомогою методу PersonalStorage.getRootFolders().getSubFolders().
- Отримати інформацію про папки, таку як назва, кількість елементів тощо.
У наведеному нижче прикладі коду показано, як читати файл PST і отримувати інформацію про папки в Java.
// Завантажте файл Outlook PST
PersonalStorage pst = PersonalStorage.fromFile("PersonalStorage.pst");
// Отримайте інформацію про папки
FolderInfoCollection folderInfoCollection = pst.getRootFolder().getSubFolders();
// Перегляньте кожну папку, щоб відобразити інформацію
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("-----------------------------------");
}
Java читає електронні листи з PST
Нижче наведено кроки для читання повідомлень електронної пошти з файлу PST у Java.
- Завантажте файл PST за допомогою методу PersonalStorage.fromFile().
- Отримайте доступ до кореневої папки за допомогою методу PersonalStorage.getRootFolder().
- Отримайте колекцію повідомлень із кожної вкладеної папки за допомогою методу FolderInfo.getContents().
- Перегляньте повідомлення в колекції та прочитайте поля кожного повідомлення.
У наведеному нижче прикладі коду показано, як видобувати повідомлення з файлу PST у Java.
// Завантажте файл Outlook PST
PersonalStorage pst = PersonalStorage.fromFile(path);
// Отримайте формат відображення файлу PST
System.out.println("Display Format: " + pst.getFormat());
// Отримайте інформацію про папки та повідомлення
FolderInfo folderInfo = pst.getRootFolder();
// Викличте рекурсивний метод, щоб видобути файли msg з кожної папки
extractMsgFiles(folderInfo, pst);
// Це рекурсивний метод відображення вмісту папки
private static void extractMsgFiles(FolderInfo folderInfo, PersonalStorage pst) {
// відобразити назву папки
System.out.println("Folder: " + folderInfo.getDisplayName());
System.out.println("==================================");
// Перегляньте всі повідомлення в цій папці
MessageInfoCollection messageInfoCollection = folderInfo.getContents();
for (MessageInfo messageInfo : messageInfoCollection) {
System.out.println("Saving message {0} ...." + messageInfo.getSubject());
// Отримати повідомлення в примірнику MapiMessage
MapiMessage message = pst.extractMessage(messageInfo);
// Збережіть це повідомлення на диск у форматі msg
message.save(message.getSubject().replace(":", " ") + ".msg");
// Збережіть це повідомлення для потокової передачі у форматі повідомлення
ByteArrayOutputStream messageStream = new ByteArrayOutputStream();
message.save(messageStream);
}
// Викликайте цей метод рекурсивно для кожної вкладеної папки
if (folderInfo.hasSubFolders() == true) {
for (FolderInfo subfolderInfo : folderInfo.getSubFolders()) {
extractMsgFiles(subfolderInfo, pst);
}
}
}
Читайте контакти з PST у Java
У деяких випадках може знадобитися витягти інформацію про контакти, що зберігається у файлі PST. Наступні кроки показують, як отримати доступ до контактів у файлі PST у Java.
- Завантажте файл PST за допомогою методу PersonalStorage.fromFile().
- Отримайте посилання на папку контактів за допомогою методу PersonalStorage.getRootFolder().getSubFolder(“Contacts”).
- Отримайте колекцію контактів за допомогою методу FolderInfo.getContents().
- Перегляньте колекцію контактів і прочитайте кожен контакт або збережіть його.
У наведеному нижче прикладі коду показано, як витягти контакти з файлу PST у Java.
// Завантажте файл Outlook PST
PersonalStorage pst = PersonalStorage.fromFile("SampleContacts.pst");
// Отримайте папку «Контакти».
FolderInfo folderInfo = pst.getRootFolder().getSubFolder("Contacts");
// Перегляньте всі контакти в цій папці
MessageInfoCollection messageInfoCollection = folderInfo.getContents();
for (int i = 0; i < messageInfoCollection.size(); i++) {
MessageInfo messageInfo = (MessageInfo) messageInfoCollection.get_Item(i);
// Отримайте контактну інформацію
MapiContact contact = (MapiContact) pst.extractMessage(messageInfo).toMapiMessageItem();
// Показати деякий вміст на екрані
System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "\n");
// Зберегти на диск у форматі 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");
}
}
Java API для читання файлу Outlook PST – отримайте безкоштовну ліцензію
Ви можете безкоштовно спробувати Aspose.Email for Java, отримавши тимчасову ліцензію.
Висновок
У цій статті ви дізналися, як програмно читати файли PST у Java. Крім того, ви бачили, як видобувати інформацію про папку, отримувати електронні листи та отримувати контакти з файлу PST у Java. Крім того, ви можете дізнатися більше про Aspose.Email for Java за допомогою документації. Крім того, якщо у вас виникнуть запитання чи запити, не соромтеся повідомити нас через наш форум.