はじめに
とあるイベント(社外の完全ボランティア)を主催する際に、Google Formで入力いただいた相手にZoomのURLを送る運用をしましたが、当日直前でも参加したいという意思表示にも対応できるように、自動でZoomのURLを送れるようにGASで対応しました。
備忘用にスクリプトを記載します。
なお、自分以外のひと(=IT未経験者)でもメンテナンスできるように、Google Formの回答スプレッドシートにスクリプト設定シートを作成し、ZoomのURLなどはシートに記載し、その値を取得する形を取っています。
[2021/07/30 修正]
メール本文(const body)をテンプレートリテラルに修正しました。
愚直に改行、文字結合をしなくてよくなりすっきりしました。
コード
send.gs
function onFormSubmit(e) {
// フォームの回答を取得
const name = e.namedValues['氏名'][0];
const email = e.namedValues['メールアドレス'][0];
// 紐づいているSpreadSheetの操作
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('スクリプト設定シート'); // シートを名前で指定して取得する
const zoomUrl = sheet.getRange(4,3).getValue(); // c4セルの値を取得
const mtgId = sheet.getRange(5,3).getValue(); // c5セルの値の取得
const passCd = sheet.getRange(6,3).getValue(); // c6セルの(ry
// 件名
const subject = 'XXXXXイベントのご案内';
// 本文
const body =` ${name} 様
XXXXXXでございます。
この度はお申し込みいただき、誠にありがとうございました。
イベントは
mm/dd(w)hh:MM(日本時間)〜 にて行う予定です。
詳しいスケジュール表は下記WEBサイトをご覧ください。
URL:http://example.com
ZOOM URL: ${zoomUrl}
Meeting ID: ${mtgId}
passcode: ${passCd}
なにかご不明点がございましたら、下記メールアドレスまでご連絡ください。
以上よろしくお願いします。
────────────
XXXXXイベント運営委員
Email:event@example.com
URL:http://example.com/`
;
// メール送信
MailApp.sendEmail({
to: email,
subject: subject,
body: body
});
}