Java 之 发送邮件中谷歌邮箱图片加载失败问题
2026/6/10 14:06:05 网站建设 项目流程

背景

项目中用到发送邮件功能,之前测试一直没什么问题,后面客户使用总是有问题,再次测试发现只有谷歌邮箱才有这种问题,后面换了一种方法,测试ok,这里记录下。

使用html格式发送邮件

代码

html相关代码

<imgsrc="cid:emailImg"alt="Email Logo"/>

java相关代码

publicvoidsendCustomer(Stringto,Stringsubject,Stringcontent){try{// 创建message对象MimeMessagemessage=mailSender.createMimeMessage();MimeMessageHelperhelper=newMimeMessageHelper(message,true,"utf-8");// 设置邮件信息....helper.setText(content,true);StringbriEmail="email.png";StringfolderPath=System.getProperty("user.dir")+File.separator+"templates"+File.separator;StringbriEmailFile=folderPath+briEmail;try{helper.addInline("emailImg",newFileSystemResource(newFile(briEmailFile)),"image/png");}catch(Exceptione){......}// 异步执行 发送邮件mailSender.send(helper.getMimeMessage());log.info("email [ {} ] send ok",to);}catch(Exceptione){log.error("Sending email failed:"+e.getMessage());....}}

注意点

  1. 一定要在setText之后再调用addInline
  2. 使用html格式发送时,很多CSS格式可能不支持,需要具体调试。
  3. 建议使用Table标签,这样更好兼容格式设置
  4. 如果需要内含外部链接,需要三方图片服务器,比如google driver,AWS3等。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询