Скрипт формы Google для отправки электронной почты - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть некоторые проблемы, связанные с этим сценарием для отправки электронного письма после отправки формы Google.

Итак, когда я запускаю свой код, я получаю следующее сообщение об ошибке: ReferenceError: getValues ​​is not определенный на onFormSubmit

Ниже вы можете найти скрипт

function onFormSubmit(e) {
  Logger.log("[METHOD] onFormSubmit");
  
  sendEmail(e.range);
}

function sendEmail(range) {
  Logger.log("[METHOD] sendEmail");

  // FETCH SPREADSHEET //
  var values = range.getValues();
  var row = values[0];

  // EXTRACT VALUES //
  var DateRequest = values[0]
  var TypeRequest = values[1]
  var StartDate = values[2]
  var EndDate = values[3]
  var Observation = values[4]
  var TLemail = values[5]

  // CLEAN VARIABLES //
  if (Observation.length == 0) Explain = "None";
  
  // PREPARE EMAIL //
  var emailRecipients = +TLemail+"@google.com";
  var emailSubject = TypeRequest;
  var emailBody = "<h3>Vacation Request:</h3><hr /> \
  <p> \
  <strong>Type or request:</strong><br /> \
  "+TypeRequest+" \
  </p><p> \
  <strong>Date of Request:</strong><br /> \
  "+DateRequest+" \
  </p><p> \
  <strong>Start Date:</strong><br /> \
  "+StartDate+" \
  </p><p> \
  <strong>End Data:</strong><br /> \
  "+EndDate+" \
  </p><p> \
  <strong>Aditional comment:</strong><br /> \
  "+Observation+" \
  </p><p> \
  </p>";


  // SEND EMAIL //
  MailApp.sendEmail({
  to: emailRecipients,
  subject: emailSubject,
  htmlBody: emailBody
 });
}

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

Вы не определили range нигде в своем коде

  • Либо вы определяете это вручную
  • Или вы используете объекты событий триггер onFormSubmit обеспечивает

Один из вариантов будет использовать объект события range:

function onFormSubmit(e) {
 var values = e.range.getValues();

, который будет эквивалентен

function onFormSubmit(event) {
  var values = event.range.getValues();

или

function onFormSubmit(hello) {
  var values = hello.range.getValues();
  • Или, что намного проще, вы напрямую получаете e.values

Итак:

function onFormSubmit(e) {
  var values = e.values;
  var DateRequest = values[0];
  var TypeRequest = values[1];
  ...
0 голосов
/ 24 апреля 2020

Заменить:

var values = range.getValues();

на

var values = e.range.getValues();
...