You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Gmail发送含Base64图片的邮件不显示,img标签src被移除

解决Gmail中Base64图片无法显示且src被移除的问题

Gmail会出于安全和性能考量,过滤HTML邮件里的data URI格式图片,直接移除img标签的src属性,这就是你遇到的图片加载失败的原因。下面是几种可行的解决方案:

1. 用CID引用将图片作为附件嵌入

这是兼容性最好的方案,几乎所有主流邮件客户端都支持:

  • 把图片作为邮件附件添加,同时给图片设置唯一的Content-ID(CID)
  • 在HTML的img标签里,用cid:你的图片CID作为src值

示例(以Node.js的nodemailer库为例):

const nodemailer = require('nodemailer');

async function sendEmbeddedImageMail() {
  // 创建邮件传输器
  let transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
      user: '你的邮箱@gmail.com',
      pass: '你的应用密码' // 注意:Gmail需开启两步验证并使用应用密码
    }
  });

  // 发送邮件
  let sendResult = await transporter.sendMail({
    from: '你的名字 <你的邮箱@gmail.com>',
    to: '收件人邮箱@example.com',
    subject: '测试嵌入图片',
    html: '<p><img src="cid:icon_unique_cid" alt="icon.png" width="auto" height="auto"></p>',
    attachments: [
      {
        filename: 'icon.png',
        path: './本地图片路径/icon.png', // 替换为你的图片本地路径
        cid: 'icon_unique_cid' // 必须和html中的cid值完全一致
      }
    ]
  });
}

sendEmbeddedImageMail();

2. 使用公开可访问的图片URL

如果你的图片可以上传到公开服务器,直接用HTTP/HTTPS链接作为img的src:

<p><img src="https://你的域名.com/icon.png" alt="icon.png" width="auto" height="auto"></p>

注意:确保这个URL是公开可访问的,且不会被Gmail标记为恶意链接。

3. 规避Gmail的过滤规则

  • 确认邮件没有被归类为垃圾邮件,垃圾邮件的HTML过滤会更严格
  • 简化HTML结构,移除不必要的自定义类或复杂样式,减少被误判的概率

补充:Base64图片在当前主流邮件客户端(Gmail、Outlook等)的支持性都很差,不仅会触发过滤,还会大幅增加邮件体积,所以不建议再使用这种方式。

内容的提问来源于stack exchange,提问作者VijayRathod20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 13:09:49