如何使用Google Apps脚本在电子邮件中包含自定义消息

时间:2019-05-27 21:02:48

标签: google-apps-script sendmail

我编写了以下功能,该功能旨在检查网页的状态,然后将结果通过电子邮件发送给已定义的收件人(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 个答案:

答案 0 :(得分:2)

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)的情况相同,请以相同的方式进行修改。

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。