- 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.