Hi Everybody,

we haven an problem with camel processing SPAM Emails with an invalid 
Format. 
If sometimes an Email with an invalid format (Mostly Spam) reaches our
Mailbox the processing of the Mailbox is blocked till the EMail has manually
delete from the Mailbox. 

We are using an Spam Filter to block most of this kind of EMail but it could
not block 100% of it.

If this error occur the following exception will be dumped:
[ERROR mail.MailConsumer][Camel (camel-emailRoute) thread #8 -
pop3://m...@dpp.junit.de]  Caused by: [org.apache.camel.RuntimeCamelException
- Error populating the initial mail message attachments]
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:216)
        at
org.apache.camel.impl.DefaultMessage.getAttachments(DefaultMessage.java:281)
        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:50)
        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:71)
        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:296)
        at
org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:199)
        at 
org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:121)
        at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:138)
        at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:90)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: javax.mail.MessagingException: Missing start boundary
        at javax.mail.internet.MimeMultipart.parsebm(MimeMultipart.java:872)
        at javax.mail.internet.MimeMultipart.parse(MimeMultipart.java:493)
        at javax.mail.internet.MimeMultipart.getCount(MimeMultipart.java:240)
        at
org.apache.camel.component.mail.MailBinding.extractAttachmentsFromMultipart(MailBinding.java:297)
        at
org.apache.camel.component.mail.MailBinding.extractAttachmentsFromMail(MailBinding.java:286)
        at
org.apache.camel.component.mail.MailMessage.populateInitialAttachments(MailMessage.java:121)
        ... 30 more

We use the following setting for our EMail Endpoint (This is from our
testcase):
pop3://m...@dpp.junit.de?consumer.delay=1000&debugMode=true&delete=true&ignoreUnsupportedCharset=true&password=******&pollStrategy=%23dbLockPollingConsumerPollStrategy&unseen=true

We use an custom Polling strategy for Synchronizing two server Notes
"dbLockPollingConsumerPollStrategy". Interesting is here that in the error
case only the commit method will be called and not the roll-back method as
expected.

My Question is: 
Is there a way to configure the Email Component, that these Messages will be
delete or moved to an other folder, that they will not block the processing
any more. 

Thanks! 
Philipp 



--
View this message in context: 
http://camel.465427.n5.nabble.com/Emails-with-invalid-Format-SPAM-block-EMail-Processing-with-Error-populating-the-initial-mail-messag-tp5723912.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to