【问题标题】:Unable to send html email using JavaMailSender无法使用 JavaMailSender 发送 html 电子邮件
【发布时间】:2018-06-14 10:55:17
【问题描述】:

我正在尝试从JavaMailSender 以电子邮件的形式发送 html。 html 有一个 <img> 标签。

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);

但是当发送电子邮件时,图像将作为附件而不是电子邮件内容的图像。如何从spring-boot发送带有图片和链接的html?

【问题讨论】:

  • 当您在电子邮件内容中设置图像时使用 cid 时,它会使用附加的图像。在服务器中上传图片并使用完整的 URL 到图片。
  • 但在 gmail 应用程序中,显示正常
  • @mallikarjun 在将代码更改为mimeMessageHelper.setText("&lt;img src="+imageUrl+ "/&gt;",true); 后没有图像!

标签: java spring-boot jakarta-mail


【解决方案1】:

您好,您必须将您的 Html 内容变形为字符串,并使用以下代码

    
        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);
        }
        

【讨论】:

    猜你喜欢
    • 2014-07-25
    • 1970-01-01
    • 2015-09-13
    • 2015-08-24
    • 1970-01-01
    • 2021-07-07
    • 2015-06-11
    • 1970-01-01
    • 2021-12-25
    相关资源
    最近更新 更多