Lesen Sie MS Outlook PST-Dateien in Java

PST (Personal Storage Table) ist ein bekanntes Dateiformat, das von verschiedenen Microsoft-Programmen wie MS Outlook, Exchange und Windows Messaging zu Speicherzwecken verwendet wird. PST-Dateien können Nachrichten, Kontakte und Informationen zu anderen Elementen wie Kalendern, Ereignissen usw. speichern. In bestimmten Fällen müssen Sie möglicherweise eine PST-Datei parsen und Daten daraus programmgesteuert extrahieren. Um dies zu erreichen, zeigt dieser Artikel, wie man MS Outlook PST-Dateien mit Java liest. Mit Hilfe von Codebeispielen erfahren Sie, wie Sie Ordnerinformationen extrahieren, E-Mails lesen und Kontakte aus einer PST-Datei abrufen.

Java-API zum Lesen von Outlook-PST-Dateien

Aspose.Email for Java ist eine beliebte und funktionsreiche E-Mail-Verarbeitungs-API zum Erstellen und Senden von E-Mails. Darüber hinaus können Sie mit gängigen E-Mail-Clients und Speicherdateiformaten arbeiten. In diesem Artikel verwenden wir Aspose.Email für Java, um Nachrichten und andere Informationen aus PST-Dateien zu lesen. Sie können die API entweder herunterladen oder sie mit den folgenden Maven-Konfigurationen installieren.

Repository:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>

Abhängigkeit:

    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>22.3</version>
    <classifier>jdk16</classifier>
</dependency>

Lesen Sie eine Outlook-PST-Datei in Java

Im Folgenden sind die Schritte zum Lesen einer PST-Datei und zum Extrahieren ihrer Informationen aufgeführt.

Das folgende Codebeispiel zeigt, wie eine PST-Datei gelesen und Ordnerinformationen abgerufen werden.

// Laden Sie die Outlook-PST-Datei
PersonalStorage pst = PersonalStorage.fromFile("PersonalStorage.pst");

// Rufen Sie die Ordnerinformationen ab
FolderInfoCollection folderInfoCollection = pst.getRootFolder().getSubFolders();

// Durchsuchen Sie jeden Ordner, um Informationen anzuzeigen
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("-----------------------------------");
}

Lesen Sie E-Mails aus einer PST-Datei in Java

Im Folgenden finden Sie die Schritte zum Lesen von E-Mail-Nachrichten aus einer PST-Datei in Java.

Das folgende Codebeispiel zeigt, wie Nachrichten aus einer PST-Datei in Java extrahiert werden.

// Laden Sie die Outlook-PST-Datei
PersonalStorage pst = PersonalStorage.fromFile(path);

// Rufen Sie das Anzeigeformat der PST-Datei ab
System.out.println("Display Format: " + pst.getFormat());

// Rufen Sie die Ordner- und Nachrichteninformationen ab
FolderInfo folderInfo = pst.getRootFolder();

// Rufen Sie die rekursive Methode auf, um msg-Dateien aus jedem Ordner zu extrahieren
extractMsgFiles(folderInfo, pst);

// Dies ist eine rekursive Methode, um den Inhalt eines Ordners anzuzeigen
private static void extractMsgFiles(FolderInfo folderInfo, PersonalStorage pst) {
    // zeigt den Ordnernamen an
    System.out.println("Folder: " + folderInfo.getDisplayName());
    System.out.println("==================================");
    
    // Durchlaufen Sie alle Nachrichten in diesem Ordner
    MessageInfoCollection messageInfoCollection = folderInfo.getContents();
    
    for (MessageInfo messageInfo : messageInfoCollection) {
        System.out.println("Saving message {0} ...." + messageInfo.getSubject());
        
        // Rufen Sie die Nachricht in der MapiMessage-Instanz ab
        MapiMessage message = pst.extractMessage(messageInfo);
        
        // Speichern Sie diese Nachricht im msg-Format auf der Festplatte
        message.save(message.getSubject().replace(":", " ") + ".msg");
        
        // Speichern Sie diese Nachricht, um sie im msg-Format zu streamen
        ByteArrayOutputStream messageStream = new ByteArrayOutputStream();
        message.save(messageStream);
    }

    // Rufen Sie diese Methode rekursiv für jeden Unterordner auf
    if (folderInfo.hasSubFolders() == true) {
        for (FolderInfo subfolderInfo : folderInfo.getSubFolders()) {
            extractMsgFiles(subfolderInfo, pst);
        }
    }
}

Extrahieren Sie Kontakte aus einer PST-Datei in Java

In bestimmten Fällen müssen Sie möglicherweise die in einer PST-Datei gespeicherten Kontaktinformationen extrahieren. Die folgenden Schritte zeigen, wie Sie in Java auf die Kontakte in einer PST-Datei zugreifen.

Das folgende Codebeispiel zeigt, wie Kontakte aus einer PST-Datei in Java extrahiert werden.

// Laden Sie die Outlook-PST-Datei
PersonalStorage pst = PersonalStorage.fromFile("SampleContacts.pst");

// Holen Sie sich den Ordner Kontakte
FolderInfo folderInfo = pst.getRootFolder().getSubFolder("Contacts");

// Durchlaufen Sie alle Kontakte in diesem Ordner
MessageInfoCollection messageInfoCollection = folderInfo.getContents();

for (int i = 0; i < messageInfoCollection.size(); i++) {
	MessageInfo messageInfo = (MessageInfo) messageInfoCollection.get_Item(i);
	
  //  Holen Sie sich die Kontaktinformationen
	MapiContact contact = (MapiContact) pst.extractMessage(messageInfo).toMapiMessageItem();
	
  //  Zeigen Sie einige Inhalte auf dem Bildschirm an
	System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "\n");
	
  //  Speichern Sie im MSG-Format auf der Festplatte
	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");
	}
}

Holen Sie sich eine kostenlose API-Lizenz

Sie können Aspose.Email für Java kostenlos testen, indem Sie eine temporäre Lizenz erwerben.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie PST-Dateien programmgesteuert in Java lesen. Außerdem haben Sie gesehen, wie Sie Ordnerinformationen extrahieren, E-Mails abrufen und Kontakte aus einer PST-Datei in Java abrufen. Darüber hinaus können Sie mehr über Aspose.Email für Java erfahren, indem Sie Dokumentation verwenden. Falls Sie Fragen oder Anregungen haben, können Sie uns dies auch gerne über unser Forum mitteilen.

Siehe auch