2 回答
TA贡献2039条经验 获得超8个赞
如果我理解文档https://developers.google.com/apps-script/reference/mail/mail-app
您不必将对象作为MailApp.sendEmail的正文参数传递,而是直接传递您的 text/html
所以在这些行中替换{htmlBody: htmltable}为htmltable:
...
MailApp.sendEmail(emailAddress, subject, htmltable)
MailApp.sendEmail(emailAddress2, subject2, htmltable)
...
编辑
您需要在提供选项对象之前提供文本正文,
sendEmail(收件人、主题、正文、选项)
你对语法是正确的,但你之前需要一个文本。你可以试试这个来测试它:
...
MailApp.sendEmail(emailAddress, subject, htmltable, {htmlBody: htmltable})
MailApp.sendEmail(emailAddress2, subject2, htmltable,{htmlBody: htmltable})
...
但我建议您创建数据的文本版本,如果可行,将其作为文本正文传递
TA贡献1862条经验 获得超7个赞
回答您的进一步问题(来自评论)
1 如果您不希望空白为“无”,则应删除此部分
var htmltable = '<table ' + TABLEFORMAT +' ">';
for (row = 0; row<data.length; row++){
htmltable += '<tr>';
for (col = 0 ;col<data[row].length; col++){
//remove this part ------------
//if (data[row][col] === "" || 0) {
// htmltable += '<td>' + 'None' + '</td>';}
//else --------------
if (row === 0) {
htmltable += '<th>' + data[row][col] + '</th>';
}
else {htmltable += '<td>' + data[row][col] + '</td>';}
}
htmltable += '</tr>';
}
2 - 试试这个
...
// Send Alert Email.
var order = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Order tab").getRange("A2:K32");
var message = order.getValues();
//---------------------- this :
var customerId = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName("Order tab").getRange("c24")
.getValues()[0];
var subject = 'New Order Alert - ' + customerId;
var subject2 = 'Order Summary - ' + customerId;
...
```
添加回答
举报
