我想设置一个Google脚本,只需按一下按钮,便会向列表中的每个用户发送一封电子邮件。我已经设置了按钮,但是我需要将一个用户的所有值合并到一封邮件中的帮助,而不是向同一个人发送具有一个值的多封电子邮件。
例如:
我基本上需要罗丝(Rose)收到一封电子邮件,其中将这些项目逐项列出:
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})
});
}
答案 0 :(得分:0)
例如,这可以完成使用this函数:
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})
})