実現したいこと
Googleフォームに回答があった際に、送信者・管理者にメールが流れるようにしたい。これまで実現実行できていて、なぜか突然使えなくなった。その理由が知りたく調べていたが全く解決せず、お分かりの方にご教示いただきたいです。V8云々の問題かと思ったが違うようだった。
前提
GASを使ってGoogleフォームに回答があった際に送信者・管理者にメールを流したい。これまで何の問題もなくエラー表示すら出なかった。しかし、送信者側から「見てます?」と連絡をもらい、プログラム実行するとエラーになった。GASのコードはGoogleフォームのスクリプトエディタに記載しています。
発生している問題・エラーメッセージ
エラーメッセージ
TypeError: Cannot read properties of undefined (reading 'response')
autoEmails @ コード.gs:6
該当のソースコード(エラーはステップ1のところ)
function autoEmails(e) {
/* ◆◆ ↓↓ 回答者へのお礼メール ↓↓ ◆◆ */
/* ステップ1: フォームのデータを取得する */
//すべての質問と回答を取得する
let itemResponses = e.response.getItemResponses();
↑ここがエラーになります。
//回答者のメールアドレスを取得する
let recipient = e.response.getRespondentEmail();
/* ステップ2: 必要なデータを抽出する */
//個々の質問と回答を格納するための空配列を宣言する
let questionAndAnswers = [];
//for文(ループ)で変数itemResponsesから個々の質問と回答を取得する
for(let i = 0; i < itemResponses.length; i++) {
//質問のタイトルを取得する
let questionTitle = itemResponses[i].getItem().getTitle();
//回答を取得する let answer = itemResponses[i].getResponse(); //未回答の質問かどうかで送信文章を調整する if(!answer) { questionAndAnswers.push(questionTitle + ": 未回答"); } else { questionAndAnswers.push(questionTitle + ": " + answer); }
}
/* ステップ3: 宛先、件名、本文を決める */
//メールの件名
//★★★お好きな件名に変更ください★★★
let subject = "【受付完了】ご連絡ありがとうございました。"
//メールの本文
//★★★お好きな本文に変更ください★★★
let body = "ご連絡いただきありがとうございました。\n"
+ "\n"
+ "下記の内容でお問い合わせを受け付けました。\n"
+ "\n"
+ "========================\n"
//一次元配列questionAndAnswersをjoinメソッドを使って文字列を作成する
//区切り文字は改行"\n"
+ questionAndAnswers.join("\n")
+ "\n"
+ "========================\n"
+ "\n"
+ "不具合については早急に対応させていただきます。それ以外の内容については精査の後に対応させていただきます。"
+ "\n\n"
+ "------------\n"
+ "管理者:名前入れてます\n"
+ "Email: メアド記入してます\n"
+ "HP: https://URL入れてます/";
/* ステップ4: 回答者にメールを送信する */
//回答者にメールを送信する
GmailApp.sendEmail(recipient, subject, body);
/* ◆◆ ↑↑ 回答者へのお礼メール ↑↑ ◆◆ /
/ ================================== /
/ ◆◆ ↓↓ 管理者へのメール ↓↓ ◆◆ */
/* ステップ5: 管理者向けメールの宛先、件名、本文を決める */
//★★★管理者のメールアドレスを入力してください★★★
//複数名の管理者にメールしたい場合、カンマで区切って入力してください
let adminRecipient = "メールアドレス";
//メールの件名
//★★★お好きな件名に変更ください★★★
let adminSubject = "【自動通知】Googleフォームで新規回答を受け付けました";
//メールの本文
//★★★お好きな本文に変更ください★★★
let adminBody = "Googleフォームで新規回答を受け付けました。\n"
+ "\n"
+ "内容を確認し対応してください。\n"
+ "\n"
+ "========================\n"
//一次元配列questionAndAnswersをjoinメソッドを使って文字列を作成する
//区切り文字は改行"\n"
+ questionAndAnswers.join("\n")
+ "\n"
+ "========================\n";
/* ステップ6: 管理者にメールを送信する */
//管理者にメールを送信する
GmailApp.sendEmail(adminRecipient, adminSubject, adminBody);
/* ◆◆ ↑↑ 管理者へのメール ↑↑ ◆◆ */
}
試したこと
resoponse → Response
V8の解除
補足情報(FW/ツールのバージョンなど)
よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー