我是天然气的新手。 场景是这样的: 有了一个包含收件人列表及其名称的电子表格,我想在“亲爱的{name}”顶部自动化和自定义电子邮件正文。 如何将变量传递给Htmlbody选项?
以下是代码的一部分......提前致谢。
var ss = SpreadsheetApp.openById("xxxxxxxxxxxxxxxxxxxx").getSheets()[0];
var rng = ss.getRange(2, 1, ss.getLastRow()-1, 8);
var rngvls = rng.getValues();
//
for (var i = 0 ; i<rngvls.length; i++){
var name= ss.getRange(i + 2, 5, 1, 1).getValue();
GmailApp.sendEmail(dest, ogg, body,{name:nam, attachments: [fail.getAs(MimeType.PDF)], htmlBody : <html><h1>here is the header</h1> and here the name
</html>});
答案 0 :(得分:1)
这些值已经在rngvls中。在循环中使用getValue()方法并不是非常有利于提高性能。
您可以使用串联将名称添加到包含html的字符串中。
试试这个:
for (var i = 0 ; i<rngvls.length; i++){
var name = rnglvls[i+1][4];
var html = "<html><h1>here is the header</h1>"+name+"html";
GmailApp.sendEmail(dest, ogg, body,{name:nam, attachments: [fail.getAs(MimeType.PDF)], htmlBody : html});
}
答案 1 :(得分:0)
您可以通过设置HTML变量然后在可选的MailApp arguments中使用该变量,将HTML格式传递到脚本中。您也可以使用此方法在体内使用其他变量。
应该注意的是,GmailApp类更有可能需要重新授权,因为它可以访问用户的收件箱,因此,如果您所做的只是发送邮件,则推荐使用MailApp类。
var1 = ...
var2 = ...
var3 = ...
var html = '<body>' +
'<p>Message.</p>' +
'<p><b>Variable 1: </b>' + var1 + '</p>' +
'<p><b>Variable 2: </b>' + var2 + '</p>' +
'<p><b>Variable 3: </b>' + var3 + '</p>' +
'</body>';
MailApp.sendEmail(recipient, subject, {htmlBody:html});
答案 2 :(得分:0)
使用云服务并获取导出链接。
var url = "https://docs.google.com/feeds/download/documents/export/Export?id="+docid+"&exportFormat=html";
var param = {
method : "get",
headers : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()}
};
var htmlBody = UrlFetchApp.fetch(url,param).getContentText();
}
答案 3 :(得分:0)
如果您不需要发送过多的电子邮件消息(因为它相当慢),您可以使用以下脚本,它使用Google文档作为带有少量占位符的模板并创建它的临时副本,转换为HTML并作为消息正文发送。
Google文档中提供的所有功能都以HTML格式正确翻译,包括图片,字体等......
稍微修改了一些格式(例如图像对齐),但没有什么可以担心的。
如果您计划发送许多消息,您可能需要创建一个自动化过程,以便在定时器触发器上以较小的串发送消息,但这将不在此处。
function customizeHTMLMessage() {
var templateId = '1aZAgVbvZYD1JcoLqv8x-A5knHLrVNOfEyGh_O-06dgg';// the template doc with placeholders
var docId = DriveApp.getFileById(templateId).makeCopy('temp').getId();
var doc = DocumentApp.openById(docId);// the temp copy
var body = doc.getBody();
var items = ['#day#','#starter#','#main course#','#dessert#'];// the placeholders in this example
var values = ['Monday','Smoked fish','Beef steak','ice cream'];
for(var n = 0;n<items.length;n++){
Logger.log(items[n]+' to replace with '+values[n]);// check in the log
body.replaceText(items[n],values[n]);// update the temp doc
}
doc.saveAndClose();// save changes before conversion
var url = "https://docs.google.com/feeds/download/documents/export/Export?id="+docId+"&exportFormat=html";
var param = {
method : "get",
headers : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()}
};
var htmlBody = UrlFetchApp.fetch(url,param).getContentText();
var trashed = DriveApp.getFileById(docId).setTrashed(true);// delete temp copy
MailApp.sendEmail(Session.getActiveUser().getEmail(),'test','html body',{htmlBody : htmlBody});// send to myself to test
}
注意:此模板文档是共享的(仅查看)您可以制作副本以进行测试。
编辑:2个不同邮件阅读器中的屏幕截图。