2014-08-29 103 views
1

我有我的郵件發送方法的測試代碼。只發送HTML工作正常,但我嘗試添加附件(本地文件,所以「file:// ...」),我明白了。 :JavaMail附件nullPointer

顯示java.lang.NullPointerException在 javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:226)

我的代碼:

@Inject 
private JavaMailSender mailSender; 

... 

MimeMessage message = mailSender.createMimeMessage(); 
Multipart multipart = new MimeMultipart(); 

// html 
MimeBodyPart htmlPart = new MimeBodyPart(); 
htmlPart.setText(SomeHtml, "text/html; charset=\"UTF-8\""); 
multipart.addBodyPart(htmlPart); 

// image 
MimeBodyPart imageBodyPart = new MimeBodyPart(); 
String fileName = ClassLoader.getSystemResource("chat1.jpg").toString(); 
DataSource source = new FileDataSource(fileName); 
imageBodyPart.setDataHandler(new DataHandler(source)); 
imageBodyPart.setFileName(fileName); 
multipart.addBodyPart(imageBodyPart); 

message.setContent(multipart); 
mailSender.send(message); 

我試着使用MimeMessageHelper,但我有同樣的結果。 我試過source.getInputStream().close(),我有java.io.FileNotFoundException(但我可以找到我的圖片,當我粘貼到瀏覽器或資源管理器的路徑)

我不明白,任何想法? 謝謝!

回答