0

我工作的公司将在月底迁移到 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 );


}
4

2 回答 2

0

我认为,如果您想添加图像,则正文应该是带有图像标签的 html。

或者

或者图像作为选项添加,所以方法应该是:

.createDraft(收件人,主题,正文,{inlineImages:blob 源})

(选项作为对象添加)

查看文档

https://developers.google.com/apps-script/reference/gmail/gmail-app#createdraftrecipient,-subject,-body,-options

也许检查这个答案:

将图像添加到 Google 表格电子邮件应用脚本

于 2021-03-10T05:06:31.497 回答
0

非常感谢 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
    }
  );
}
于 2021-03-10T12:42:22.033 回答