как добавить пользовательское сообщение в электронную почту с помощью скрипта Google Apps - PullRequest
2 голосов
/ 28 мая 2019

Я написал следующую функцию, которая предназначена для проверки состояния веб-страницы, а затем отправки результатов по электронной почте определенным получателям (toList).

function testStatusNotif() {
  var url = hostname + "/monitoring";
  var listTo = listGroup;
  var response = UrlFetchApp.fetch(url, params);
  if(response.getResponseCode() !== 200) {
    var message = 'Failed (test): response ' + response.getResponseCode();
    MailApp.sendEmail(listTo, "check the platform is up and operational", message);
  } else {
    var message = 'Passed (test): response ' + response.getResponseCode();
    MailApp.sendEmail(listTo, "trade platform is ready to open", message);
  }
}

, пока эта функция работает как естьЯ хочу разделить шаги sendMail на их собственные функции.Ключевой драйвер заключается в том, что я хочу обслуживать больше сценариев, а также иметь разных получателей и сообщения для каждого из сценариев.я также хочу повторно использовать функции sendMail для других тестов.однако, когда я разделяю их, я получаю undefined вместо message.

вот пример проверки, которая возвращает undefined.

function testStatusNotif() {
  var url = hostname + "/monitoring";
  var response = UrlFetchApp.fetch(url, params);
  if(response.getResponseCode() !== 200) {
    var message = 'Failed (test): response ' + response.getResponseCode();
    failEmail(message);
  } else {
    var message = 'Passed (test): response ' + response.getResponseCode();
    passEmail(message);
  }
  return message;
}

function failEmail() {
  var listTo = listFails;
  MailApp.sendEmail(listTo, "check the platform is up and operational", sampleCheck.message);
}

Может кто-нибудь сказать мне, где я иду не так?

1 Ответ

2 голосов
/ 28 мая 2019

Причина undefined в том, что значение не принимается функцией failEmail.Если вы хотите указать message failEmail(message) и passEmail(message), измените их следующим образом.

С:

function failEmail() {
  var listTo = listFails;
  MailApp.sendEmail(listTo, "check the platform is up and operational", sampleCheck.message);
}

Кому:

function failEmail(message) { // Modified
  var listTo = listFails;
  MailApp.sendEmail(listTo, "check the platform is up and operational", message); // Modified
}

Примечание:

  • Насчет объекта sampleCheck, я не уверен из вашего сценария.Поэтому я изменил на message.
  • . Хотя я не уверен насчет функции passEmail(message), если ситуация с failEmail(message) такая же, пожалуйста, измените так же.

Если я неправильно понял ваш вопрос, и это был не тот результат, которого вы хотите, я прошу прощения.

...