在发送之前预览Google表格电子邮件?

时间:2016-11-30 03:42:54

标签: email scripting google-sheets spreadsheet preview

我有一个很好用的Google脚本,可以从我的Google表格中获取数据,然后将这些信息作为HTML电子邮件发送出去。效果很好,但我很乐意在发送之前简单地预览电子邮件。必须可以在侧边栏或弹出窗口中显示HTML吗?我确信答案是在HtmlService.createHtmlOutput编码中,但我似乎无法使其工作。

有人可以通过提供编码示例来提供帮助吗?理想情况下,弹出窗口允许我查看它,然后一个按钮发送将很棒。

感谢。附在我希望预览的电子邮件代码中(删除了电子邮件回复详情)。

var EMAIL_SENT = "EMAIL_SENT";

function sendEmails3() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('LateEmail');
  var startRow = 3;  // First row of data to process
  var numRows = 45;   // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheet.getRange(startRow, 1, numRows, 40)
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[0];  // First column
    var message = row[8]+row[9]+row[10]+row[11]+row[12]+row[13]+row[14]+row[15]+row[16]+row[17]+row[18]+row[19]+row[20]+row[21]+row[22]+row[23]+row[24]+row[25]+row[26]+row[27]+row[28]+row[29]+row[30]+row[31]+row[32]+row[33]+row[34]+row[35]+row[36]+row[37];       // Second column
    var emailSent = row[7];     // Third column
            if (emailSent != EMAIL_SENT) {  // Prevents sending duplicates
      var subject = "Assignments for Tomorrow";
      MailApp.sendEmail(emailAddress, subject, message, {
        name: 'Assignments',
        replyTo: 'assignments@****.com',
        htmlBody: message
      });
      sheet.getRange(startRow + i, 8).setValue(EMAIL_SENT);
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
}

1 个答案:

答案 0 :(得分:1)

您可以创建一个简单的HTML页面并将电子邮件正文插入其中然后批准。您可能需要启动here: Extending Google Sheets,然后查看HTML Service: Create and Serve HTML作为起点。

如果您有具体问题,请创建新帖子并确保包含您的代码。