ОБНОВЛЕНИЕ: теперь у меня есть рабочий скрипт ... в основном.Письма отправляются без ошибок, за исключением случаев, когда я добавляю CC: в строку sendEmail.По какой-то причине это поле продолжает отображаться как «неопределенное», когда скрипт вызывает его.Я думаю, что это может быть связано с тем фактом, что для его расчета используется формула, отсюда и функция Utilites.sleep.
Мне действительно нужно вычислить этот адрес электронной почты, потому что он изменитсяна основе формы ответов.
function sendEmails2(e) {
Utilities.sleep(5000);
SpreadsheetApp.flush();
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getSheetByName('Smoke');
var dataRange = sheet.getRange(sheet.getLastRow(), 1, 1, 19);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var dispatcherName = e.namedValues["Dispatcher Name"];
var dateofReport = e.namedValues["Date of Report"];
var timeofReport = e.namedValues["Time of Report"];
var descriptionofSmoke = e.namedValues["Description of Fire/Smoke"];
var location = e.namedValues["Location"];
var comments = e.namedValues["Comments"];
var nameofCaller = e.namedValues["Name of Caller/Reporting Party"];
var callerAgency = e.namedValues["Caller Agency or Organization"];
var callbackNumber = e.namedValues["Callback Number (if given)"];
var dispatchCenter = e.namedValues["Dispatch Center(s) Notified"];
var notificationTime = e.namedValues["Time of Notification"];
var personNotified = e.namedValues["Name of Person(s) Receiving Notification"];
var addlNotification = e.namedValues["Additional Notification(s) Made (if applicable)"];
var addlnotificationTime = e.namedValues["Time of Additional Notification(s)"];
var emailSent = e.namedValues["EMAIL_SENT"];
var emailAddress = e.namedValues["Email"];
var EMAIL_SENT = "EMAIL_SENT";
var ccAddress = row[16];
var subject = 'ACTION REQUIRED: SMOKE REPORT';
var message = 'Dispatcher Name: '+dispatcherName+'\n'+
'Date of Report: '+dateofReport+'\n'+
'Time of Report: '+timeofReport +'\n'+'\n'+
'Description of Fire/Smoke: '+descriptionofSmoke +'\n'+
'Location: '+location +'\n'+
'Comments: '+comments +'\n'+'\n'+
'Name of Caller/Reporting Party: '+nameofCaller +'\n'+
'Caller Agency or Organization: '+callerAgency +'\n'+
'Callback Number (if given): '+callbackNumber +'\n'+'\n'+
'Dispatch Center(s) Notified: '+dispatchCenter+'\n'+
'Time of Notification: '+notificationTime+'\n'+
'Name of Person(s) Receiving Notification: '+personNotified +'\n'+'\n'+
'Additional Notification(s) Made (if applicable): '+addlNotification+'\n'+
'Time of Additional Notification(s): '+addlnotificationTime;
if (emailSent != "EMAIL_SENT") { // Prevents sending duplicates
Utilities.sleep(3000);
MailApp.sendEmail(emailAddress,subject, message,{cc: ccAddress});
sheet.getRange(i+1, 19).setValue("EMAIL_SENT");
Я посмотрел и посмотрел здесь и не нашел точного решения.Мой скрипт не будет отправлять электронные письма по триггеру «Отправка формы», но я также не получаю сообщение об ошибке.Я не эксперт в этом, поэтому я уверен, что это простая проблема, которую я просто не вижу.Примечание. В столбцах 16 и 17 на листе содержатся 2 формулы массива, которые необходимо заполнить до запуска сценария.
Заранее спасибо!
https://docs.google.com/spreadsheets/d/1c4pR78gYE8xpWGiWVjX627YNWftViQBHSP1CR6C_2AI/edit?usp=sharing
function OnSubmit(e) {
SpreadsheetApp.flush();
var sheet = SpreadsheetApp.openById('1c4pR78gYE8xpWGiWVjX627YNWftViQBHSP1CR6C_2AI').getSheetByName('Smoke Reports');
var dataRange = sheet.getRange(sheet.getLastRow(), 1, 1, 18);
var data = dataRange.getValues();
var EMAIL_SENT = "EMAIL_SENT";
var startRow = 2
var row = data[0];
for (i in data) {
var rowData = data[i];
var emailAddress = rowData[15];
var dispatcherName = rowData[1];
var dateofReport = rowData[5];
var timeofReport = rowData[6];
var descriptionofSmoke = rowData[7];
var location = rowData[8];
var comments = rowData[9];
var nameofCaller = rowData[2];
var callerAgency = rowData[3];
var callbackNumber = rowData[4];
var dispatchCenter = rowData[10];
var notificationTime = rowData[12];
var personNotified = rowData[11];
var addlNotification = rowData[13];
var addlnotificationTime = rowData[14];
var emailSent = rowData[17];
var subject = 'ACTION REQUIRED: SMOKE REPORT';
var message = 'Dispatcher Name:'+ " " +dispatcherName +"\n"+
'Date of Report:'+ " "+dateofReport +"\n"+
'Time of Report:'+ " "+timeofReport +"\n\n"+
'Description of Fire/Smoke:'+ " "+descriptionofSmoke +"\n"+
'Location:'+ " "+location +"\n"+
'Comments:'+ " "+comments +"\n"+"\n"+
'Name of Caller/Reporting Party:'+ " "+nameofCaller +"\n"+
'Caller Agency or Organization:'+ " "+callerAgency +"\n"+
'Callback Number (if given):'+ " "+callbackNumber +"\n"+"\n"+
'Dispatch Center(s) Notified:'+ " "+dispatchCenter +"\n"+
'Time of Notification:'+ " "+notificationTime +"\n"+
'Name of Person(s) Receiving Notification:'+ " "+personNotified +"\n"+"\n"+
'Additional Notification(s) Made (if applicable):'+ " "+addlNotification +"\n"+
'Time of Additional Notification(s):'+ " "+addlnotificationTime
;
if (emailSent != EMAIL_SENT && emailAddress) { // Prevents sending duplicates
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 17).setValue(EMAIL_SENT);
}
}
}