ゴール
前提
GAS
htmlファイルをTemplateとして読み込み、createDraft
で下書きを生成したい。
以下のようなコードを書いた時、CSSをどう書くかという話。
sample.js
function createGreetingEmail() {
// index.htmlファイルをテンプレートとして読み込む
var template = HtmlService.createTemplateFromFile("index");
// テンプレートの変数に値を代入
template.name = "tarou";
// 文字列として生成
var html = template.evaluate().getContent();
GmailApp.createDraft(
"done@example.com",
"Greeting",
"htmlが表示できません...",
{htmlBody: html}
);
}
HTML & CSS の書き方
こう書く
createDraftでスタイルを反映させるには、インライン形式で書くしかない。
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<h1 style=color:red;> hello <?= name ?> </h1>
</body>
</html>
補足: <?= hogehoge ?>
という書き方で、GASの変数を代入できる。
失敗例
<head>
や<body>
内に書く
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<style type="text/css">
h1 {color:red;}
</style>
</head>
<body>
<h1 >hello <?= name ?> </h1>
</body>
</html>
ちなみに、sendEmailではちょっと違う
createDraft
ではなく、sendEmail
の場合は、<head>
や<body>
内に書いてもOK。
不便だなぁ、、なんでだろう??...