我已经编写了一个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"