如何解决Google Sheets 使用 CreateDraft 函数向 Gmail 邮件添加内嵌图像
我工作的公司将在月底迁移到 Google 的邮件客户端和套件。我的部门使用 Excel 表格,其中包含我在锁定期间学到的一些 VBA 编码。我希望在 Google 表格中使用表单的基本操作之一是,当单击按钮时,会在该电子邮件的正文中创建一封电子邮件,该电子邮件是表单的屏幕截图。
由于我是 Google 表格中的 Javascript 新手,在过去的几天里,我发现了各种方法和代码来创建图像,以及另一种在 Gmail 中创建草稿的方法和代码。 (重要的是,表单的用户可以在发送之前看到电子邮件 - 需要添加其他信息。因此 Gmail 的自动发送功能不是一个选项)
为什么要创建草稿,电子邮件地址存在,主题行,消息文本也是如此。但是没有图...
function sendit()
{
const range = "A1:H10";
const [header,...values] = SpreadsheetApp.getActiveSheet()
.getRange(range)
.getdisplayValues();
const table = Charts.newDataTable();
header.forEach((e) => table.addColumn(Charts.ColumnType.STRING,e));
values.forEach((e) => table.addRow(e));
const blob = Charts.newTableChart()
.setDataTable(table.build())
.setDimensions(500,500)
.setoption("alternatingRowStyle",false)
.build()
.getBlob();
GmailApp.createDraft("xxxxxx","current time","The time is....",blob );
}
解决方法
我认为如果您想添加图片,正文应该是带有图片标签的 html。
或
或者图片是作为选项添加的,所以方法应该是:
.createDraft(recipient,subject,body,{inlineImages: blob source})
(选项作为对象添加)
查看文档
https://developers.google.com/apps-script/reference/gmail/gmail-app#createdraftrecipient,-options
也许检查这个答案:
Add Image to Google Sheets email App Script
,非常感谢 Monkey Punky 的文章,使其能够与下面的代码一起使用。
var sheet = SpreadsheetApp.getActiveSpreadsheet() .getSheetByName("Main");
var to = "xxxxxxxxxx.com";
var message = '<img src="cid:logo" />';
const range = "A1:H10";
const [header,...values] = SpreadsheetApp.getActiveSheet()
.getRange(range)
.getDisplayValues();
const table = Charts.newDataTable();
header.forEach((e) => table.addColumn(Charts.ColumnType.STRING,e));
values.forEach((e) => table.addRow(e));
var image = Charts.newTableChart()
.setDataTable(table.build())
.setDimensions(500,500)
.setOption("alternatingRowStyle",false)
.build()
.getBlob();
GmailApp.createDraft(
to,"Subject","",{
inlineImages:{ logo:image },htmlBody:message
}
);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。