Я пытаюсь отправить электронное письмо с Java, в котором есть встроенные изображения.Проблема заключается в том, что из предварительного просмотра электронной почты Outlook показывает, что в письме есть вложение, как показано здесь
Я добавляю вложение в электронное письмо следующим образом:
private void addFilesToEmailSMTP2(MimeMessage msg) throws MessagingException {
MimeMultipart multipart = new MimeMultipart("related");
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(testo, "text/html");
multipart.addBodyPart(messageBodyPart);
for (Entry<String, String> a : attach.entrySet()) {//attach is pre populated with key: content-id, value: base64 encoded image
messageBodyPart = new MimeBodyPart();
try {
byte[] byteArray = Base64.getDecoder().decode(a.getValue());
File tempFile = File.createTempFile("tmpFile", null);
try (FileOutputStream fos = new FileOutputStream(tempFile);) {
fos.write(byteArray);
}
DataSource fds = new FileDataSource(tempFile);
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setContentID(a.getKey());
messageBodyPart.setDisposition(MimeBodyPart.INLINE);
log.info("Adding attach {}", a.getKey());
multipart.addBodyPart(messageBodyPart);
} catch (MessagingException | IOException e) {
log.error(threadName + " Attachment " + a.getKey() + " threw error: " + e.getMessage(), e);
}
}
msg.setContent(multipart);
}
Результат по электронной почте в порядке, со скрытым вложением и изображениями в теле, но внешний вид продолжает показывать мне электронное письмо с вложенным