【发布时间】:2016-12-08 19:01:51
【问题描述】:
我正在尝试从我的 JBOSS 服务器发送带有图片附件的电子邮件。我正在使用 Eclipse IDE。我应该将要通过电子邮件附件发送的图像资源放在哪里。
BodyPart messageBodyPart = new MimeBodyPart();
String htmlText = "<H1>Hello</H1><img src=\"cid:image\">";
messageBodyPart.setContent(htmlText, "text/html");
// add it
multipart.addBodyPart(messageBodyPart);
// second part (the image)
messageBodyPart = new MimeBodyPart();
DataSource fds = new FileDataSource("Logo.png");
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID", "<image>");
// add image to the multipart
multipart.addBodyPart(messageBodyPart);
// put everything together
msg.setContent(multipart);
// Send message
Transport.send(msg);
在上面的代码中,我提供了 Logo.png,我应该将该文件放在文件夹层次结构中的什么位置。
文件夹结构为:
project-backend
-DeployedResources
-src
--main
---java
----com
-----abc
------utils
-------EmailUtil.java -> File with the email sending logic
---resources
----META-INF
-----persistence.xml
---webapp
----WEB_INF
-----beans.xml
-----web.xml
每次遇到错误时,我都会尝试将该文件放在多个位置: // 发信息 Transport.send(msg);
错误是:
java.lang.NullPointerException javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:226) javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:299) javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1375) javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1021) javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:419) javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1354) javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2107) javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2075) com.abc.utils.EmailUtil.sendEmail(EmailUtil.java:69) javax.mail.Transport.send(Transport.java:123)
【问题讨论】: