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

邮件模板中通过JS加载Base64图片无法渲染问题求助

邮件模板图片不显示的解决方案

核心原因

绝大多数邮件客户端会禁用外部JS文件加载,甚至内联JavaScript代码也会被拦截,这才是图片不显示的根本原因——不是服务器找不到EncodedImage.js,而是邮件根本不会去加载和执行这个脚本,也不会运行你写的getImagePath()函数。

直接可行的解决方法

把Base64编码直接嵌入到<img>的src属性里,完全不需要JavaScript:

  1. 打开你的EncodedImage.js文件,复制Image.encoding变量里的Base64字符串内容。
  2. 修改邮件模板里的<img>标签,格式如下(注意替换图片类型,比如png换成你的图片实际格式jpg/gif等):
<img src="data:image/png;base64,这里粘贴你复制的Base64编码">
  1. 去掉模板里所有和EncodedImage.js相关的<script>标签,包括内联的getImagePath()函数。

补充说明

浏览器里测试正常是因为浏览器允许加载外部脚本并执行JS,但邮件客户端出于安全(防止恶意脚本)和兼容性考虑,几乎都不支持脚本功能,所以这种依赖JS动态设置图片的方式在邮件里完全行不通。

如果Base64编码过长导致模板体积太大,也可以把图片上传到稳定的公共存储服务(比如公司内部的CDN),直接用图片的公开URL作为src值,比如:

<img src="https://你的CDN地址/图片文件名.png">

但要确保这个URL长期有效且能被邮件客户端访问到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:21:37