javax.mail如何将图像文件夹附加到java项目

javax.mail如何将图像文件夹附加到java项目,java,image,email,jakarta-mail,attachment,Java,Image,Email,Jakarta Mail,Attachment,我使用javax.mail 项目结构如下: 我想将项目路径中的图像附加到邮件正文 resources/imgecalcp/fondoencabezado_marron.png 我的代码是 MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); msg.addRecipient(Message.RecipientType.TO,

我使用javax.mail

项目结构如下:

我想将项目路径中的图像附加到邮件正文

resources/imgecalcp/fondoencabezado_marron.png
我的代码是

MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.addRecipient(Message.RecipientType.TO,
                             new InternetAddress(to));
msg.setSubject(subject,"UTF-8");
MimeMultipart multipart = new MimeMultipart("related");
MimeBodyPart messageBodyPart = new MimeBodyPart();
htmlFinal = ConversionTools.convertTypeHTML(body);
messageBodyPart.setContent(htmlFinal, "text/html");
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
messageBodyPart.attachFile("resources/imgecalcp/fondoencabezado_marron.png");
messageBodyPart.setHeader("Content-ID", "<image>");
multipart.addBodyPart(messageBodyPart);
msg.setContent(multipart);
Transport.send(msg);    
MimeMessage msg=新MimeMessage(会话);
msg.setFrom(新因特网地址(from));
msg.addRecipient(Message.RecipientType.TO,
新互联网地址(至);;
消息集主题(主题“UTF-8”);
MimMultipart multipart=新的MimMultipart(“相关”);
MimeBodyPart messageBodyPart=新的MimeBodyPart();
htmlFinal=ConversionTools.convertTypeHTML(正文);
setContent(htmlFinal,“text/html”);
multipart.addBodyPart(messageBodyPart);
messageBodyPart=新的MimeBodyPart();
messageBodyPart.attachFile(“resources/imgecalcp/fondoencabezado_marron.png”);
messageBodyPart.setHeader(“内容ID”,即“”);
multipart.addBodyPart(messageBodyPart);
msg.setContent(多部分);
发送(msg);
我有个例外

java.io.FileNotFoundException: resources\imgecalcp\fondoencabezado_marron.png (El sistema no puede encontrar la ruta especificada)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at javax.activation.FileDataSource.getInputStream(FileDataSource.java:82)
    at javax.activation.DataHandler.writeTo(DataHandler.java:290)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1403)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:874)
    at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:444)
    at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:102)
    at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:869)
    at javax.activation.DataHandler.writeTo(DataHandler.java:302)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1403)
    at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1745)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:636)
    at javax.mail.Transport.send0(Transport.java:189)
    at javax.mail.Transport.send(Transport.java:118)
    at eusurvey.tools.MailSender.run(MailSender.java:172)
    at eusurvey.tools.MailSender$$FastClassByCGLIB$$280bfa43.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:701)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:634)
    at eusurvey.tools.MailSender$$EnhancerByCGLIB$$f6b68da0.run(<generated>)
    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)
2017-04-28 07:58:06-77048 [Thread-69] (MailSender.java:176) INFO  eusurvey.tools.MailSender  - MailSender.- run .- MessagingException send failed, exception: IOException while sending message
javax.mail.MessagingException: IOException while sending message;
  nested exception is:
    java.io.FileNotFoundException: resources\imgecalcp\fondoencabezado_marron.png (El sistema no puede encontrar la ruta especificada)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:676)
    at javax.mail.Transport.send0(Transport.java:189)
    at javax.mail.Transport.send(Transport.java:118)
    at eusurvey.tools.MailSender.run(MailSender.java:172)
    at eusurvey.tools.MailSender$$FastClassByCGLIB$$280bfa43.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:701)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:634)
    at eusurvey.tools.MailSender$$EnhancerByCGLIB$$f6b68da0.run(<generated>)
    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: java.io.FileNotFoundException: resources\imgecalcp\fondoencabezado_marron.png (El sistema no puede encontrar la ruta especificada)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at javax.activation.FileDataSource.getInputStream(FileDataSource.java:82)
    at javax.activation.DataHandler.writeTo(DataHandler.java:290)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1403)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:874)
    at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:444)
    at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:102)
    at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:869)
    at javax.activation.DataHandler.writeTo(DataHandler.java:302)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1403)
    at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1745)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:636)
    ... 16 more
