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

通过Nodemailer发送的HTML邮件模板中logo图片无法渲染怎么办

问题成因排查
  • 标签属性使用错误:img 标签的资源地址属性应为 src,你当前代码错误使用了超链接的 href 属性,客户端无法识别图片资源地址。
  • 图片链接为非直链地址:你填入的URL是谷歌图片搜索的跳转链接,并非图片的静态资源直链,这类链接存在有效期、防盗链限制,且多数邮件客户端会拦截跳转类地址的资源加载。
  • 布局属性兼容性不足:邮件HTML的客户端兼容度极低,display:flex 这类CSS3属性在绝大多数邮箱客户端里不会被识别,会导致布局错乱。
  • JS代码完全失效:所有邮件客户端都会默认禁用HTML内的JS脚本,你写的时间生成脚本会被直接删除,无法生效。
对应解决方案
  1. 修正标签属性:将 <img href="xxx"> 调整为 <img src="xxx">
  2. 替换为静态资源直链:使用自己托管的CDN静态图片直链,确保没有防盗链、访问限制,不要使用搜索引擎跳转的临时链接。如果希望避免外部图片被拦截,可以使用Nodemailer的内嵌附件方案:
    • 发送时将logo图片作为附件上传,设置 cid 标识
    • 模板内img的src属性填写 cid:你设置的标识,即可实现内嵌图片加载,稳定性远高于外部链接
  3. 调整时间生成逻辑:不要在邮件模板内用JS生成时间,在服务端调用Nodemailer发送前,先计算好当前时间,直接渲染到模板对应位置再发送
  4. 优化布局兼容:移除 display:flex 这类不兼容的CSS属性,邮件HTML优先使用table布局实现排版,兼容性最好

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 17:21:03