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

如何基于base64图片URL为Google Apps Script MailApp创建inlineImage blob

问题原因

你代码的核心错误是方法参数类型不匹配:
Utilities.base64Decode() 方法执行后返回的是二进制字节数组,而你调用的setDataFromString()方法仅支持接收字符串类型参数,二者类型不匹配直接导致脚本运行报错。

修复方案

直接在Utilities.newBlob()的入参中传入解码后的字节数组,同时指定内容类型和文件名即可,代码示例:

// 移除data URI头部,保留纯base64编码的图片数据
const base64Data = imgTxt.slice('data:image/jpeg;base64,'.length);
// 解码后直接生成Blob
const userImgBlob = Utilities.newBlob(Utilities.base64Decode(base64Data), 'image/jpeg', 'userImgBlob');

如果需要适配不同格式的图片data URI,可以用正则通用移除头部:

const base64Data = imgTxt.replace(/^data:image\/[^;]+;base64,/, '');
const userImgBlob = Utilities.newBlob(Utilities.base64Decode(base64Data), 'image/jpeg', 'userImgBlob');

邮件插入使用示例

生成Blob后,在邮件发送参数中指定对应inlineImages映射即可正常插入内联图片:

MailApp.sendEmail({
  to: "办事员邮箱地址",
  subject: "非预设名单用户签到提醒",
  htmlBody: "签到人照片:<br><img src=\"cid:signInImg\">",
  inlineImages: {
    signInImg: userImgBlob
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:48:03