354 Start mail input; end with <CRLF>.<CRLF>
java.io.FileNotFoundException: resources\imgecalcp\fondoencabezado_marron.png (El sistema no puede encontrar la ruta especificada)
javax.mail.MessagingException: IOException while sending message;
  nested exception is:
    java.io.FileNotFoundException: resources\imgecalcp\fondoencabezado_marron.png (El sistema no puede encontrar la ruta especificada)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:676)
    at javax.mail.Transport.send0(Transport.java:189)
    at javax.mail.Transport.send(Transport.java:118)
    at eusurvey.tools.MailSender.run(MailSender.java:172)
    at eusurvey.tools.MailSender$$FastClassByCGLIB$$280bfa43.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:701)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:634)
    at eusurvey.tools.MailSender$$EnhancerByCGLIB$$f6b68da0.run(<generated>)
    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)
java.io.FileNotFoundException:resources\imgecalcp\fondoencabezado_marron.png
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:120)
位于javax.activation.FileDataSource.getInputStream(FileDataSource.java:82)
位于javax.activation.DataHandler.writeTo(DataHandler.java:290)
在javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1403)
在javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:874)
位于javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:444)
位于com.sun.mail.handlers.multipart\u mixed.writeTo(multipart\u mixed.java:102)
位于javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:869)
位于javax.activation.DataHandler.writeTo(DataHandler.java:302)
在javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1403)
在javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1745)
在com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:636)上
在javax.mail.Transport.send0(Transport.java:189)
在javax.mail.Transport.send(Transport.java:118)
运行(mailssender.java:172)
在eusurvey.tools.mailssender$$FastClassByCGLIB$$280bfa43.invoke()上
位于org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:701)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:150)上
位于org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
位于org.springframework.transaction.interceptor.TransactionSpectSupport.invokeWithinTransaction(TransactionSpectSupport.java:260)
位于org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:172)
位于org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:634)
在eusurvey.tools.mailssender$$enhancerbyglib$$f6b68da0.run()上
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
运行(Thread.java:662)
2017-04-28 07:58:06-77048[Thread-69](mailssender.java:176)INFO eusurvey.tools.mailssender-mailssender.-run.-MessaginException发送失败,异常:发送消息时发生IOException
javax.mail.MessagineException:发送消息时发生IOException;
嵌套异常是:
java.io.FileNotFoundException:resources\imgecalcp\fondoencabezado_marron.png
在com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:676)上
在javax.mail.Transport.send0(Transport.java:189)
在javax.mail.Transport.send(Transport.java:118)
运行(mailssender.java:172)
在eusurvey.tools.mailssender$$FastClassByCGLIB$$280bfa43.invoke()上
位于org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:701)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:150)上
位于org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
位于org.springframework.transaction.interceptor.TransactionSpectSupport.invokeWithinTransaction(TransactionSpectSupport.java:260)
位于org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:172)
位于org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:634)
在eusurvey.tools.mailssender$$enhancerbyglib$$f6b68da0.run()上
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
运行(Thread.java:662)
原因:java.io.FileNotFoundException:resources\imgecalcp\fondoencabezado_marron.png
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:120)
位于javax.activation.FileDataSource.getInputStream(FileDataSource.java:82)
位于javax.activation.DataHandler.writeTo(DataHandler.java:290)
在javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1403)
在javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:874)
在javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:44
messageBodyPart.attachFile(new File(classLoader.getResource("imgecalcp/fondoencabezado_marron.png").getFile()));