
PST (Personal Storage Table) to dobrze znany format plików używany do przechowywania danych przez różne programy firmy Microsoft, takie jak MS Outlook, Exchange i Windows Messaging. Pliki PST mogą przechowywać wiadomości, kontakty i informacje o innych elementach, takich jak kalendarze, wydarzenia itp. W niektórych przypadkach może być konieczne przeanalizowanie pliku PST i programowe wyodrębnienie z niego danych. Aby to osiągnąć, w tym artykule pokazano, jak czytać pliki PST programu Outlook w Javie. Za pomocą przykładowych kodów nauczysz się wydobywać informacje z folderów, czytać e-maile i pobierać kontakty z pliku PST.
- Java API do odczytu pliku PST programu Outlook
- Przeczytaj plik PST programu Outlook w Javie
- Czytaj e-maile z pliku PST
- Wyodrębnij kontakty z pliku PST
Java API do przetwarzania pliku PST programu Outlook — bezpłatne pobieranie
Aspose.Email for Java to popularny i bogaty w funkcje interfejs API do przetwarzania wiadomości e-mail do tworzenia i wysyłania wiadomości e-mail. Ponadto umożliwia pracę z popularnymi klientami poczty e-mail i formatami plików do przechowywania. W tym artykule użyjemy Aspose.Email for Java do odczytywania wiadomości i innych informacji z plików PST. Możesz pobrać interfejs API lub zainstalować go przy użyciu następujących konfiguracji Mavena.
Magazyn:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
Zależność:
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>22.3</version>
<classifier>jdk16</classifier>
</dependency>
Przeczytaj plik PST programu Outlook w Javie
Poniżej przedstawiono kroki, aby odczytać plik PST i wyodrębnić jego informacje w Javie.
- Załaduj plik PST za pomocą metody PersonalStorage.fromFile().
- Pobierz kolekcję folderów w pliku PST za pomocą metody PersonalStorage.getRootFolders().getSubFolders().
- Pobierz informacje o folderach, takie jak nazwa, liczba elementów itp.
Poniższy przykładowy kod pokazuje, jak odczytać plik PST i pobrać informacje o folderach w Javie.
// Załaduj plik PST programu Outlook
PersonalStorage pst = PersonalStorage.fromFile("PersonalStorage.pst");
// Pobierz informacje o folderach
FolderInfoCollection folderInfoCollection = pst.getRootFolder().getSubFolders();
// Przeglądaj każdy folder, aby wyświetlić informacje
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 Odczyt wiadomości e-mail z pliku PST
Poniżej przedstawiono kroki, aby odczytać wiadomości e-mail z pliku PST w Javie.
- Załaduj plik PST za pomocą metody PersonalStorage.fromFile().
- Uzyskaj dostęp do folderu głównego za pomocą metody PersonalStorage.getRootFolder().
- Pobierz kolekcję wiadomości z każdego podfolderu za pomocą metody FolderInfo.getContents().
- Przejrzyj wiadomości w kolekcji i przeczytaj pola każdej wiadomości.
Poniższy przykładowy kod pokazuje, jak wyodrębnić wiadomości z pliku PST w Javie.
// Załaduj plik PST programu Outlook
PersonalStorage pst = PersonalStorage.fromFile(path);
// Uzyskaj format wyświetlania pliku PST
System.out.println("Display Format: " + pst.getFormat());
// Pobierz informacje o folderach i wiadomościach
FolderInfo folderInfo = pst.getRootFolder();
// Wywołaj metodę rekurencyjną, aby wyodrębnić pliki msg z każdego folderu
extractMsgFiles(folderInfo, pst);
// Jest to rekurencyjna metoda wyświetlania zawartości folderu
private static void extractMsgFiles(FolderInfo folderInfo, PersonalStorage pst) {
// wyświetlić nazwę folderu
System.out.println("Folder: " + folderInfo.getDisplayName());
System.out.println("==================================");
// Przejrzyj w pętli wszystkie wiadomości w tym folderze
MessageInfoCollection messageInfoCollection = folderInfo.getContents();
for (MessageInfo messageInfo : messageInfoCollection) {
System.out.println("Saving message {0} ...." + messageInfo.getSubject());
// Pobierz wiadomość w instancji MapiMessage
MapiMessage message = pst.extractMessage(messageInfo);
// Zapisz tę wiadomość na dysku w formacie msg
message.save(message.getSubject().replace(":", " ") + ".msg");
// Zapisz tę wiadomość do strumienia w formacie msg
ByteArrayOutputStream messageStream = new ByteArrayOutputStream();
message.save(messageStream);
}
// Wywołaj tę metodę rekurencyjnie dla każdego podfolderu
if (folderInfo.hasSubFolders() == true) {
for (FolderInfo subfolderInfo : folderInfo.getSubFolders()) {
extractMsgFiles(subfolderInfo, pst);
}
}
}
Czytaj kontakty z pliku PST w Javie
W niektórych przypadkach może być konieczne wyodrębnienie informacji o kontaktach przechowywanych w pliku PST. Poniższe kroki pokazują, jak uzyskać dostęp do kontaktów w pliku PST w Javie.
- Załaduj plik PST za pomocą metody PersonalStorage.fromFile().
- Uzyskaj odniesienie do folderu kontaktów za pomocą metody PersonalStorage.getRootFolder().getSubFolder(“Contacts”).
- Pobierz kolekcję kontaktów za pomocą metody FolderInfo.getContents().
- Przejrzyj kolekcję kontaktów i przeczytaj każdy kontakt lub zapisz go.
Poniższy przykładowy kod pokazuje, jak wyodrębnić kontakty z pliku PST w Javie.
// Załaduj plik PST programu Outlook
PersonalStorage pst = PersonalStorage.fromFile("SampleContacts.pst");
// Pobierz folder Kontakty
FolderInfo folderInfo = pst.getRootFolder().getSubFolder("Contacts");
// Przejrzyj wszystkie kontakty w tym folderze
MessageInfoCollection messageInfoCollection = folderInfo.getContents();
for (int i = 0; i < messageInfoCollection.size(); i++) {
MessageInfo messageInfo = (MessageInfo) messageInfoCollection.get_Item(i);
// Uzyskaj informacje kontaktowe
MapiContact contact = (MapiContact) pst.extractMessage(messageInfo).toMapiMessageItem();
// Wyświetl niektóre treści na ekranie
System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "\n");
// Zapisz na dysku w formacie 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 do odczytu pliku PST programu Outlook — uzyskaj bezpłatną licencję
Możesz wypróbować Aspose.Email for Java za darmo, uzyskując tymczasową licencję.
Wniosek
W tym artykule nauczyłeś się programowo odczytywać pliki PST w Javie. Ponadto widziałeś, jak wyodrębniać informacje o folderach, pobierać wiadomości e-mail i pobierać kontakty z pliku PST w Javie. Ponadto możesz dowiedzieć się więcej o Aspose.Email for Java, korzystając z dokumentacji. Ponadto, jeśli masz jakieś pytania lub wątpliwości, daj nam znać za pośrednictwem naszego forum.