LoginSignup
10
6

More than 1 year has passed since last update.

005-動的に変化するHTMLメールを作成したい

Last updated at Posted at 2017-12-09

結論

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()しています。

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6