結論
Class HtmlServiceにあるcreateTemplateFromFileを用いて別途用意したHTMLファイルを読み込みます。
sample-code1.gs
function sendHtmlMail(){
/* sendEmailメソッドで利用する連想配列変数を宣言します */
var mailOpt = {};
/* 別途用意したmail.htmlを読み込みます */
var htmlBodyTemp = HtmlService.createTemplateFromFile("mail");
/* htmlBodyTemp 内の変数「mode」を、文字列"remove"とします*/
htmlBodyTemp.mode = "remove";
/* 変数mailOptの「htmlBody」に、先に設定したhtmlBodyTemp(のScript部分)を評価した結果得られるコンテンツを挿入します */
mailOpt.htmlBody = htmlBodyTemp.evaluate().getContent();
GmailApp.sendEmail("hogeratta@ahaaha.hoge", "mail test", "test mail",mailOpt);
}
mail.html
<div>
(本メールはシステムにより自動送信されています)<br>
楽しみにしていた社員旅行が
<? if(mode == "remove"){?>
中止となりました
<? }else{ ?>
変更されました
<? } ?>
ことをご連絡致します。
</div>
解説
「GASでお気軽Webアプリケーション」で利用されるdoGet()
は、GmailApp.sendEmail
メソッドでも有効です。
単純に「HTMLファイルへ記載した内容をメールとして送りたい」のであればcreateHtmlOutputFromFile()
、PHPライクに変数埋め込む場合はcreateTemplateFromFile()
で別途作成したHTMLファイルを呼び出します。
上記例ではcreateTemplateFromFile()
を使ってますので、evaluate()
してからgetContent()
しています。