У меня есть тестовый код для моего метода отправки почты. Отправка только с помощью html работает нормально, но я пытаюсь добавить вложение (локальный файл, так что "файл://..."), и я получаю это. :
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
(но я могу найти свое изображение, когда я вставляю путь в браузер или проводник)
Я не понимаю, Любая идея? Благодаря !
Хорошо, я просто меняю свой код, как здесь Исключение Null Pointer при отправке почты с приложением через API JavaMail на сервере amazon в приложении Java
Это работает, но я не понимаю реальной разницы...