KamoCRM

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?

Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.

Inizia gratis per sempreVisualizza il prezzo