Behandeln Sie IMAPInputStream in getMessage, um ClassCastException zu verhindern

FixEmailService
Verschifft
26. April 2026 um 04:19 UTC
Autor
Kamo
Ausschuss
5616354

JavaMail kann einen IMAPInputStream anstelle eines dekodierten Strings von part.getContent(), wenn der Inhalt der Nachrichten nicht vorab abgerufen wurde. Die direkte (String) Wärbe in parseMultipart() warf ClassCastException für betroffene Nachrichten, wodurch fetchFullMessage vor der Mark-as-read-versagen wurde aufgerufen, so dass E-Mails nie im klassischen Modus gelesen markiert wurden. Fügen Sie partContentAsString() Helfer hinzu, der zuerst die Instanz von String überprüft, dann fällt zurück zum Lesen eines InputStream mit dem Zeichensatz des Teils. ExtravageCharset() zu dem Parse charset vom Content-Type Header hinzufügen. Aktualisieren Sie parseMultipart(), um den Helfer für alle Text/* Körperteile zu verwenden. Fügen Sie auch InputStream-Zweig zu Top-Level getMessage() Body Parsing hinzufügen für einteilige Nachrichten, deren Inhalt als Rohstrom ankommt.

Alle Änderungen

Wie, was Sie sehen Versand?

Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.

Free Forever startenPreisgestaltung anzeigen