Spring Mail с Thymeleaf - встроенное изображение отображается как вложение в GMail - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь добавить изображение lo go .png в начало сообщения электронной почты, однако оно получено как вложение вместо встроенного изображения. Квадратные блоки появляются на месте, где я бы хотел, чтобы был lo go (это связано с фиксированной шириной и высотой элемента img). На следующем снимке экрана показан результат работы GMail . Image attached instead of inline

I can see in dev tools that img element seems to be empty i.e. image.

The following is my code for setting it up.

        private Resource blueLogo = new ClassPathResource("logo/blue_logo.png");
        ...
        MimeMessagePreparator mimeMessagePreparator = mimeMessage -> {
            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED);
            messageHelper.setFrom(inbox);
            messageHelper.setTo(recipientEmail);
            messageHelper.setSubject("Please verify your email");
            String content = mailContentService.createVerificationEmail(recipientEmail, recipientName, verificationCode, blueLogo);
            messageHelper.setText(content, true);
            messageHelper.addInline("logo", blueLogo);
        };
        mailSender.send(mimeMessagePreparator);

Context setup:

private static final String VAR_RECIPIENT_EMAIL = "recipient_email";
private static final String VAR_RECIPIENT_NAME = "recipient_name";
private static final String VAR_UNIQUE_CODE = "unique_code";

private static final String VAR_LOGO = "logo";
...
    Context createVerificationEmailContext(String recipientEmail, String recipientName, String verificationCode, Resource logo) {
        Context context = new Context();
        context.setVariable(VAR_RECIPIENT_EMAIL, recipientEmail);
        context.setVariable(VAR_RECIPIENT_NAME, recipientName);
        context.setVariable(VAR_UNIQUE_CODE, verificationCode);
        context.setVariable(VAR_LOGO, logo);
        return context;
    }

The template that's loaded up:


    
        
image

Примечание: Мне известно, что существуют похожие вопросы, и я просматривал их довольно много часов сейчас пытаюсь найти решение. Проблема все еще не исчезла. Любые предложения приветствуются.

...