Проблема встроенных вложений - PullRequest
1 голос
/ 27 июня 2019

Я пытаюсь отправить электронное письмо с 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);

    }

Результат по электронной почте в порядке, со скрытым вложением и изображениями в теле, но внешний вид продолжает показывать мне электронное письмо с вложенным

...