Я создал очень простую форму с несколькими вопросами "Да / Нет", используя мою недавно созданную учетную запись G-Suite Enterprise, которая отправляет электронное письмо при запуске OnSubmit. Следующий код работает просто отлично.
function OnSubmit(e) {
//Get responses from current user on form
var AreYouSick = e.namedValues["Are you sick?"];
var FullName = e.namedValues["Name"];
//determine email message based on if the user passed or failed the survey
if(AreYouSick == "No")
{
var subject = "Testing Google Forms Email - PASS";
var textBody = "Thank you " + FullName + " for completing the survey. \n\n";
var BodyMsg = "Thank you <strong>" + FullName + "</strong> for completing the survey.";
}
else
{
var subject = "Testing Google Forms Email- FAIL";
var textBody = "Thank you " + FullName + " for completing the survey\n\n";
var BodyMsg = "Thank you <strong>" + FullName + "</strong>";
}
var emailTo = e.namedValues["Email Address"];
var emailCC = "MyPersonalEmail@me.com";
var options = { htmlBody: BodyMsg, cc: emailCC, name: "Testing" };
if(emailTo !== undefined){
GmailApp.sendEmail(emailTo, subject, textBody, options);
}
}
Однако я хотел упростить его, извлекая все ответы из формы, а затем проверяя, был ли какой-либо ответ «Да», и если они были, отправьте другое электронное письмо. У меня есть форма для сбора адресов электронной почты, чтобы я мог использовать getRespondentEmail ()
function OnSubmit(e) {
var FullName = e.namedValues["Name"];
//var itemResponses = e.response.getItemResponses();
var itemResponses = e.response.getResponses();
if(itemResponses.indexOf("Yes") > -1)
{
//respondent failed prescreening survry
var subject = "Testing Google Forms Email- FAIL";
var textBody = "Thank you " + FullName + " for completing the survey\n\n";
var BodyMsg = "Thank you <strong>" + FullName + "</strong>";
}
else
{
//respondent passed prescreening survey
var subject = "Testing Google Forms Email - PASS";
var textBody = "Thank you " + FullName + " for completing the survey. \n\n";
var BodyMsg = "Thank you <strong>" + FullName + "</strong> for completing the survey.";
}
var emailTo = e.response.getRespondentEmail();
var emailCC = "MyPersonalEmail@me.com";
var options = { htmlBody: BodyMsg, cc: emailCC, name: "Testing" };
if(emailTo !== undefined){
GmailApp.sendEmail(emailTo, subject, textBody, options);
}
}
Приведенный выше код получает две ошибки:
1) var emailTo = e.response.getRespondentEmail ( ); Возвращает следующую ошибку: TypeError: Невозможно прочитать свойство 'getRespondentEmail' с неопределенным значением в OnSubmit (код: 35: 28)
2) var itemResponses = e.response.getResponses (); Возвращает следующую ошибку: TypeError: Невозможно прочитать свойство 'getResponses' из неопределенного в OnSubmit (код: 9: 34)