【GASアプリ】Googleフォームからメールを送信

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年4月)

Google Apps Script(GAS)を使って、Googleフォームに入力したメールアドレスへ、認証のメールを送信する仕組みを作りました。

システムの概要から、そのコードまで、できる限りわかりやすく解説しているので、ぜひご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

GASを使ったGoogleフォームからのメール送信機能の概要

機能全体の流れは以下のとおり。

GoogleフォームとGASのスクリプトを紐付ける

Eメールアドレスの入力フォームとして、Googleに備わっているGoogleフォームを使います。

GASとの連携では、右のドット3つをクリックして、スクリプトエディタへ進みましょう。

Google Apps Scriptでの実際のコード

機能をわかりやすくするために、2つのファイルに分けました。

main.gs:トリガーと紐付ける関数があるファイル

//メインファンクション
function sendMailFromForm(e) {
  const itemList = e.response.getItemResponses();
  const formIndex = getFormIndex(itemList);
  const email = itemList[formIndex].getResponse();
  sendMailFunc(email);
  //console.log(email) //確認時にはこちらを使ってください。
}

//フォームのタイトルに「Eメールアドレス」という文字列を含めてください。
function getFormIndex(itemList) {
  //特定したい文字列を入力
  const findstr = 'Eメールアドレス'
  let i = 0;
  itemList.forEach((item, index, arr) => {
    if (item.getItem().getTitle().includes(findstr)){
      i = item.getItem().getIndex();
    }
  })
  return i
}

メール送信のためのGASファイル

#紐付けるGメールアカウントと関連性のあるメールアドレスでなければいけません。
const FROM_EMAIL = "xxx@gmail.com";
const NAME = "ITCブログ運営"; //メールの送り先として記載される文字列
const subject = "こちらはテストタイトル";
const body = "This is content.これが中身。" //日本語と英語のどちらも検証が必要。
function sendMailFunc(to) {
  options = {
    'from': FROM_EMAIL,
    'name': NAME
  }
  GmailApp.sendEmail(to, subject, body, options)
}

メールアプリを使用するための認証ステップ

Google Apps Scriptでは、アプリケーションを使用するための認証作業が必要です。

以下の2ステップでおこないましょう。

  • appsscript.jsonを有効化
  • jsonファイルの書き方

appsscript.jsonを有効化

認証情報を書き込むための、「appsscript.json」を有効化しましょう。

jsonファイルの書き方

有効化すると、コード画面でappsscript.jsonを編集できるようになります。

以下の「oauthScopes」に追記をしてください。

{
  "timeZone": "Asia/Tokyo",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",

//こちらを追加してください。
  "oauthScopes": [
    "https://www.googleapis.com/auth/script.send_mail",
    "https://www.googleapis.com/auth/gmail.modify"
  ]
}

トリガの設定

トリガの設定へ進み、右下のトリガーを追加 > イベントの種類で、フォーム送信時を選択しましょう。

まとめ

以上のことをおこなえば、GASとGoogleフォームでメール送信機能が実装できます。

GASからGmailをコントロールすれば、無料でメールが送信できるのでおすすめです。

タイトルとURLをコピーしました