1

我编写了一个 Camel 处理器来操作 imap 邮箱,它在开发环境中运行良好(在 docker 容器中使用 greenmail)但是当部署在附加到 aruba 邮件的生产环境中时,我开始收到以下异常

19:50:55.215 [Camel (camel-1) thread #0 - imap://imap.scontrinando.it:143] WARN  o.a.c.component.mail.MailConsumer - Caused by: [org.apache.camel.RuntimeCamelException - Error accessing headers due to: charset]
org.apache.camel.RuntimeCamelException: Error accessing headers due to: charset
at org.apache.camel.component.mail.MailMessage.populateInitialHeaders(MailMessage.java:121)
at org.apache.camel.impl.DefaultMessage.createHeaders(DefaultMessage.java:200)
at org.apache.camel.impl.DefaultMessage.getHeaders(DefaultMessage.java:164)
at org.apache.camel.component.mail.MailConsumer.createExchanges(MailConsumer.java:355)
at org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:128)
at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175)
at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.UnsupportedEncodingException: charset
at sun.nio.cs.StreamDecoder.forInputStreamReader(StreamDecoder.java:71)
at java.io.InputStreamReader.<init>(InputStreamReader.java:100)
at com.sun.mail.handlers.text_plain.getContent(text_plain.java:80)
at javax.activation.DataSourceDataContentHandler.getContent(DataHandler.java:795)
at javax.activation.DataHandler.getContent(DataHandler.java:542)
at javax.mail.internet.MimeBodyPart.getContent(MimeBodyPart.java:657)
at org.apache.camel.component.mail.MailBinding.extractHeadersFromMail(MailBinding.java:616)
at org.apache.camel.component.mail.MailMessage.populateInitialHeaders(MailMessage.java:116)
... 13 common frames omitted

一些邮件已被读取并正确处理,但现在该过程因此错误而陷入循环。

连接 URI 是

"imap://${config.inbox.host}?username=${config.inbox.username}&password=${config.inbox.password}" \
    + "&ignoreUnsupportedCharset=true" \
    + "&delete=false" \
    + (unread?"&peek=true":"") \
    + "&unseen=true" \
    + "&consumer.delay=600" \
    + "&fetchSize=10" \
    + "&maxMessagesPerPoll=10"
4

0 回答 0