如何在Google Apps Script中将柱状图以image/png发送并添加邮件右上角Logo
解决方案:将图表嵌入邮件正文 + 添加Drive Logo到右上角
一、把柱状图以PNG格式嵌入邮件正文
你的现有代码已经生成了图表的base64数据,整合到邮件里有两种可靠方式:
方式1:直接使用Data URI(简单但兼容性略差)
直接把生成的imageUrl放到邮件HTML正文中,用MailApp.sendEmail发送时指定htmlBody参数即可:
// 生成图表的base64 URL var imageData = Utilities.base64Encode(chart.getAs('image/png').getBytes()); var imageUrl = "data:image/png;base64," + imageData; // 构建邮件HTML内容 var emailHtml = ` <p>First part</p> <img border="1" src="${imageUrl}" alt="柱状图"> `; // 发送邮件 MailApp.sendEmail({ to: "收件人邮箱@example.com", subject: "包含图表的邮件", htmlBody: emailHtml });
注意:部分老旧邮件客户端可能不支持data URI,更推荐下面的方式2。
方式2:使用附件CID引用(兼容性拉满)
把图表作为邮件附件,在HTML里通过cid:引用附件ID,所有邮件客户端都支持:
// 将图表转为Blob var chartBlob = chart.getAs('image/png'); // 自定义唯一CID标识 var chartCid = "chart123"; // 构建邮件HTML内容 var emailHtml = ` <p>First part</p> <img border="1" src="cid:${chartCid}" alt="柱状图"> `; // 发送邮件并添加带CID的附件 MailApp.sendEmail({ to: "收件人邮箱@example.com", subject: "包含图表的邮件", htmlBody: emailHtml, attachments: [chartBlob.setName("柱状图.png").setContentId(chartCid)] });
二、添加Drive中的Logo到邮件正文右上角
推荐用CID附件方式(避免Drive权限或链接失效问题),步骤如下:
- 设置Logo文件权限:打开Drive里的Logo文件,点击「共享」→ 设置为「Anyone with the link can view」,确保收件人能访问
- 代码实现:
// 替换为你的Logo文件ID(从Drive文件URL末尾提取) var logoFileId = "你的Logo文件ID"; var logoBlob = DriveApp.getFileById(logoFileId).getBlob(); var logoCid = "logo456"; // 自定义唯一CID // 构建带右上角Logo的邮件HTML(用CSS定位) var emailHtml = ` <div style="position: relative; margin-bottom: 20px;"> <img src="cid:${logoCid}" alt="Logo" style="position: absolute; top: 0; right: 0; width: 100px;"> <!-- 可调整width设置Logo大小 --> </div> <p>First part</p> <img border="1" src="cid:chart123" alt="柱状图"> `; // 发送邮件,同时添加图表和Logo附件 MailApp.sendEmail({ to: "收件人邮箱@example.com", subject: "包含图表和Logo的邮件", htmlBody: emailHtml, attachments: [ chartBlob.setName("柱状图.png").setContentId("chart123"), logoBlob.setName("Logo.png").setContentId("logo456") ] });
补充:不用附件的替代方案
如果不想把Logo作为附件,可直接用Drive嵌入链接:
获取Logo文件的嵌入链接(共享设置里找「嵌入代码」,提取src部分,格式为https://drive.google.com/uc?export=view&id=文件ID),然后在HTML中使用:
<img src="https://drive.google.com/uc?export=view&id=你的Logo文件ID" alt="Logo" style="position: absolute; top: 0; right: 0; width: 100px;">
但这种方式依赖Drive链接稳定性,部分邮件客户端可能拦截外部图片,优先推荐CID附件方式。
内容的提问来源于stack exchange,提问作者Aibek Akhmetkazy
相关产品推荐
相关产品推荐

