Есть некоторые проблемы с вашим скриптом, которые необходимо устранить, чтобы он работал.
Прежде всего, ваше условие if
ничего не делает. Он имеет пустой возврат (?) И затем закрывается. Код, отправляющий электронное письмо, вышел из условия, поэтому он всегда будет работать.
Во-вторых, объявление Date возвращает строку, подобную этой: Fri Mar 13 12:30:50 GMT+01:00 2020
, так что это бесполезно, если даты в вашем листе не будут также указывать часы, минуты и секунды (пропустить одну секунду и электронное письмо не будет отправлено).
Исправления:
Получите данные листа с помощью getDisplayValues () . В противном случае сценарий получит дату в совершенно другом формате, чем лист:
const data = dataRange.getDisplayValues();
В моем листе даты выглядят так: 13-03-2020
, но вы можете использовать любой другое формат .
Форматировать дату текущего времени. Как я уже говорил, new Date()
возвращает длинную строку. Вы можете отформатировать его с помощью класса Utilities , чтобы он совпадал с датами, указанными в листе:
const currenttime = Utilities.formatDate(new Date(), 'UTC', 'dd-MM-yyyy');
Измените условие
if
, чтобы оно охватывало остальную часть кода. Кроме того, удалите
return
, поскольку он ничего не делает:
if (date == currenttime || date2 == currenttime || date3 == currenttime) {
const greeting = 'Dear ' + recipient + ',\n'
const customerMessage = 'Please follow up with ' + Notes + ' By today!';
const greatJobMessage = 'Thanks';
const message = [greeting, customerMessage, greatJobMessage].join('\n');
const subject = 'Reminder to Follow up!';
MailApp.sendEmail("ecmoranavila@gmail.com", subject, message)}
});
}