
PST (Personal Storage Table) je dobře známý formát souborů, který pro účely ukládání používají různé programy společnosti Microsoft, jako je MS Outlook, Exchange a Windows Messaging. Soubory PST mohou ukládat zprávy, kontakty a informace o dalších položkách, jako jsou kalendáře, události atd. V určitých případech může být nutné soubor PST analyzovat a extrahovat z něj data programově. Chcete-li toho dosáhnout, tento článek ukazuje, jak číst soubory Outlook PST v jazyce Java. Pomocí ukázek kódu se naučíte, jak extrahovat informace o složkách, číst e-maily a získávat kontakty ze souboru PST.
- Java API pro čtení souboru PST aplikace Outlook
- Přečtěte si soubor PST aplikace Outlook v jazyce Java
- Čtení e-mailů ze souboru PST
- Extrahujte kontakty ze souboru PST
Java API pro zpracování souboru PST aplikace Outlook – ke stažení zdarma
Aspose.Email for Java je populární a na funkce bohaté rozhraní API pro zpracování e-mailů pro vytváření a odesílání e-mailů. Navíc umožňuje pracovat s oblíbenými e-mailovými klienty a formáty souborů úložiště. V tomto článku použijeme Aspose.Email pro Javu ke čtení zpráv a dalších informací ze souborů PST. Rozhraní API si můžete stáhnout nebo jej nainstalovat pomocí následujících konfigurací Maven.
úložiště:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
Závislost:
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>22.3</version>
<classifier>jdk16</classifier>
</dependency>
Přečtěte si soubor PST aplikace Outlook v jazyce Java
Následují kroky ke čtení souboru PST a extrahování jeho informací v Javě.
- Načtěte soubor PST pomocí metody PersonalStorage.fromFile().
- Získejte kolekci složek v PST pomocí metody PersonalStorage.getRootFolders().getSubFolders().
- Získejte informace o složkách, jako je název, počet položek atd.
Následující ukázka kódu ukazuje, jak číst soubor PST a načítat informace o složkách v jazyce Java.
// Načtěte soubor PST aplikace Outlook
PersonalStorage pst = PersonalStorage.fromFile("PersonalStorage.pst");
// Získejte informace o složkách
FolderInfoCollection folderInfoCollection = pst.getRootFolder().getSubFolders();
// Procházejte každou složku a zobrazte informace
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 Čtení e-mailů z PST
Následují kroky ke čtení e-mailových zpráv ze souboru PST v Javě.
- Načtěte soubor PST pomocí metody PersonalStorage.fromFile().
- Otevřete kořenovou složku pomocí metody PersonalStorage.getRootFolder().
- Získejte kolekci zpráv z každé podsložky pomocí metody FolderInfo.getContents().
- Procházejte zprávy v kolekci a přečtěte si pole každé zprávy.
Následující ukázka kódu ukazuje, jak extrahovat zprávy ze souboru PST v Javě.
// Načtěte soubor PST aplikace Outlook
PersonalStorage pst = PersonalStorage.fromFile(path);
// Získejte formát zobrazení souboru PST
System.out.println("Display Format: " + pst.getFormat());
// Získejte informace o složkách a zprávách
FolderInfo folderInfo = pst.getRootFolder();
// Chcete-li extrahovat soubory zpráv z každé složky, zavolejte rekurzivní metodu
extractMsgFiles(folderInfo, pst);
// Jedná se o rekurzivní metodu zobrazení obsahu složky
private static void extractMsgFiles(FolderInfo folderInfo, PersonalStorage pst) {
// zobrazit název složky
System.out.println("Folder: " + folderInfo.getDisplayName());
System.out.println("==================================");
// Projděte všechny zprávy v této složce
MessageInfoCollection messageInfoCollection = folderInfo.getContents();
for (MessageInfo messageInfo : messageInfoCollection) {
System.out.println("Saving message {0} ...." + messageInfo.getSubject());
// Získejte zprávu v instanci MapiMessage
MapiMessage message = pst.extractMessage(messageInfo);
// Uložte tuto zprávu na disk ve formátu msg
message.save(message.getSubject().replace(":", " ") + ".msg");
// Uložte tuto zprávu pro streamování ve formátu msg
ByteArrayOutputStream messageStream = new ByteArrayOutputStream();
message.save(messageStream);
}
// Tuto metodu volejte rekurzivně pro každou podsložku
if (folderInfo.hasSubFolders() == true) {
for (FolderInfo subfolderInfo : folderInfo.getSubFolders()) {
extractMsgFiles(subfolderInfo, pst);
}
}
}
Přečtěte si kontakty z PST v Javě
V některých případech může být nutné extrahovat informace o kontaktech uložené v souboru PST. Následující kroky ukazují, jak získat přístup ke kontaktům v souboru PST v Javě.
- Načtěte soubor PST pomocí metody PersonalStorage.fromFile().
- Získejte odkaz na složku kontaktů pomocí metody PersonalStorage.getRootFolder().getSubFolder(“Contacts”).
- Získejte kolekci kontaktů pomocí metody FolderInfo.getContents().
- Procházejte sbírku kontaktů a přečtěte si každý kontakt nebo jej uložte.
Následující ukázka kódu ukazuje, jak extrahovat kontakty ze souboru PST v Javě.
// Načtěte soubor PST aplikace Outlook
PersonalStorage pst = PersonalStorage.fromFile("SampleContacts.pst");
// Získejte složku Kontakty
FolderInfo folderInfo = pst.getRootFolder().getSubFolder("Contacts");
// Procházejte všechny kontakty v této složce
MessageInfoCollection messageInfoCollection = folderInfo.getContents();
for (int i = 0; i < messageInfoCollection.size(); i++) {
MessageInfo messageInfo = (MessageInfo) messageInfoCollection.get_Item(i);
// Získejte kontaktní informace
MapiContact contact = (MapiContact) pst.extractMessage(messageInfo).toMapiMessageItem();
// Zobrazení určitého obsahu na obrazovce
System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "\n");
// Uložit na disk ve formátu 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 pro čtení souboru PST aplikace Outlook - Získejte bezplatnou licenci
Aspose.Email pro Javu můžete zdarma vyzkoušet získání dočasné licence.
Závěr
V tomto článku jste se naučili číst soubory PST programově v Javě. Dále jste viděli, jak extrahovat informace o složce, načítat e-maily a načítat kontakty ze souboru PST v Javě. Kromě toho můžete prozkoumat více o Aspose.Email pro Java pomocí dokumentace. Také v případě, že byste měli nějaké dotazy nebo dotazy, neváhejte nás kontaktovat prostřednictvím našeho fóra.