У меня есть код, в котором есть некоторые операторы if / else if для определения причины закрытия формы Google.Я хочу передать эту причину другой функции, которая отправит электронное письмо с уведомлением о том, что форма закрылась и почему.Я не знаю, почему причина, которая должна быть строкой, не передается функции, отправляющей электронную почту.
Я вообще не имею дело с формой в этом коде.Для простоты я открыл новый автономный скрипт, не связанный ни с какой формой или листом Google, чтобы проверить только эту часть (определить причину и отправить электронное письмо).Вот код:
Первая функция для определения причины закрытия формы и вызова второй функции для отправки электронной почты:
function FindReason() {
var Day1Seats = 5;
var Day2Seats = 5;
var Day1Responses = 6;
var Day2Responses = 1;
var FormClose = false;
if(Day1Responses >= Day1Seats) {
var reason = "All seats taken for Day 1";
SendAnEmail(reason);
}
else if(Day2Responses >= Day2Seats) {
var reason = "All seats taken for Day 2";
SendAnEmail(reason);
}
else if(FormClose) {
var reason = "Form close date";
SendAnEmail(reason);
}
}
Вторая функция, которая отправляет электронную почту (адрес электронной почты, очевидно, изменен для конфиденциальности):
function SendAnEmail(closereason) {
var recipientTO = "name@example.com";
var subject = "This is the subject";
//var closereason = "All seats taken for Day 1";
MailApp.sendEmail({
to: recipientTO,
subject: subject,
htmlBody: (new Date()) + "<br>Your form has been closed because: <br>" + closereason + "<br>End of message."
});
}
Когда я запускаю FindReason (), я получаю электронное письмо, но тело не отображает причину.Это пример электронных писем, которые я получаю:
Вс 24 февраля 2019 12:26:01 GMT-0800 (PST)
Ваша форма была закрыта, потому что:
undefined
Конецсообщение.
Я не знаю, почему причина отображается как неопределенная.Я попытался установить причину внутри функции SendAnEmail (строка, которая была закомментирована), и она работала правильно, но мне нужно иметь возможность изменить причину.
Редактировать: Теперь это работает.Оказывается, кнопка «Выполнить» была настроена на запуск функции «SendAnEmail», а не функции «FindReason».Спасибо всем, кто предложил свои предложения.