【发布时间】:2016-11-25 12:30:48
【问题描述】:
我有路由“imap://%s@%s?password=%s&folderName=%s&unseen=true&delete=true&skipFailedMessage=true”来轮询电子邮件并跳过失败的电子邮件。此属性 skipFailedMessage=true 没有得到尊重,或者我想念它的用法。
我正在阅读来自 5 个具有不同占位符的不同邮箱的电子邮件,但是当我遇到“org.apache.camel.RuntimeCamelException:无法提取正文,原因是:BASE64Decoder:编码流中的错误:找到有效的 base64 字符后电子邮件上的填充字符 (=)"。如果失败的消息被删除,我只能阅读不同邮箱中的所有其他电子邮件。请帮忙。我尝试了 2.17.3 和 2.18 版本,两者的行为方式相同。
这是堆栈跟踪:
org.apache.camel.RuntimeCamelException:无法提取正文,原因是: BASE64Decoder:编码流中的错误:找到有效的 base64 字符 在填充字符 (=) 之后,最近的 10 个字符是: "xmlns:v="u"。交换:交换[]。消息: com.sun.mail.imap.IMAPMessage@7883ab8c 在 org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:278) 在 org.apache.camel.component.mail.MailMessage.createBody(MailMessage.java:105) 在 org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:47) 在 org.apache.camel.component.mail.MailConsumer.createExchanges(MailConsumer.java:354) 在 org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:128) 在 org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175) 在 org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 引起: com.sun.mail.util.DecodingException:BASE64Decoder:编码错误 流:在填充字符 (=) 之后找到有效的 base64 字符, 最近的 10 个字符是:"xmlns:v="u" at com.sun.mail.util.BASE64DecoderStream.decode(BASE64DecoderStream.java:309) 在 com.sun.mail.util.BASE64DecoderStream.read(BASE64DecoderStream.java:144) 在 sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) 在 sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) 在 sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) 在 java.io.InputStreamReader.read(InputStreamReader.java:184) 在 com.sun.mail.handlers.text_plain.getContent(text_plain.java:98) 在 javax.activation.DataSourceDataContentHandler.getContent(DataHandler.java:795) 在 javax.activation.DataHandler.getContent(DataHandler.java:542) 在 javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1454) 在 org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:250) ...省略了13个常用框架
【问题讨论】:
-
将您看到的堆栈跟踪添加到问题中,以便人们可以更好地提供帮助
-
我记录了一张票以在邮件组件中捕获更广泛的异常:issues.apache.org/jira/browse/CAMEL-10527
-
@user2215545 你检查过 2.17.5、2.18.1、2.19.0 吗?
标签: java apache-camel jakarta-mail imap