GoogleAppsScriptでは、テキストメールやHTMLメールを送ることができます。
まずは、テキストメールの送り方をお伝えします。
HTMLメールでない場合は、以下のようにMailApp.sendEmail()
で送ることができます。
send_email.js
// 改行はあってもなくてもよい
MailApp.sendEmail(
'メールアドレス',
'件名',
'本文'
);
改行を入れる場合は、\nで改行することができます。
(Windowsの場合は¥n)
send_email.js
MailApp.sendEmail(
'メールアドレス',
'件名',
'本文\n本文(2行目)'
);
HTMLメールを送る場合は、少し書き方が変わります。
send_email.js
MailApp.sendEmail(
'メールアドレス',
'件名',
'テキストメール用の文言',
{htmlBody: '本文はココHTMLタグも使用可'}
);
※ 「テキストメール用の文言」の部分は基本的には使用されませんが、
iPhoneのメールアプリで見ると、プレビューとしてこの部分が表示されます。
変数にHTMLタグも含め全てを入れてもよいのですが、冗長なソースコードとなります。
そこで、HTMLファイルを作成し、それを読み込んでみます。
まず、HTMLを作成します。
スクリプトの編集画面において
「ファイル」→「新規作成」→「HTMLファイル」で新規ファイルを作成できます。
ファイル名を聞かれるのでindex.html
としてください。
HTMLファイルはデフォルトで以下のようになっているので、
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
</body>
</html>
<body>
と</body>
の間に好きなHTMLを書いてみてください。
その後、スクリプトを以下のように改変します。
send_html_email.js
// index.htmlから読み込み
var html = HtmlService.createHtmlOutputFromFile("index").getContent();
// メール送信
MailApp.sendEmail(
'メールアドレス',
'件名',
'普通のメール',
{htmlBody: html}
);
結果として、bodyタグの中が送信できていたらOKです。
上記の方法を使う場合、変数を使用する際に困ってしまいます。
そこで、HTML内で変数を使用する方法を使います。
詳しい方には、PHPと同じようなものと言えば伝わると思います。
例として、GAS側で配列を準備し、それをindex.html側で読み込む、ということをやってみます。
先程作成した、index.htmlの中身を以下のように改変します。
index.html
<? for (var j=0; j < arr.length; j++) {?>
<b><?=arr[j]?></b><br>
<? } ?>
中身としては単純で、arrの中身を一個ずつ取り出しています。
次に、GASのソースコードを以下のように編集します。
send_html_email.js
// ↑のindex.htmlを読み込む
var template_index = HtmlService.createTemplateFromFile('index');
// template_index.arrとすることで、
// htmlファイル内でarrという変数が使えるようになる。
template_index.arr = ["hoge", "huga", "hage"];
// 上で設定した変数の展開をし、メールで送る用にContentのみを取り出す。
html = template_index.evaluate().getContent();
// 送信
MailApp.sendEmail('メールアドレス', '件名', '普通のメール', {htmlBody: html});
以上のコードを実行すると、変数を利用した上でメールが送られていることがわかると思います。
HTMLに変数を入れる方法として、以下を参考とさせていただきました。
GoogleAppsScriptのHTMLServiceまとめ