使用Google Appscript-如何使用自定义正文从Gmail中的草稿模板发送自动电子邮件?

时间:2019-04-07 00:23:51

标签: google-apps-script gmail

我已经启动并运行了一个简单的自动电子邮件API。但是,我希望消息的“正文”要比未格式化的文本复杂得多。我的代码使用来自Google表格的数据,如下所示:

function doGet(e)
{
  var ss = SpreadsheetApp.openById('SpreadsheetID');
  var sheet = ss.getSheetByName("msg");
  var rows = sheet.getDataRange().getValues();
  Logger.log(e.parameter.name);
  var headings = rows[0].map(String.toLowerCase);
  Logger.log(headings);
  var holder = [];
  for(x in headings)
  {
    Logger.log(headings[x]);
    var output = (headings[x] in e.parameters) ? e.parameter[headings[x]] : 'none';
    if (headings[x] == 'id'){ output = getRandom();}
    if (headings[x] == 'timestamp'){ output = new Date();}
    holder.push(output);
  }
  Logger.log("The holder contains the following: " + holder);
  Logger.log(holder.length);
  sheet.appendRow(holder);

  var lRow = sheet.getLastRow();

  Logger.log('HEADING IS: ' + headings[1] + ' ' + lRow + ' ' + sheet.getRange(lRow, 2).getValue());

  var tempMsg = GmailApp.getDraft()[0].getMessage();

  MailApp.sendEmail(sheet.getRange(lRow, 2).getValue(),'mo@example.co.uk', 'Thank you for signing up!!', tempMsg.getBody());

  return ContentService.createTextOutput(JSON.stringify({
    'status' : 'success',
    'lastRow' : lRow ,
    'INFO' : holder
  }))
}

使用上述代码,我尝试给自己发送电子邮件,但没有收到电子邮件。如果我删除“ var tempMsg ...”,然后将MailApp.SendEmail的最终属性(tempMsg.getBody())替换为任何字符串-确实可以。

该想法是将我的Gmail草稿文件夹中的草稿电子邮件的正文用作新的自动电子邮件的正文。

我通过了api,并尝试了GmailApp.getDraft(id)之类的其他方法。

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我已经取得了一些进展。我设法学习了如何将html / css样式添加到电子邮件正文中,并且它可以工作。这不能完全回答问题,但是结果就是我想要的。

var htmlmsg = "<h1 style='text-align: center;'>This is the heading</h1><br/><p>Body Text</p>"; MailApp.sendEmail(sheet.getRange(lRow, 2).getValue(), 'Thank you for signing up!!', htmlmsg, {htmlBody:htmlmsg});