1

免責事項-私は初心者です。ここに簡単な答えがない場合は、正しいチュートリアルなどを喜んで確認します。しかし、私は数日探していたので、これを完全に理解することはできません。

使用事例:

AS A: 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>

私の仮定:

  • DBにアクセスする必要はないと思います。また、Googleスプレッドシートの使用を避けようとしています。入力値をフォームからメールアドレスに直接送信したいだけです。
  • フォーム値のログ記録を提案するチュートリアルを1つ読んでから、それを呼び出します。しかし、フォームから適切な入力を呼び出す方法、またはそれらの入力を電子メールに追加する方法がわかりません。チュートリアルのサンプル関数:

    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 に答える