Триггер электронной почты для листа Google, когда определенный столбец обновляется до «ДА», а идентификаторы электронной почты берутся из другого столбца на том же листе - PullRequest
2 голосов
/ 14 октября 2019

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

Например, у меня много идентификаторов электронной почтыприсутствует в столбце C [не может упомянуть конкретный диапазон, так как данные будут добавляться каждый день], а когда значения столбца H помечены как «Да», тогда должен быть взят почтовый идентификатор из соответствующей строки в столбце C и отправлено электронное письмона этот идентификатор. Я пробовал несколько сценариев, но он не работает.

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Включите службу Gmail для своего скрипта

  1. Перейдите на свой лист и нажмите Инструменты> Редактор скриптов
  2. В редакторе скриптов выберите Ресурсы> Расширенные службы Google ... включить«Gmail API» и нажмите «ОК»

Код

Скопируйте и вставьте следующий код (и внесите любые изменения, если необходимо) в редактор сценариев вашего листа:

function sendEmail(dest, data) {
  var messageBody = 'Hello, there has been a new release:\n\n' + JSON.stringify(data);
  GmailApp.sendEmail(dest, 'Automated email from sheet', messageBody);
}

function onEditTrigger(e) {
  var range = e.range;
  if (range.columnStart == 8 && e.value == 'YES') {
    // Prepare the email
    var row = range.getSheet().getRange(e.range.rowStart, 1, 1, 8).getValues()[0];
    var headers = range.getSheet().getRange(1, 1, 1, 8).getValues()[0];

    var dest = row[1];
    var data = {};
    for (var i=0; i<8; i++) {
      data[headers[i]] = row[i];
    }

    sendEmail(dest, data);
  }
}

Код получит 8 первых столбцов строки, которые были изменены, и отправит их на адрес электронной почты, указанный в столбце B, вместе с заголовками в формате JSON. Вы можете увидеть таблицу, которую я использовал для тестирования здесь . Полученное письмо выглядит следующим образом:

enter image description here

Установите функцию onEditTrigger в качестве устанавливаемого триггера

  1. Из листаВ редакторе сценариев щелкните значок часов (« Триггеры текущего проекта »)
  2. Нажмите кнопку Добавить триггер
  3. Выберите onEditTrigger функционирует как функция, которую нужно запустить, и при редактировании как тип события ( пример конфигурации триггера ) и нажимает кнопку сохранения

Теперь каждый раз, когдаЛист будет изменен, код, указанный выше, будет запущен и, если необходимо, отправит сообщение.

1 голос
/ 14 октября 2019
function onEdit(e) {
  if(e.range.getSheet().getName()!='Sheet Name Used in this Operation') return;
  if(e.range.columnStart==8 && e.value=="YES") {
    //Send email
  } 
}

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

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