谷歌表单中的谷歌脚本编辑器-接受或拒绝电子邮件



我在谷歌表单中使用谷歌脚本编辑器应用程序脚本V8,并使用谷歌表单获取内容。我首先编写了测试代码,看看它是如何工作的,然后再将其与实际信息一起使用。我使用了以下教程https://www.youtube.com/watch?v=eduG0XZ9mDs.在"作为服务发布"的步骤中,我使用了发布作为Web应用程序部署,我可以创建提供的url并输入它,但它不是视频中的格式,也就是文档,而是提供了代码中提供的脚本url。代码运行并发送电子邮件,但一旦您单击"接受"或"拒绝",它就不会打开文档并标记批准。我在代码下面的图片中看到了一个错误。

function sendEmail(e) {
var email = e.values[2];  
var town = e.values[1];
var appemail = e.values[3];
var url ='https://script.google.com/macros/s/AKfycby8nLTy_qLYs2VIpv_pS1MF6mE1ZeVcYgrQN_6_6ewW95emGU_P/exec';
var approve = url + '&approval=true' + '&reply='+email;
var reject = url + '&approval=false' + '&reply='+email;
var html = "<body>"+
"<h2>This is a test.</h2>"+
town + " is where I am from!"+
"<p></p>"+ 
"<a href ="+ approve +">Approve</a>"+"<br />"+
"<a href ="+ reject +">Reject</a>"+"<br />"+
"</body>";
MailApp.sendEmail(appemail, "Approval Request", "Why no html?", {htmlBody: html});
}
function doGet(e) {
var answer = (e.parameter.approval == 'true') ? 'You are from Trujillo Alto' : 'Try again';
MailApp.sendEmail(e.parameter.reply, "Trujillo Alto', 'You are from "+ answer);
var app = UiApp.createApplication();
app.add(app.createHTML('<h2>An email was sent to '+ e.parameter.reply + answer ));
return app
}

在电子邮件中单击"接受或拒绝"按钮后的图像

这次修改怎么样?

为了删除您当前的错误消息,我认为在您的脚本中,查询参数的链接需要进行一些修改。

发件人:

var approve = url + '&approval=true' + '&reply='+email;
var reject = url + '&approval=false' + '&reply='+email;

收件人:

var approve = url + '?approval=true' + '&reply='+email;
var reject = url + '?approval=false' + '&reply='+email;

注:

  • 顺便说一句,当您修改Web应用程序的脚本时,请将Web应用程序重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请小心。

  • UiApp已被弃用。参考:另外,请小心。如果要显示'<h2>An email was sent to '+ e.parameter.reply + answer,请按如下方式进行修改。

    • 发件人:

      var app = UiApp.createApplication();
      app.add(app.createHTML('<h2>An email was sent to '+ e.parameter.reply + answer ));
      return app
      
    • 收件人:

      return HtmlService.createHtmlOutput('<h2>An email was sent to '+ e.parameter.reply + answer);
      

添加:

关于Exception: The parameters (String,String) don't match the method signature for MailApp.sendEmail. (line 26, file "Code")的错误消息,请修改如下。

在您的脚本中,"Trujillo Alto', 'You are from "+ answer不正确。在这种情况下,请修改为"Trujillo Alto", "You are from "+ answer

发件人:

MailApp.sendEmail(e.parameter.reply, "Trujillo Alto', 'You are from "+ answer);

收件人:

MailApp.sendEmail(e.parameter.reply, "Trujillo Alto", "You are from "+ answer);

注:

修改Web应用程序的脚本时,请将Web应用程序重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请小心。

最新更新