Html 通过电子邮件应用程序脚本在一封电子邮件中发送多个值
我想建立一个谷歌脚本,只需按下一个按钮,就可以向列表中的每个用户发送一封电子邮件。我已经设置了按钮,但是我需要帮助将一个用户的所有值合并到一封邮件中,而不是将多封具有一个值的电子邮件发送给同一个人 例如: 我基本上需要Rose收到一封电子邮件,其中将列出以下项目:Html 通过电子邮件应用程序脚本在一封电子邮件中发送多个值,html,google-apps-script,google-sheets,mailmerge,Html,Google Apps Script,Google Sheets,Mailmerge,我想建立一个谷歌脚本,只需按下一个按钮,就可以向列表中的每个用户发送一封电子邮件。我已经设置了按钮,但是我需要帮助将一个用户的所有值合并到一封邮件中,而不是将多封具有一个值的电子邮件发送给同一个人 例如: 我基本上需要Rose收到一封电子邮件,其中将列出以下项目: pens printer sketchpad ink and toners 等等 这是我到目前为止的脚本,电子邮件中还有一个HTML正文: function myFunction() { var name = 0; var
pens
printer
sketchpad
ink and toners
等等
这是我到目前为止的脚本,电子邮件中还有一个HTML正文:
function myFunction() {
var name = 0;
var email = 1;
var objects = 2
var emailTemp = HtmlService.createTemplateFromFile("body")
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
var data = ws.getRange("A2:D" + ws.getLastRow()).getValues();
data.forEach(function(row){
emailTemp.fn = row[name];
emailTemp.site = row[objects];
var htmlMessage = emailTemp.evaluate().getContent();
GmailApp.sendEmail(row[email], "No objects ordered", "Blabla",{htmlBody: htmlMessage})
});
}
一个简单的方法是获得一个减少的唯一名称/电子邮件数组
这可以通过以下功能实现:
function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
}
- 然后可以循环所有唯一的值
- 查找包含它们的所有行
- 将相应的对象推入数组
- 根据需要在
中执行数组“body.html”
var unique = ws.getRange("A2:A" + ws.getLastRow()).getValues().flat().filter(onlyUnique);
unique.forEach(function(person){
var row_objects =[];
var mail = "";
data.forEach(function(row){
if(row[name] == person){
row_objects.push(row[objects]);
mail = row[email];
}
});
Logger.log(row_objects);
emailTemp.fn = person;
emailTemp.site = row_objects;
var htmlMessage = emailTemp.evaluate().getContent();
GmailApp.sendEmail(mail, "No objects ordered", "Blabla",{htmlBody: htmlMessage})
})
请添加
body.html
(要包含的代码应该是a)您好,谢谢您的帮助,但是,我在尝试运行脚本时遇到以下错误:ReferenceError:onlyUnique没有为以下行定义(第8行,文件“code”):var unique=ws.getRange(“A2:a”+ws.getLastRow()).getValues().flat().过滤器(仅限Yunique)代码>是否在脚本中插入了函数定义?也就是说,除了已经存在的函数之外,myFunction()
?你的脚本中需要两个函数。该死,我忘了对不起,这里完全是初学者。谢谢你的帮助!很高兴帮助你!出于文档目的,如果可以,请接受答案(✓) 这对你很有帮助——它还可以帮助将来遇到同样问题的其他人找到解决方案:)