Lidar com IMAPInputStream no getMessage para evitar ClassCastException

FixEmailService
Navios
26 de abril de 2026 às 04:19 UTC
Autor
Kamo
Enviar
5616354

JavaMail pode retornar um IMAPInputStream em vez de uma string decodificada de part.getContent() quando o conteúdo da mensagem não foi pré-fetched. A moldes diretos (String) em parseMultipart () lançado ClassCastException para mensagens afetadas, fazendo com que o fetchFullMessage falhe antes de marcar como lido foi chamado, então e-mails nunca foram marcados lidos em modo clássico. Adicionar parteContentAsString() helper que verifica primeiro a instância de String, Em seguida, volta a ler um InputStream com o charset da peça. Adicionar extractCharset () para processar charset do cabeçalho Tipo de Conteúdo. Atualizar parseMultipart() para usar o helper para todas as partes do corpo text/*. Adicione também InputStream branch ao getMessage() de nível superior para mensagens de uma única parte cujo conteúdo chega como um fluxo bruto.

Todas as alterações

Como o que vês no transporte?

Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.

Começar Livre Para SempreVer Preços