여기에 여러 번보고 된 문제가 있지만 지금까지 아무런 해결책이 없었습니다.MessagingException : 첨부 파일이있는 메일을 보낼 때 시작 경계가 누락되었습니다.
경로는 다소 단순합니다. 그것은 특정 주제를 가진 이메일을 기다리는 것이며, 메일의 매개 변수로부터 PDF를 생성하고이 PDF를 보낸 사람에게 다시 우편으로 보냅니다.
이클립스에서 Junit 테스트 케이스로 경로를 시작하면 매력처럼 작동하지만 Linux 서버의 Tomcat에서 실행하면 "javax.mail.MessagingException : Missing start boundary"로 인해 충돌 함 에 PDF 첨부 파일이있는 이메일을 보내십시오.
*) 로컬 테스트 환경 : 톰캣 8.0.5, 윈도우 7, 자바 1.8.0_20,
낙타 2.14.0 *) 서버 환경 : 톰캣 8.0.12, 우분투 서버 14.0.1. mail.jar의 최신 버전을 사용 ( ) 현재 낙타 버전으로 업그레이드하여 - - mail.jar, 활성화를 퍼팅 : 이미 시도가 어떤 LTS, 자바 1.8.0_20, 낙타 2.14.0
*). jar을 Tomcat 라이브러리에 넣기 - 다양한 mail.mime.multipart.XXX 속성 설정하기 모든 버전과 조합이 모두 => 성공하지 못했습니다.
경로 코드, 프로세서 및 스택 추적 아래. 사실이 경로의 멋진 아무것도 ...
어떤 아이디어 ???
경로 : 프로세서의
from("imap://XXXXXXXXXXXXXXXX?" +
"host=XXXXXXXXXXXXXXXXX&" +
"password=XXXXXXXXXX&" +
"delete=true&" +
"consumer.delay=12000&" +
"searchTerm.subjectOrBody=XXXXXXXXXXXXXXXXX&" +
"searchTerm.unseen=true"
)
.routeId(ROUTE_ID)
.process(attachmentProcessor)
.setHeader("to", simple("${in.header.from}"))
.setHeader("from", simple("XXXXXXXXXXXXXXXXX"))
.setHeader("subject", simple("XXXXXXXXXXXXXXXXX"))
.setBody(simple("XXXXXXXXXXXXXXXX"))
.to("smtp://XXXXXXXXXXXXXXXXX")
.log(mailMessage);
;
부 :
pdfUtil.generateLabels(tempDirPath, year, sequenceNumberStart, numberOfPages);
exchange.getIn().addAttachment(fileName, new DataHandler(new FileDataSource(tempDirPath)));
지칠대로 지친 예외 ... :-(
javax.mail.MessagingException: Missing start boundary
at javax.mail.internet.MimeMultipart.parsebm(MimeMultipart.java:882)
at javax.mail.internet.MimeMultipart.parse(MimeMultipart.java:503)
at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:417)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1354)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1021)
at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:419)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1354)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2107)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2075)
at org.apache.camel.component.mail.DefaultJavaMailSender.send(DefaultJavaMailSender.java:118)
at org.apache.camel.component.mail.MailProducer.process(MailProducer.java:56)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:143)
at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:307)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:138)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87)
at org.apache.camel.component.mail.MailConsumer.processExchange(MailConsumer.java:287)
at org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:213)
at org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:119)
at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187)
at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114)
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)
안녕하세요 피터 :이 구성 요소
에서 IMAP에서 예를 들어을 등 모든 헤더를 떨어 새 메시지를 작성합니다. 그 두 가지 해결책 (그리고 많은 다른 것들)은 이미 시도했습니다. 불행히도 성공하지 못했습니다 ... – Helmut