• 締切済み

gasカードの変数をhtmlに反映させるには?

スプレッドシートから引っ張ってきた情報を、htmlメールに反映させたいと考えています。 以下で書いてみたのですが、HTMIメールではmessageがそのままになってしまいます。 gasで書いた内容を反映させたいのですが、どうしたらいいのでしょうか? アドバイスお願いします。 function myFunction() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName('作業用'); let row = sheet.getLastRow(); //店名 let name = sheet.getRange('c' + row).getValue(); //①商品 let name5= sheet.getRange('h' + row).getValue(); //個数 let name7= sheet.getRange('j' + row).getValue(); //受信日 let name101 = sheet.getRange('a' + row).getValue(); //了解者 let name100 = sheet.getRange('w' + row).getValue(); //メール.htmlを取得 var html = HtmlService.createHtmlOutputFromFile("メール").getContent(); function doGet() { var template = HtmlService.createTemplateFromFile('メール'); template.message = "\n" +        "了解者:" + name100 + "\n" +        "商品:" + name5 + " " + name6 + " " + name7 + "個" + "\n" +        "店名:" + name + "\n" +        "本メールを了解書としてご利用ください。:" + "\n" +        "ご依頼送信日時:" + name101 + "\n"; return template.evaluate(); } var recipient = sheet.getRange('b' + row).getValue();//送信先のアドレス var subject = "了解書"; var body = '了解書' + "\n" + "\n" + "了解者:" + name100 + "\n" + "商品:" + name5 + " " + name6 + " " + name7 + "冊" + "\n" + "店名:" + name + "\n" + "\n" + "本メールを了解書としてご利用ください。:" + "\n" + "ご依頼送信日時:" + name101 + "\n"; var options = { "name": "test", //送信元の名前を指定 "htmlBody": html //メール本文をhtmlファイルに指定 }; //メール送信 if (sheet.getRange('w' + row).getValue() === '') { }else if (!sheet.getRange('x' + row).getValue() === '完了') { return false; } else {  GmailApp.sendEmail(recipient, subject, body, options);  } } <!DOCTYPE html> <html> <head> <base target="_top"> </head>  <body> <h1>了解書</h1> <p>拝啓 格別のお引立てを賜り厚くお礼申し上げます。<br> 下記の商品の返品を承ります。</p>   <h3><?=message?></h3></p>  </body> </html>

みんなの回答

回答No.1

そもそも「doGet()」はどこから呼んでいるのでしょうか? その中の「message」はどうやって参照するのでしょうか? また body変数に改行が有りますが波括弧が無いので 一まとまりに成っていないと思います。 また、メール送信で「完了」を確認していますが、 これはどこで前もって記入されるのでしょうか。

pipipi03652
質問者

補足

見てくれてありがとうございます! 下の方に書かせていただいたメール.htmlから、HtmlService.createTemplateFromFile('メール');で呼べないかなと思っておりますが、やはり、やりかたが違っておりますでしょうか?? メール送信の完了はスプレッドシートで確認しており、それは問題なく動いたので大丈夫かなと思っております。

関連するQ&A

専門家に質問してみよう