Отправить письмо на основе значения столбца = да - PullRequest
1 голос
/ 04 апреля 2019

У меня есть Google Sheet, где столбцы электронной почты и имени заполняются автоматически на основе формы, отправленной пользователем. Кроме того, у меня есть еще 2 столбца, в которых один столбец содержит список бесплатных кодов, а другой - подтверждение отправки электронного письма.

Так что на данный момент мне удается создать кнопку, по которой при нажатии на нее будут отправляться все электронные письма с бесплатным кодом.

Теперь

  1. Как я могу отправить электронное письмо только тому пользователю, у которого есть только значение "y" в столбце Статус?
  2. Кроме того, после отправки сообщений электронной почты значение «y» изменится на «d»? Чтобы позже, если я снова воспользуюсь этой функцией, она будет отправлена ​​только новым пользователям.

Это пример листа https://docs.google.com/spreadsheets/d/1KkShktBnJoW9TmIzNsAuAJb6XslBrMwJGEJu7xeF1fk/edit?usp=sharing

Это код

function sendArticleCountEmails() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.setActiveSheet(ss.getSheetByName("Test1"));
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getRange("A2:E1000");
  var data = dataRange.getValues();
  for (i in data) {
    var rowData = data[i];
    var emailAddress = rowData[1];
    var timeStamp = rowData[0];
    var recipient = rowData[2];
    var code = rowData[3];
    var status = rowData[4];
    var message = 'Dear ' + recipient + ',\n\n' + 'The giveaway code is ' + code;
    var subject = 'Here is your giveaway code!';
    MailApp.sendEmail(emailAddress, subject, message);
  }
}

/**
 * The event handler triggered when opening the spreadsheet.
 * @param {Event} e The onOpen event.
 */
function onOpen(e) {
  var spreadsheet = SpreadsheetApp.getActive();
  var menuItems = [
    {name: 'Send Emails', functionName: 'sendArticleCountEmails'}
  ];
  spreadsheet.addMenu('Send Emails', menuItems);
}

1 Ответ

1 голос
/ 04 апреля 2019

Просто добавьте оператор if следующим образом:

function sendArticleCountEmails() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.setActiveSheet(ss.getSheetByName("Test1"));
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getRange("A2:E1000");
  var data = dataRange.getValues();
  for (i in data) {
    var rowData = data[i];
    var emailAddress = rowData[1];
    var timeStamp = rowData[0];
    var recipient = rowData[2];
    var code = rowData[3];
    var status = rowData[4];
    var message = 'Dear ' + recipient + ',\n\n' + 'The giveaway code is ' + code;
    var subject = 'Here is your giveaway code!';
    if (status == "y") {
        MailApp.sendEmail(emailAddress, subject, message);
        var actualRow = parseInt(i)+2;
        sheet.getRange(actualRow,5).setValue("d");
        }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...