前提・実現したいこと
googleフォームで回答していただいた方へ、フォーム回答後、回答いただいたメールアドレス宛にサイトURLが載ったメールを自動送信するようにGoogle app scriptで設定したが自動送信されたメールの本文が空である
発生している問題・エラーメッセージ
5/29 14:00テスト回答したが自動返信されず、コードが間違っているのかと思いエディタ画面で実行したところ TypeError: Cannot read property 'namedValues' of undefined onFormSubmit @ コード.gs:3 と表示されたのでコードが間違っているのか?と仮定しますが原因がわかりません。 5/29 14:33 もう一度フォームからテスト回答したところ、トリガーは機能していたようでメールが来ました! しかし今度は本文が全くない状態です。件名は反映されておりました。
該当のソースコード
function onFormSubmit(e) { // フォームの回答を取得 var name = e.namedValues["お名前"][0]; var email = e.namedValues["メールアドレス"][0]; // 自動返信メール件名 var subject = 'コミュニティslackへのご招待'; // 自動返信メール本文 var body = name + '様\n' + '\n' + '参加フォームへのご入力ありがとうございました。' + '\n' + 'slackへのご招待URLをお送りいたしますので\n' + '忘れず下記よりご参加ください。\n' + '\n' + '─────────────────────────\n' + '<参加URL> \n' + ' ここにURLがはいります \n' + '─────────────────────────\n' + '\n' + '【直近の予定】\n' + '6月5日 21:30~ 第一回交流会\n' + '6月15日 21:30~ 第二回交流会\n' + '\n' + '【slackに入ったら】\n' + '#00-初めての方へ をご覧いただき\n' + '●プロフィールの設定\n' + '●#2-自己紹介 へ自己紹介の投稿をお願いします\n' + '\n' + 'ここに運営からのにメッセージが入ります\n' + '-運営一同より\n' + // メール送信 MailApp.sendEmail({ to: email, subject: subject, body: body }); }
試したこと
初挑戦なのでわからないことだらけなのでご教示いただけたら嬉しいです。
テストで1件フォームから回答しましたが自動返信が来ず困っております。
補足情報(FW/ツールのバージョンなど)
https://valmore.work/auto-response-from-google-form/
こちらのサイトさんを参考にしソースコードに手を加え、この手順でトリガーを設定しました。
トリガーの設定までは問題なくできましたがいざテストしたら自動返信メールが来ない状態です。
間違いは見当たりません。
TypeError: Cannot read property 'namedValues' of undefined
このエラーメッセージは間違いなくトリガーの結果ですか?
エディタでの実行結果とかではないですか?
失礼いたしました、エディタでの実行結果です。
トリガー設定後、テスト回答→自動返信メールが来ない→コードがちゃんと機能していないのか?と思い実行を押してみたところ上記エラーが出た
という流れです。
どうしたらよいのかわからず...
エディタで実行したのでは、パラメーター e がセットされない、つまり undefined なので e.namedValues は当然エラーになります。
フォームを送信してトリガーで起動することは確認しましたか?
実行ログはエディタの左にある三本線のアイコンの「実行数」で確認できます。
ありがとうございます、確認の仕方がそもそも違ったのですね。
実行数を見たところトリガーでもステータスが「失敗しました」とありました。
ということはトリガー追加時に問題があったということでしょうか?
そのトリガーのところ、クリックしたら、詳細が表示されませんか?
コードにconsole.log()などを仕込んでいろいろ出力するようにしたら、そこのログのところに表示されるので、それでデバッグできます。
試しにもう一度フォームから回答したところ、メールが届きました!(原因はよくわかりませんが...)
ただ今度は本文が空で届く事象が発生しております。件名は反映されています。
回答3件
あなたの回答
tips
プレビュー