Отправка электронных писем в формате HTML через электронную таблицу Google - PullRequest
1 голос
/ 20 сентября 2019

У меня есть таблица, которая обновляется ежедневно.значения курсивом обновляются ежедневно, значения, выделенные жирным шрифтом, являются статическими.

Дата: 9/20/2019

Количество машин на стоянке: 105

Последняя запись: 09: 21 AM

Последняя проверка: Mr.X

Я настроил скрипт для отправки пользователям электронной почты с обновлениями через googlespreadsheet.Но электронное письмо, которое получают пользователи, представляет собой простой текст, подобный следующему:

Дата:, 9/20/2019, Количество автомобилей на стоянке:, 105, Последняя запись:, 09: 21 AM, Last Check out:, Mr.X ,,,,,

Как я могу сделать этот код для отправки более удобного для пользователя электронного письма с таблицей или красочными шрифтами и т. Д., Похожего на ежедневную новостную рассылку?

1 Ответ

1 голос
/ 22 сентября 2019

Итак, учитывая требование, этот скрипт преобразует ваши данные листа в таблицу HTML, а затем отправляет их в виде тела сообщения по электронной почте (вы можете дополнительно изменить CSS по мере необходимости)

Предполагая, что ваш лист выглядит примерно так -

Test Sheet

И что ваш желаемый результат выглядит примерно так -

Output Email

Вы можете использовать следующий код и вносить необходимые изменения по мере необходимости -

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
    }
  );
}

Вдохновленный этой статьей здесь .

...