Отправьте ответ по электронной почте, когда форма Google заполняется в определенное рабочее время

#google-apps-script

Вопрос:

У нас есть запросы / билеты, поступающие от команд, которые находятся в разных странах. И эти запросы отправляются через формы Google. Эти запросы / билеты затем отбираются в одном месте и обрабатываются

Есть 5-часовое нерабочее окно с 00:00 утра до 5 утра. В течение этого времени мы также получаем запросы из офисов.

Есть ли способ, если форма будет отправлена в нерабочее время, отправителю запроса по электронной почте будет отправлено уведомление о том, что мы закрыты, и отправленный запрос будет выбран, как только мы откроемся?

Есть возможность запустить скрипт. Но я получаю ошибку.

Если необходимо запустить сценарий, как это возможно в зависимости от требований?

Спасибо

Комментарии:

1. Вот сценарий, который я создал : функция SendEmail(e) { //response //getRespondentEmail() var html = HtmlService.createTemplateFromFile(«email.html»); var htmlText = html.evaluate().getContent(); //logger.log(htmlText); var по электронной почте = e.response.getRespondentEmail(); var тема = «Спасибо за заполнение формы»; var textBody = «Для этого письма требуется поддержка HTML, убедитесь, что вы опн»; параметры var ={ HTMLBody: htmlText }; если (по электронной почте !== не определено){ GmailApp.SendEmail(адрес электронной почты, тема, текстовое поле, параметры);}}

2. Но получил следующую ошибку : Ошибка типа: Не удается прочитать свойство «ответ» неопределенной enter code here почты @ Code.gs:8 enter code here

3. Размещение вашего сценария в вашем вопросе делает его гораздо более читабельным, и более вероятно, что мы его прочитаем. Что касается меня, то я его не читал и не собираюсь читать, если вы не разместите его красиво в своем вопросе. формат кода

Ответ №1:

Вы можете использовать триггер onFormSubmit для электронных таблиц. Он предоставляет всю информацию для каждой отправки с помощью именованных значений, которые являются объектом или значениями, представляющими собой массив. В качестве устанавливаемого триггера он способен выполнять операции, требующие разрешения, например, отправлять электронные письма.

Объект события onFormSubmit

На этом сайте есть много примеров того, как это делается.

Ответ №2:

Вы столкнетесь с такой ошибкой, когда попытаетесь запустить свой код вручную с помощью редактора сценариев, потому что ваш объект события не существует.

Я попытался запустить ваш код, используя отправку в форме в самой форме Google, и он был успешно запущен, когда я отправил форму в качестве примера. События Google Форм — Форма отправки

Использование устанавливаемого триггера отправки в форме в Google формах:

введите описание изображения здесь

Пример Кода:

 function sendEmail(e) { 
  //response //getRespondentEmail() 
  var html = HtmlService.createTemplateFromFile("email.html"); 
  var htmlText = html.evaluate().getContent(); 
  //logger.log(htmlText); 
  var emailTo = e.response.getRespondentEmail(); 
  var subject = "Thanks for filling the form"; 
  var textBody = "This email requires HTML support make sure you opn"; 
  var options ={ htmlBody: htmlText }; 

  var today = new Date();
  Logger.log(today.getHours())
  if (emailTo !== undefined amp;amp; today.getHours() < 5){ 
    GmailApp.sendEmail(emailTo, subject, textBody, options);
  }
}
 

Внесенные изменения:

  • Я просто включаю дополнительное условие для проверки текущего времени, когда была отправлена форма, чтобы проверить, находится ли она в пределах с 00:00 до 05:00. Обратитесь к методу JavaScript getHours()
  • В этом примере кода электронное письмо будет отправлено только в том случае, если форма была отправлена с 00:00 до 04:59. Вы можете настроить условие в зависимости от ваших предпочтений, если хотите. Вы также можете включить проверку минут с помощью метода JavaScript getMinutes()

Примечание:

  • Вы можете отлаживать устанавливаемые триггеры, добавляя журналы в свой код и проверяя Executions вкладку в редакторе сценариев приложений.

Комментарии:

1. Спасибо, что это работает сейчас и решено. Сейчас мы получаем автоматические ответы. Но просто вопрос, как мне изменить адрес электронной почты с на? Когда автоматическое электронное письмо отправляется отправителю запроса. Можем ли мы иметь идентификатор электронной почты DL вместо лица, создавшего или сохранившего сценарий?

2. Что ты имеешь в виду?

3. Как изменить идентификатор электронной почты from на идентификатор почтового ящика DL. Вместо идентификатора электронной почты пользователя (пример : если я хочу показать, что уведомление по электронной почте пришло с этого идентификатора Ticket@mm.com.

4. Вы можете добавить from параметр в свои предварительные параметры отправки электронной почты. Но вам необходимо настроить свой идентификатор электронной Ticket@mm.com почты в качестве псевдонима электронной почты для вашей электронной почты. Вы можете проверить, был ли успешно настроен ваш псевдоним электронной почты, когда вы используете GmailApp.getAliases()

5. Если мы ответили на ваш вопрос, пожалуйста, нажмите кнопку «Принять». Поступая таким образом, другие люди в сообществе, у которых могут быть те же проблемы, что и у вас, будут знать, что их проблемы могут быть решены. Если кнопка «Принять» недоступна для вас, не стесняйтесь сообщить мне об этом. Как принять ответ