目的
Google formの自動返信をGASを使って行う方法はたくさん記事ができているのものの、
・HTML形式でメール送信
・送信元を指定する
の2つの要素を包含できているものがなかったので、備忘がてらまとめておく。
基本のやり方
スクリプトエディタの開き方や、トリガーの設定方法などは、既存記事にあるので、ここは省略。
下記参照:
【簡単!】Googleフォーム送信時にGASを自動実行する方法
https://www.yukibnb.com/entry/form_trigger
HTML形式での送信のやり方
コード.gsファイルと、message.htmlファイルをスクリプトエディタのなかにファイルを作成
コード.gsの例
コード.gs
function onFormSubmit(e) {
// フォームの回答を取得 回答順で指定する
var email = e.values[1]; //メールアドレス
var companyName = e.values[2]; //法人名
//使用するhtmlファイルを指定
var html = HtmlService.createHtmlOutputFromFile("message").getContent();
//メールの設定
let to = email;
let subject = "アンケート回答の御礼"; //件名
let body = 'htmlメールが表示できませんでした'; //message.htmlが表示できない時の予備
let options = {
from: '~~~~~~~~~~', //送り元(必要に応じてカスタム)
cc: '~~~~~~~~~, ~~~~~~~~', //CCの設定(必要に応じてカスタム)
htmlBody: html
}
///メール送信
GmailApp.sendEmail(
to,
subject,
body,
options
);
}
message.htmlの例
これがメールの本文になる。
htmlの書き方がわからない人も、下記のようなテキスト→html変換の無料オンラインサービスを使って
コピペするだけでOK
message.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<p>いつも大変お世話になっております。<br>
カスタマーサポートでございます。</p>
<p>この度はお忙しい中アンケートにご協力いただきまして、<br>
誠にありがとうございました。</p>
<p>いただきましたご意見、ご要望を、<br>
今後のサービスや業務改善に役立てて参ります。</p>
<p>今後ともご愛顧賜りますよう、よろしくお願い申し上げます。</p>
<p><br>
</p>
</body>
</html>
注意事項
・トリガーの設定はお忘れなく! ・EmailApp.sendEmailの関数だと送信元がうまく設定できないので、注意!GmailAppの方を使うメールの送信元の注意
fromで指定したメールアドレスに関しては、 基本的に自分のgoogleアカウントにエイリアスの通ったメールアドレスしか設定できないので、 送信元にしたいアカウントで、GASを用意してトリガーの設定をする必要がある。参考URL:https://rtomura-taxacc.com/gas_specify-sender-address-and-sender-name/
グループメールの場合は、SMTP サーバーの設定は必要なく、アカウント管理者から承認をもらうだけでOK。
★ gsファイルからHTMLファイルに値を渡したい時
下記を追加し、htmlファイルに渡す。
コード.gs
var template_index = HtmlService.createTemplateFromFile('message');
template_index.name = companyName;
html = template_index.evaluate().getContent();
htmlファイルの中では、
message.html
<?=name?> 様
といった形で使うことができる。