Я пытаюсь создать сценарий приложений Google с возможностью планировать отправку писем в определенные моменты времени c на основе значения в электронной таблице. Будет несколько ячеек даты и времени, в зависимости от которых будет выполнен триггер. Я попытался добавить триггер программно, используя ScriptApp.newTrigger()
, но я не получаю, когда эта функция создает, он должен работать. Любое понимание того, как go об этом, было бы замечательно.
Редактировать: Создал триггер, когда пользователь отправляет форму следующим образом.
function saveForm(form) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Test');
const now = Utilities.formatDate(new Date(), "GMT+5:30", "yyyy-MM-dd");
const newRow = [now, form.cid, form.custName, form.custNumber, form.goodsType, form.tonnage, form.area, form.completeAddr, `${now} - ${form.time}`, form.comments];
sheet.appendRow(newRow);
const customDate = new Date(`${now}T${form.time}`);
ScriptApp.newTrigger('dispatchMail').timeBased().at(customDate).create();
return 'Data saved successfully';
}
Теперь функция, которая отправляет почту
function dispatchMail() {
const now = Utilities.formatDate(new Date(), "GMT+5:30", "yyyy-MM-dd");
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Test');
const data = sheet.getDataRange().getValues();
const normalized = {
'Mark': [],
'Jack': [],
'Chloe': [],
'Robin': [],
'Unassigned': []
};
for(let i=1; i<data.length; i++) {
normalized[data[i][10]] = normalized[data[i][10]].concat([data[i]]);
}
//start our mail dispatch here once we have aggregated the data
}
Но теперь проблема в том, что у вас нет идеи, кому отправлять почту. например. Пользователь отправляет форму с почтовым триггером, запланированным для Марка в 14:00 и для Джека в 16:00. Теперь в функции отправки почты, как определить, что это письмо отправлено Марку или Джеку. Я не вижу способа передачи параметров в функцию триггера. Любой способ go об этом?