1

免责声明-我是初学者。如果这里没有简单的答案,我会很乐意复习正确的教程等。但我已经找了几天了,我不太明白。

用例:

答:访问者查看 Google 网站
我想:填写表格并选择提交
这样:输入的信息将填充到电子邮件中并发送到特定地址。

我做了什么:

  • 创建 emailForm.html:

    <html>
     <body>
      <script>google.script.run.processForm(document.getElementById('myForm'));
      </script>
      <div> 
       <form id='myForm'>
        Subject:<input name='emailSubject' type='text'>
        <br><br>
        Body: <textarea name='emailBody' type='text'></textarea>
        <br><br>
        Add an Attachment: <input name='emailFile' type='file'>
        <br>
         <input type='button' value="Submit ZD Ticket" onclick='google.script.run.formSubmitReply()'>
        </form>
       </div>
      </body>
     </html>
    
  • 创建了 sendEmail.gs:(注意:脚本不完整。我已添加我的评论)

    function doGet() {  // This function creates the form on the google site for the customer to use
    
    return HtmlService.createHtmlOutputFromFile('emailForm.html')
    
    }
    
    function formSubmitReply() {   // This function is ran on the "Submit" button is selected and sends the email
    
    var subject = // ?? HELP: In a perfect world, it would be as easy as HtmlOuput.getInput('emailSubject')
    var body = // ?? HELP: In a perfect world, it would be as easy as HtmlOuput.getContent('emailBody')
    var attachment = // ?? HELP: In a perfect world, it would be as easy as HtmlOuput.getContent('emailFile') 
    MailApp.sendEmail ('support@support.com', 'subject, body + attachment,                  
                {name:'Support Request'});
    }
    

    ​</p>

我的假设:

  • 我认为我不需要访问任何数据库,并且我试图避免使用 Google 电子表格。我只想将输入值直接从表单发送到电子邮件地址。
  • 我阅读了一篇建议记录表单值然后调用它的教程。但我不知道如何从表单中调用适当的输入或将这些输入添加到电子邮件中。教程中的示例函数:

    function processForm(theForm) {
    Logger.log(  // What goes here?
    );
    }
    

谢谢大家的帮助!

4

2 回答 2

1

您需要将表单从您的客户端代码传递给调用。您可以使用 document.getElementById 检索表单,或者简单地利用按钮的父级是表单这一事实,因此您可以通过 this.parentNode 引用它。尝试像这样更改html:

onclick='google.script.run.formSubmitReply( this.parentNode )'

然后在您的服务器代码中,您可以使用它:

function formSubmitReply(theForm) {
  var subject = theForm.emailSubject;
  var body = theForm.emailBody;
  var file = theForm.emailFile;
  MailApp.sendEmail ('support@support.com', subject, body, {attachments: file});
}
于 2012-07-31T12:35:19.810 回答
0

当你有一个表单时,提交会转到一个 URL,所以这就是你必须做的

  1. 修改表单代码,以便您
  2. 在您的应用程序脚本代码中编写一个 doPost(e) 方法 - 这是您发送电子邮件的地方。
  3. 将您的脚本发布为 Web 应用程序并获取 URL,并将步骤 1 中的 someURL 替换为 Web 应用程序的 URL。
于 2012-07-31T07:16:08.217 回答