はいどうも、PCさぽーとなんでもやの中の人です。最近はマヤノトップガン周回にいそしんでます。★3因子こねぇ・・・
という訳で真面目にお仕事します。
今回のご依頼は「GoogleFormで回答が来たら回答者に参加申込受付メールを送付したい」との事。
使うのはここら辺。
https://developers.google.com/apps-script/reference/gmail/gmail-app
ざっくりメールするのに必要な情報は
・送信相手のメールアドレス
・タイトル
・本文
みたいな感じなのでそこら辺をどこからどうするかみたいなところと権限周りがちょっと面倒なのかなって感じです。
で、今回相手のアドレスはフォームの中から取って来て、タイトルは固定?かな。に本文も受け付け内容でちょっと可変部分があるけど基本的にはフォームの中から取ってくる物を配置する感じです。
段階的には
①フォームの回答を取り込む
②メールを作って送る
っていう2段階になると思うのでまずはメール部分についてちょこっと書こうかなーと。
で、ざっくりメールを送るのに使うプログラムはこれだけ。
function sendMail() {
GmailApp.sendEmail("/*送信先メールアドレス*/", "/*送信メールタイトル*/", "/*送信メール本文*/");
}
オプションで送信元メールアドレスとかも付けられるけどとりあえずはこれで送れるんです。簡単ですよね。
んで次はフォームの送信データを取る所
function getFormAnswer(e) {
/** * eは回答があったよーっていう情報まるっと入った箱みたいなもん
* ①でその中から質問と回答を一覧で取ってresponsesって別の箱にしまう
* ②では一覧の中から質問と回答を1セットずつ質問の数だけ処理する
* ③質問はquestion、回答はansに入れる
*/
var responses = e.response.getItemResponses(); //①
var msg = "";
for (var i = 0; i < responses.length; i++) { //②
var item = responses[i];
var question = item.getItem().getTitle(); //③
var ans = item.getResponse(); //③
msg += question + ' : ' + ans + '\n';
}
console.log(msg);
}
これで質問と回答をワンセットで取れます。
あとは必要な情報を必要な様に加工してさっきのメール送信処理の方に入れ込めばOK
権限が色々必要って言われると思うので
下記の様にappsscript.jsonを編集しましょう。
{
"timeZone": "Asia/Tokyo",
"oauthScopes": ["https://www.googleapis.com/auth/gmail.settings.basic",
"https://www.googleapis.com/auth/gmail.readonly",
"https://www.googleapis.com/auth/gmail.modify",
"https://mail.google.com/",
"https://www.googleapis.com/auth/forms.currentonly",
"https://www.googleapis.com/auth/forms"],
"dependencies": { },
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
※appsscript.jsonはプロジェクトの設定からいけます。
※トリガーの設定はこんな感じ
権限の許可が必要になるんですけど、トリガーの設定時に設定するのがイイと思います。イベントからキックした際には当然聞かれずに許可が必要ですってエラーが出るだけなので。
なのでappsscript.json(マニフェスト)を更新したらトリガーの再作成で対応してます。(もっといい方法あったら教えてくださいw)
というわけでフォームの内容を元にメールの自動送信でした。