使用谷歌脚本发送没有服务器的电子邮件:无法打开文件错误

时间:2017-10-29 06:15:29

标签: javascript html email google-apps-script html-form

我想使用Google脚本向 target@example.com 位置发送电子邮件 。我跟着这个 - https://github.com/dwyl/html-form-send-email-via-google-script-without-server 在我的网站上设置整个功能。

我的网站上有一个html表单,我想在有人点击我网站上的提交按钮时发送电子邮件

这是表单的html -



<div id="content">
		<h1>Contact Us</h1>
		<h4>Fill out the form below and a representative will
contact you shortly.</h4>
		<form id="gform" method="POST" action="https://script.google.com/macros/u/1/s/AKfycbwYbJ5WvIRmizYMr8MMtNVdIodpdYcJHz4DuO97Oxnuw4lnu3k/exec">
  <div class="form-group">
    <label for="exampleInputEmail1">Your Name (required)</label>
    <input type="text" class="form-control" id="exampleInputEmail1" required>
  </div>
  <div class="form-group">
    <label for="exampleInputPassword1">Your Email (required)</label>
    <input type="Email" class="form-control" id="exampleInputPassword1" required>
  </div>
  <div class="form-group">
    <label for="exampleInputPassword1">Subject</label>
    <input type="text" class="form-control" id="exampleInputPassword1">
  </div>
  <div class="form-group">
  	<label for="exampleInputPassword1">Message</label>
  	<textarea class="message"></textarea>
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
&#13;
&#13;
&#13;

这是script.gs文件 -

&#13;
&#13;
/******************************************************************************
 * This tutorial is based on the work of Martin Hawksey twitter.com/mhawksey  *
 * But has been simplified and cleaned up to make it more beginner friendly   *
 * All credit still goes to Martin and any issues/complaints/questions to me. *
 ******************************************************************************/

var TO_ADDRESS = "target@example.com"; // where to send form data

function doPost(e) {

  try {
    Logger.log(e); // the Google Script version of console.log see: Class Logger
    MailApp.sendEmail(TO_ADDRESS, "Contact Form Submitted",
                      JSON.stringify(e.parameters));
    // return json success results
    return ContentService
          .createTextOutput(
            JSON.stringify({"result":"success",
                            "data": JSON.stringify(e.parameters) }))
          .setMimeType(ContentService.MimeType.JSON);
  } catch(error) { // if error return this
    Logger.log(error);
    return ContentService
          .createTextOutput(JSON.stringify({"result":"error", "error": e}))
          .setMimeType(ContentService.MimeType.JSON);
  }
}
&#13;
&#13;
&#13;

当我填写表格后点击提交按钮时,我得到了这个 -

enter image description here

当我点击最新代码上的测试网络应用时,我得到了相同的屏幕。

我发现了什么 -

我需要在表单中添加到我的html标签中,因为&#34; name&#34;属性,但不清楚要添加什么。

我在设置此功能时出错了吗?

1 个答案:

答案 0 :(得分:4)

好的,我想我已经找到了你的问题。

似乎有两个问题:

备注:

  1. 如何添加触发器?转到编辑&gt;当前项目的触发器(或者我们也可以使用时钟按钮)。在那里添加触发器。在运行中,选择doPost(),在电子表格中选择事件 - &gt;然后在表单提交。保存它。
  2. 当您从浏览器访问https://script.google.com/macros/s/AKfycbwYbJ5WvIRmizYMr8MMtNVdIodpdYcJHz4DuO97Oxnuw4lnu3k/exec(没有/ u / 1 :-))时,会出现错误,即doGet()函数不存在,这是真的,并且您的Web浏览器发送了GET请求。