前提・実現したいこと
GASでHTMLメールを複数人に送るシステムを作っています。
メールはGmeilです。
スクリプトの詳細を補足すると、
「アドレス」「メールタイトル」「人名」「会社名」はスプレッドシートから取得し、
メール本文はHTMLから取得するスクリプトを作りたいです。
発生している問題・エラーメッセージ
メール本文の箇所だけ上手くいかず、
作成したメールにHTMLのコードがそのまま出力されてしまいます。
完成形イメージ↓
ーーメール本文ーー
「会社名」(スプレッドシート)
「人名」(スプレッドシート)
「HTML」
この「会社名」と「人名」をメール本文に
記載させようとコードがそのまま出力されるように
なってしまう場合の解決方法教えていただけないでしょうか。
どうか、宜しくお願いいたします。
該当のソースコード
javascript
1function myFunction(){ 2 3 //スプレッドシートを取得 4 var ss = SpreadsheetApp.getActiveSpreadsheet(); 5 var sheet = ss.getActiveSheet(); 6 7 //データを取得 8 var rows = sheet.getLastRow()-2; //カラム行は除く 9 var columns = sheet.getLastColumn(); 10 var range = sheet.getRange(3,1,rows,columns); 11 var datas = range.getValues(); 12 13 //配列を宣言 14 var array = []; 15 16 //HTMLメールを取得 17 var html = HtmlService.createHtmlOutputFromFile("HTMLメール").getContent(); 18 19 //データ(各行)に対して繰り返し 20 datas.forEach(function(data){ 21 22 try{ 23 24 var category = data[0]; 25 26 var recipient = data[1]; 27 var cc = data[2]; 28 var bcc = data[3]; 29 30 var subject = data[4]; 31 32 var aaa = data[5]; 33 var bbb = data[6]; 34 35 var body = html; 36 37 var attachments = []; 38 39 var status = data[7]; 40 41 if(status === "完了"){ 42 43 var result = "完了"; 44 var message = ""; 45 46 } else { 47 48 var options = { 49 cc:cc, 50 bcc:bcc, 51 attachments:attachments, 52 "htmlBody": html 53 } 54 55 if(category === "下書き"){ 56 GmailApp.createDraft(recipient, subject, body, options); //下書き作成 57 } else if(category === "送信"){ 58 GmailApp.sendEmail(recipient, subject, body, options); //送信 59 } 60 61 var result = "完了"; 62 var message = ""; 63 } 64 65 } catch(e) { 66 67 var result = "error"; 68 var message = e; 69 70 } finally{ 71 72 array.push([result,message]); 73 74 } 75 76 }); 77 78} 79 80```HTML 81<!DOCTYPE html> 82<html> 83 <head> 84 </head> 85 <body> 86 <?=data[5] ?> 87 <?=data[6] ?> 88 </body> 89</html>
試したこと
<?= ?>・を使ってGASから取得した値をHTMLに読み込ませようとした
・data[5]の値はLogger.logで取得できていることは確認済
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/05 00:14
2021/08/07 05:14