Hello,
I'm using camel 2.11.1.
I try to read emails from an exchange-server via imap(s):
from(
"imaps://{{email.server}}?username={{email.username}}&password=RAW({{email.password}})"
+
"&delete=false&unseen=true&consumer.delay=600000&folderName={{email.folder}}"
+ "&debugMode=true&mapMailMessage=false"
+ "&fetchSize=1&contentType=text/html")
If - for example - the mail is signed, I get the following error:
org.apache.camel.RuntimeCamelException: Error populating the initial mail
message attachments
at
org.apache.camel.component.mail.MailMessage.populateInitialAttachments(MailMessage.java:124)
at
org.apache.camel.impl.DefaultMessage.createAttachments(DefaultMessage.java:209)
at
org.apache.camel.impl.DefaultMessage.getAttachments(DefaultMessage.java:274)
at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:62)
at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:33)
at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:91)
at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:71)
at
org.apache.camel.processor.UnitOfWorkProcessor.createUnitOfWork(UnitOfWorkProcessor.java:190)
at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
at
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
at
org.apache.camel.component.mail.MailConsumer.processExchange(MailConsumer.java:255)
at
org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:199)
at
org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:118)
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:142)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:92)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: javax.mail.MessagingException: Unable to load BODYSTRUCTURE
at
com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1319)
at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:623)
at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1420)
at
org.apache.camel.component.mail.MailBinding.extractAttachmentsFromMail(MailBinding.java:291)
at
org.apache.camel.component.mail.MailMessage.populateInitialAttachments(MailMessage.java:121)
... 29 more
The bodystructure of the message is (strings lightly edited):
A1360 FETCH 1480 (BODYSTRUCTURE)
* 1480 FETCH (BODYSTRUCTURE ((("text" "plain" ("charset" "iso-8859-1") NIL NIL
"quoted-printable" 4137 132 NIL NIL NIL NIL)("text" "html" ("charset"
"iso-8859-1") NIL NIL "quoted-printable" 13030 277 NIL NIL NIL NIL)
"alternative" ("boundary"
"_000_241616E998699141B69B9BF77D41B532039D56447310ZVSRVEX02ze_") NIL
NIL)("message" "rfc822" NIL NIL NIL "7BIT" 587920 ("Fri, 20 Mar 2009 11:24:14
+0100" " Tagung vom 22.-24.12.09" (("Frau Jedermann" NIL "frau.jedermann"
"my.comany.de")) NIL NIL (("Verwaltungsleiter " NIL "verwaltungsleiter "
"comany.de") ("hauptabteilungsleiter-verteiler" NIL
"hauptabteilungsleiter-verteiler" "my.comany.de") ("abteilungsleiter-verteiler"
NIL "abteilungsleiter-verteiler" "my.comany.de")) NIL NIL NIL
"<[email protected]>")
("multipart" "signed" ("protocol" "application/x-pkcs7-signature" "micalg"
"SHA1" "boundary" "----=_NextPart_000_009C_01C9B782.AC445280") NIL NIL "7BIT"
-1 NIL NIL NIL NIL) 7623 NIL NIL NIL NIL) "mixed" ("boundary"
"_004_241616E998699141B69B9BF77D41B532039D56447310ZVSRVEX02ze_") NIL "de-DE"))
A1360 OK FETCH completed.
I think, the problem is the signature of the attachment (see
https://java.net/projects/javamail/pages/Exchange).
How can I deal with this error?
For example by asking the imap-component to store the attachments unchanged
(like the option mapMailMessage=false does with the mail-body).
Kind regards,
Stefan Hof