1

I am trying to send html as email from JavaMailSender. The html has an <img> tag.

MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
mimeMessageHelper.setTo("preetham.kv@highpeaksw.com");
mimeMessageHelper.setText("<img src=cid:netLogo\" />",true);
ClassPathResource netLogoImg = new ClassPathResource("sample.png");
mimeMessageHelper.addInline("netLogo",netLogoImg);
mailSender.send(mimeMessage);

But when the email is sent, the image is going as an attachment rather than the image of the email content. How to send html's with image and link from spring-boot?

seenukarthi
  • 8,241
  • 10
  • 47
  • 68
Virat
  • 551
  • 4
  • 9
  • 23
  • 1
    Please look at it https://stackoverflow.com/questions/2996514/inline-images-in-email-using-javamail – Giver Jun 14 '18 at 11:02
  • When you use cid while setting the images in email content it uses the attached images. Upload image in the server and use complete URL to image. – mallikarjun Jun 14 '18 at 11:05
  • But in the gmail app, it is displaying properly – Virat Jun 14 '18 at 12:58
  • @mallikarjun after changing the code to `mimeMessageHelper.setText("",true);` No image is coming!! – Virat Jun 14 '18 at 14:03

1 Answers1

0

Hi you have to warp your Html content in a String and you use bellow code

    
        MimeMessage message = (MimeMessage) getNewMessageInstance();//sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message,true);
        try {
            if (emailContent == null || emailContent.length() == 0) {
                message.setContent(multipart);
            } else {
                message.setContent(emailContent, "text/html; charset=utf-8");
            }
        } catch (Exception e) {
            log.info("Exception while setting message content ",e);
        }