Я использую Spring Boot и Thymeleaf для отправки электронных писем. У меня есть одно встроенное изображение в качестве подписи в электронном письме. Все работает нормально, если я отправляю по одному письму за раз. Но мой вариант использования - отправить отдельное электронное письмо в список получателей. Я могу сделать это без изображения. Но когда я добавляю изображение, первое электронное письмо отправляется, и во второй раз я получаю ресурс пути класса [Images /tp-logo.png], нельзя открыть, потому что его не существует < /code>. < /P>
Когда я вызываю электронное письмо. Цикл, он работает нормально. < /li>
< /ol>
Я понимаю, что потоки ленивы, но почему ресурс отсутствует?for(ContactIfo contact : contactInfoList) {
ExecutorService emailExecutor = Executors.newCachedThreadPool();
emailExecutor.execute(() -> {
final String emailAddress = contact.getEmailAddress();
if (StringUtils.isNotBlank(emailAddress)) {
emailService.sendEmail(emailAddress);
}
});
}
< /code>
Код метода вынуждения сбоя: < /p>
contactInfoList.parallelStream().forEach(contact -> {
ExecutorService emailExecutor = Executors.newCachedThreadPool();
emailExecutor.execute(() -> {
final String emailAddress = contact.getEmailAddress();
if (StringUtils.isNotBlank(emailAddress)) {
emailService.sendEmail(emailAddress);
}
});
});
< /code>
callee: < /p>
private void sendEmail(Mail mail) throws MessagingException {
MimeMessage message = emailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,
MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED,
StandardCharsets.UTF_8.name());
Context context = new Context();
context.setVariables(mail.getProps());
String html = templateEngine.process("me-event-update-template", context);
helper.setText(html , true);
helper.setTo(mail.getMailTo());
helper.setSubject(mail.getSubject());
helper.setFrom(mail.getFrom());
// adding inline resources with matching cId to the variable name/value
helper.addInline("logo", new ClassPathResource("images/logo.png"), "image/png");
emailSender.send(message);
}
Подробнее здесь: https://stackoverflow.com/questions/612 ... -cannot-be
Spring Boot Thymeleaf javamail -«Ресурс пути класса [images/logo.png] не может быть открыт, потому что он не существует» ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение