我有一个脚本来发送电子邮件,但它不是按照我想要的格式发送。你能像这样发送电子邮件吗?

现在我的剧本是这样发送的:-
信托基金,无资金,平台,链接,TF,无资金,数据,链接,日期,日期,资金,领域,领域,所做的改变,,,5月7日至02年,注册,2037.41,Shaji Vadakke Parambath,Vinay Gupta,Add圆形,,,...
我的代码是:

发布于 2017-08-13 15:18:22
你可以用这样的循环。如果您想得到更好的响应,将来我建议允许我们访问具有与示例一致的数据的电子表格,并访问脚本编辑器。很难从图像中复制代码或数据。这样就不太可能有人站出来帮你了。如果您能亲自尝试一下代码,也将不胜感激。这个代码确实有效,我用假数据对其进行了测试。
这将分隔它发送的行中的所有值。最后一列必须为空,才有资格发送,而8列不得为空。
function SendingEmails()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var startRow=5;
var rg=sh.getDataRange();
var vA=rg.getValues();
var subject='Your Subject';
var emailaddress='Your Email Address';
for(var i=startRow-1;i<vA.length;i++)
{
if(!vA[i][vA[0].length-1] && vA[i][7])//not already sent and some data is available
{
//Logger.log('Send Mail: %s',formatAsTable(vA[i]));
//var userInterface=HtmlService.createHtmlOutput(formatAsTable(vA[i]));
//SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Format As Table')
MailApp.sendEmail(emailaddres,subject,vA[i].join(','))
sh.getRange(i+1,vA[0].length).setValue('mailsent');
}
}
}
function formatAsTable(vA)
{
var s='<style>table{border:1px solid #000;}th,td{border:1px solid #000;}"</style><table><tr>';
for(var i=0;i<vA.length-1;i++)
{
s+='<td>' + vA[i] + '</td>';
}
s+='</tr></table>';
return s;
}发布于 2017-08-13 20:33:02
我建议您安装SheetConverter (由David (Mogsdad)创建)。谷歌它和它给出了很好的指导如何安装库。我修改了给出的示例如下:
function example() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getActiveSheet().getDataRange();
var conv = SheetConverter.init(ss.getSpreadsheetTimeZone(),
ss.getSpreadsheetLocale());
// Grab an array for formatted content
var array = conv.convertRange(range);
// Get a html table version, with all formatting
var html = conv.convertRange2html(range);
MailApp.sendEmail(Session.getActiveUser().getEmail(), 'Daily report','' ,{htmlBody: html})
}它发送了一个测试我完美地设置了你的数据。
https://stackoverflow.com/questions/45657384
复制相似问题