首页 > 解决方案 > 通过 google 电子表格发送 HTML 时事通讯电子邮件

问题描述

我有一个每天更新的电子表格。斜体值每天更新,粗体值是静态标签。

日期: 2019 年9 月 20 日

停车场车数: 105

最后入场时间: 09:21 AM

最后退房: X先生

我已经设置了一个脚本,通过 googlespreadsheet 向用户发送包含更新的电子邮件。但是用户收到的电子邮件是这样的纯文本:

日期:,9/20/2019,停车场车数:,105,最后入场时间:,09:21 AM,最后退房时间:,Mr.X,,,,,

我怎样才能让这个代码发送更多用户友好的带有表格或彩色字体等的电子邮件,类似于每日时事通讯?

标签: htmlgoogle-apps-scriptgoogle-sheetsgoogle-sheets-apinewsletter

解决方案


因此,根据要求,此脚本会将您的工作表数据转换为 HTML 表格,然后将其作为邮件正文通过电子邮件发送(您可以根据需要自由地进一步修改 CSS)

假设您的工作表看起来像这样 -

测试表

你想要的输出是这样的 -

输出电子邮件

您可以使用以下代码并根据需要进行必要的更改 -

var SheetID = "YourSheetIDGoesHere"; //replace with your Spreadsheet SheetID
var sheetName = "YourSheetNameGoesHere"; //replace with your Sheet Name
var sheet = SpreadsheetApp.openById(SheetID).getSheetByName(sheetName);


function sendUpdate() {
  var range = sheet.getDataRange();
  var values = range.getDisplayValues();
  var weights = range.getFontWeights();
  var rowDisplay = range.getLastRow();
  var columnDisplay = range.getLastColumn();

  var message = '';
  message = message + "<table rules='all' border='3' style='border-color: #666;' cellpadding='5'>\n";
  for (var i = 0; i < rowDisplay; i++ ) {  
    message = message + "<tr>\n";
    for (var j = 0; j < columnDisplay; j++ ) {
      message = message + "<td style='text-align: 'left'; font-weight: " + weights[i][j] + ";'>" + values[i][j]   + "</td>\n";
    } // ends the for loop for each column
    message = message + "</tr>\n"; 
  }
  message = message + "</table>\n";

  MailApp.sendEmail(
    {
      to: Session.getActiveUser().getEmail(), //this will send the email to whoever is running the script; replace it with the desired email IDs
      subject: "Subject Goes Here",
      htmlBody: message
    }
  );
}

受这篇文章的启发在这里


推荐阅读