Отправка электронной почты с помощью скрипта Google - PullRequest
0 голосов
/ 29 января 2020

Может ли кто-нибудь помочь мне с отправкой электронной почты с помощью сценариев Google?

Здесь я сталкиваюсь с проблемой, заключающейся в том, что диапазон первого столбца (электронная почта) может go содержать до 1000 списков адресов электронной почты. , Хотя сейчас все работает нормально (на данный момент), как я могу сделать его динамическим c списком, который будет передаваться через мои списки адресов электронной почты в сценарий.

Код:

// This constant is written in column C for rows for which an email
// has been sent successfully.
var EMAIL_SENT = 'Email Success!';

/**
 * Sends non-duplicate emails with data from the current spreadsheet.
 */
function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Script (Beta)");


  var startRow = 2; // First row of data to process
  var numRows = 3; // Number of rows to process

  // Fetch the range of cells A2:B3

  var dataRange = sheet.getRange(startRow, 1, numRows, 3);
  // 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[1];         // Second column
    var emailSent = row[2];       // Third column


    if (emailSent !== EMAIL_SENT) { // Prevents sending duplicates

      var subject = '[Auto] The Process Has Not Yet Been Started';
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT);

      // Make sure the cell is updated right away in case the script is interrupted

      SpreadsheetApp.flush();
    }
  }
}

Do c Ссылка

1 Ответ

0 голосов
/ 30 января 2020

Чтобы сделать ваш диапазон динамическим c, вы можете использовать Sheet.getLastRow () , который возвращает позицию последней строки с содержимым.

Предполагая, что функция sendEmails2 - это то, что вы используете для этого, вам просто нужно изменить переменную numRows. Вам нужно изменить эту строку:

var numRows = 3; // Number of rows to process

На эту:

var numRows = sheet.getLastRow() - startRow + 1;

Ссылка:

Надеюсь, это поможет.

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