On Thu, Dec 20, 2012 at 5:35 PM, developpef <src...@orange.fr> wrote:
> Hello everyone,
>
> I am facing the following issue when trying to send an email with
> attachments :
>
> My route is :
>
> from("direct:mail")
>                 .setHeader("To", constant(mailTo))
>             .setHeader("From", constant(mailFrom))
>             .setHeader("Subject", constant(mailSubject))
>             .beanRef(MAIL_ATTACHER, "attachLog")
>             .transform(constant(mailBody))
>
> .to("smtp://${mailUser}@${mailServer}:${mailPort}?password=${mailPassword}");
>
> And my bean "MAIL_ATTACHER" :
>
> public class MailAttacher {
>
>     private LogFileResolver logResolver;
>
>     public void attachLog(Exchange exc) {
>         File logToAttach = logResolver.getCurrentLogFile();
>         exc.getIn().addAttachment(logToAttach.getName(),
>                 new DataHandler(new FileDataSource(logToAttach)));
>     }
>
> }
>
> So I expected my mail to be sent, but here is the stacktrace raised :
>
> java.lang.NullPointerException
>         at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:226)
>         at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:299)
>         at 
> javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1375)
>         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:49)
>         at
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
>
> And when I tried to set the property "defaultEncoding=UTF-8" I had an error
> saying that the property is not allowed on the endpoint (camel v2.10.2)
>
> The mail is correctly sent without attachments...
>
> Does anyone have an idea about how to resolve this?
>
> Thanks a lot!
>

Its a bug in Java Mail. Can you try upgrading to a newer release if
there is one?
And if you can try to debug the code and set a breakpoint down there,
to see why you hit the NPE.

Also try to run it outside any container in plain java, and see if it works.
The reason is that java mail loads stuff, and that may not work to
well inside some containers.



>
>
> -----
> http://developpef.blogspot.com
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/Mail-attachements-tp5724461.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
FuseSource is now part of Red Hat
Email: cib...@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to