Maniglia IMAPInputStream in getMessage per evitare ClassCastException

FixEmailService
Spegnimento
26 aprile 2026 alle ore 04:19 UTC
Autore
Kamo
Impegno
5616354

JavaMail può restituire un IMAPInputStream invece di uno String decodificato da part.getContent() quando il contenuto del messaggio non è stato pre-fetched. The getti diretti (String) in parseMultipart() ha lanciato ClassCastException per messaggi colpiti, causando fetchFullMessage a fallire prima mark-as-read è stato chiamato, quindi le e-mail non sono mai state contrassegnate leggere in modalità classica. Aggiungere parteContentAsString() helper che controlla l'istanza di String prima, poi torna a leggere un InputStream con il set di beneficenza della parte. Aggiungi estrattoCharset() per parse charset da Content-Type header. Modifica parseMultipart() per utilizzare l'helper per tutte le parti del corpo del testo/*. Aggiungi anche il ramo di InputStream per ottenereMessage() per i messaggi in singola parte il cui contenuto arriva come flusso grezzo.

Tutte le modifiche

Come quello che vedi la spedizione?

Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.

Inizia gratis per sempreVisualizza il prezzo