您好我有以下代码:Filedatasource路径不是动态来
MimeMessage msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress("[email protected]");
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[sendTo.length];
for (int i = 0; i < sendTo.length; i++) {
addressTo[i] = new InternetAddress(sendTo[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
// Setting the Subject and Content Type
msg.setSubject(emailSubjectTxt);
/*Image part*/
MimeMultipart multipart = new MimeMultipart("related");
// first part (the html)
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();
String contextPath=request.getContextPath();
System.out.println("contextpath"+contextPath);
File contextDir = new File(contextPath);
System.out.println("contextDir"+contextDir);
File emailImage = new File(contextDir, "/images/sample.jpeg");
System.out.println("emailImage"+emailImage);
DataSource fds = new FileDataSource(emailImage);
//System.out.println("fds"+fds.getName());
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID","<image>");
// add it
multipart.addBodyPart(messageBodyPart);
// put everything together
msg.setContent(multipart);
Transport.send(msg);
}
它正常工作,如果我使用
DataSource fds = new FileDataSource("C:\\images\\sample.jpeg");
,而不是
DataSource fds = new FileDataSource(emailImage);
但我想要从访问图片。
我运行这个时得到了java.lang.NullPointerException
。
请发布堆栈跟踪,以便能够确定NullPointerException的位置。 你也应该用File.exists()来检查文件是否真的存在于你认为它的地方。 – ppeterka
如果你正在使用servlet来调用那个图片,那么试试这个 http:///stackoverflow.com/questions/1479036/access-file-in-webcontent-folder-from-a-servlet –
使用哪个Web应用程序API? 'Servlet JSP'或'JSF' ..... – CycDemo