Я хочу написать программу листов Google, которая будет отправлять электронное письмо, когда я попаду в определенный диапазон дат сегодня - PullRequest
0 голосов
/ 30 мая 2020

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

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
function checkBirthday() {

  var Avals = ss.getRange("B1:B").getValues();
  var Alast = Avals.filter(String).length;
  var today = new Date();
  for (var i = 2; i<Alast; i++) {
    //does not function as expected
    if (DateDif(today, sheet.getRange(i, 2)) == 3) {
      var subject = sheet.getRange(i,1) + "'s Birthday";
      var message = sheet.getRange(i,1) + "'s birthday is coming up in 3 days on " + sheet.getRange(i,2);
        MailApp.sendEmail("email1", subject, message);

    }
  }  
}

. Я понимаю, что функции datedif не существует, это просто псевдокод для того, что я sh должен выполнить sh. Я новичок в этом, поэтому мне просто не хватает функции, которая могла бы выполнить это sh? Или что-то посложнее?

1 Ответ

0 голосов
/ 05 июня 2020

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

Образец электронной таблицы - https://docs.google.com/spreadsheets/d/1uICgapzf-8Svw_epEQcNqOwYyXWfzux2yHltFaegtBc/edit?usp=sharing

Оттуда вы просто просматриваете сценарий своего приложения в столбце G и, если он ИСТИНА, отправьте электронное письмо. Установите задачи cron на каждый день, и вы готовы к go.

Если вы хотите ТАКЖЕ отправить текстовое sms себе или имениннику, вы можете проверить мой учебник для соединения листов с twilio

...