Schreiben und Lesen von Nachrichten auf Thunderbird-Speicher in Java

Thunderbird ist eine Open-Source-Anwendung, mit der Sie Ihre E-Mail-Konten konfigurieren und von ihnen auf E-Mail-Nachrichten zugreifen können. Die Anwendung ermöglicht es, E-Mails von mehreren Konten an einem einzigen Ort zu verwalten. In bestimmten Fällen müssen Sie möglicherweise E-Mail-Nachrichten im Thunderbird-Speicher programmgesteuert erstellen und darauf zugreifen. Dementsprechend zeigt dieser Artikel, wie man Nachrichten auf Thunderbird-Speicher in Java schreibt und liest.

Java-API zum Schreiben und Lesen von Nachrichten im Thunderbird-Speicher

Um E-Mail-Nachrichten im Thunderbird-Speicher zu schreiben und zu lesen, verwenden wir Aspose.Email for Java. Es ist eine E-Mail-Verarbeitungs-API, mit der Sie E-Mails bearbeiten und mit gängigen E-Mail-Clients wie Thunderbird, Outlook usw. arbeiten können. 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:

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

Schreiben Sie eine Nachricht über Thunderbird Storage in Java

Mit Aspose.Email für Java können Sie in wenigen Schritten neue Nachrichten erstellen und auf dem Speicher von Thunderbird ablegen. Im Folgenden sind die Schritte zum Ausführen dieses Vorgangs in Java aufgeführt.

Das folgende Codebeispiel zeigt, wie eine Nachricht in den Thunderbird-Speicher in Java geschrieben wird.

// Lade Datei
try (FileOutputStream writeStream = new FileOutputStream("inbox")) {
    
    // Schriftsteller erstellen
    try (MboxrdStorageWriter writer = new MboxrdStorageWriter(writeStream, false)) {
        
        // Nachricht aus MSG-Datei laden
        MailMessage msg = MailMessage.load("Message.msg");
        String[] fromMarker = {null};
        
        // Nachricht schreiben
        writer.writeMessage(msg, fromMarker);
    }
}

Lesen Sie Nachrichten aus dem Thunderbird-Speicher in Java

Um die Nachrichten aus dem Thunderbird-Speicher zu lesen, müssen wir die Speicherdatei mit der Klasse MboxrdStorageReader laden. Im Folgenden sind die Schritte zum Lesen von Nachrichten von Thunderbird in Java aufgeführt.

  • Laden Sie zuerst die MBOX-Datei in ein FileInputStream-Objekt.
  • Erstellen Sie dann eine Instanz von MboxrdStorageReader, um die Speicherdatei zu lesen.
  • Lesen Sie danach die erste Nachricht mit der Methode MboxrdStorageReader.readNextMessage().
  • Starten Sie dann eine Schleife, um alle Nachrichten zu durchlaufen.
  • Lesen Sie jede Nachricht und speichern Sie sie bei Bedarf auf der Festplatte.
  • Schließlich entsorgen Sie den Reader am Ende.

Das folgende Codebeispiel zeigt, wie Nachrichten aus dem Thunderbird-Speicher in Java gelesen werden.

// Lade Datei
try (FileInputStream stream = new FileInputStream("file.mbox")) {
    
    // Ladeoptionen erstellen
    MboxLoadOptions lo = new MboxLoadOptions();
    lo.setLeaveOpen(false);
    
    // Nachrichten aus Datei lesen
    try (MboxrdStorageReader reader = new MboxrdStorageReader(stream, lo)) {
        MailMessage msg;
        String[] fromMarker = {null};
        while ((msg = reader.readNextMessage(/* out */fromMarker)) != null) {
            System.out.println(fromMarker[0]);
        }
    }
}

Holen Sie sich eine kostenlose API-Lizenz

Sie können Aspose.Email für Java ohne Evaluierungseinschränkungen mit einer kostenlosen temporären Lizenz verwenden.

Fazit

Mit Thunderbird können Sie E-Mail-Nachrichten von mehreren Konten an einem einzigen Ort verwalten. In diesem Artikel haben Sie gelernt, wie Sie in Java Nachrichten in den Thunderbird-Speicher schreiben. Außerdem haben Sie gesehen, wie Sie Nachrichten aus dem Thunderbird-Speicher programmgesteuert lesen. Abgesehen davon können Sie die Dokumentation besuchen, um andere Funktionen von Aspose.Email für Java zu erkunden. Falls Sie Fragen haben, können Sie in unserem Forum posten.

Siehe auch