Настройка формата ячейки / сценария при отправке писем из Gsheets? - PullRequest
2 голосов
/ 21 апреля 2020

Кто-нибудь знает, как настроить формат тела письма в скрипте или в формуле ячейки при отправке письма с листов Google?

Первое вложение - это неправильное тело письма, которое отправляет скрипт .

И второе вложение - правильный формат тела письма. Мне нужен скрипт для отправки .

Код ниже:

// has been sent successfully.
var EMAIL_SENT = 'EMAIL_SENT';

/**
 * Sends non-duplicate emails with data from the current spreadsheet.
 */
function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2; // First row of data to process
  var numRows = 1000; // Number of rows to process
  // Fetch the range of cells A2:D1000
  var dataRange = sheet.getRange(startRow, 1, numRows, 1000);
  // 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 subject = row[3]; // Second column
    var message = row[3]; // Third column
    var emailSent = row[3]; // Fourth column
    if (emailSent !== EMAIL_SENT) { // Prevents sending duplicates
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 4).setValue(EMAIL_SENT);
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
}

1 Ответ

1 голос
/ 27 апреля 2020

Проблема:

Когда в тело письма добавляется простой текст, разрыв строки добавляется после ~ 78 символов , как вы можете видеть, например, здесь: Gmail API - перенос простого текста .

Чтобы избежать этого, вам следует добавить тело HTML вместо простого текста , используя MailApp.sendEmail (получатель, тема , body, options) .

Также вам необходимо добавить HTML разрывы строк (<br>), если вы хотите сохранить разрывы строк от значения ячейки ( \n). Для этого вы можете использовать String.prototype.replace () .

Решение:

Заменить это:

MailApp.sendEmail(emailAddress, subject, message);

Для этого:

MailApp.sendEmail(emailAddress, subject, "", {
  htmlBody: message.replace(/\n/g,'<br>')
});

Ссылка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...