質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2218閲覧

Googleフォームの回答内容を指定のメールアドレスに自動送信したい。

pinoko_1115

総合スコア11

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/12/09 06:46

編集2018/12/31 05:08

前提・実現したいこと

Googleフォームの回答内容を指定のメールアドレスに自動送信したい。

発生している問題・エラーメッセージ

Googleフォームで受け取った内容を指定のアドレスに送信したいです。

TypeError: undefined からプロパティ「response」を読み取れません。(行 2、ファイル「コード」)
のエラーが出てしまいます。

おそらく、以下のコードが間違っているかと思われます。
var inquiryItems = entry.response.getItemResponses();

該当のソースコード

function notifyInquiryMessage(entry){
var inquiryItems = entry.response.getItemResponses();
var message = '';

/* 入力内容の抽出 */
for (var i = 0; i < inquiryItems.length; i++) {
var inquiryItem = inquiryItems[i];
var question = inquiryItem.getItem().getTitle();
var answer = inquiryItem.getResponse();
message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n';
}

/* 通知内容を作成 */
var address = 'example@gmail.com';
var title = '【ーーーーー】お問い合わせがありました。';
var content = '以下の内容を受信しました。' +'\n\n' + message + '\n\n';

/* メール送信(通知) */
GmailApp.sendEmail(address, title, content);
}

試したこと

いくつかの記事を参考にしましたが、エラー改善方法が分かりません。

補足情報(FW/ツールのバージョンなど)

※個人情報は伏せてあります。
尚、トリガー作成時の承認は完了済みです。

どなたかアドバイス頂けますと、幸いです。

※12/31
もう一度現在のプロジェクトトリガーから作成し直しましたが、
やはり同じエラーが出てしまいます。
イメージ説明
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2018/12/10 00:16

トリガーの設定とこのコードをどこでどう書いているかの2点を質問に追記可能でしょうか?
pinoko_1115

2018/12/10 05:15

Googleスプレッドシート(回答)から、ツール>スクリプトエディタ>コード記入>プロジェクトを作成 です。 トリガーの設定は「フォーム回答受信時」です。
papinianus

2018/12/10 08:38

responseが読み取れないということは、entryが正しく設定できてない=トリガーが動作していない、ということになるのですが、フォームに書いていますよね?あと、スプレッドシートからではなく、フォームの編集画面の右上の…を縦にしたアイコンからスクリプトをかく必要があります。
退会済みユーザー

退会済みユーザー

2018/12/25 07:39

notifyInquiryMessage関数が何も受け取っていない(引数null)のでは?
退会済みユーザー

退会済みユーザー

2018/12/26 16:59

全く同じソースで試してみましたが上手くいきました。おそらくトリガーが設定されてないのではないでしょうか?スクリプトエディタのところから「編集」→「現在のプロジェクトトリガー」を開いてトリガーの設定を確認してみてください。
pinoko_1115

2018/12/31 05:04

@papinianus コメントありがとうございます。 シートからではなく、フォームから書き直しました。 ですが、まだ同じエラーが出てしまいます。。
pinoko_1115

2018/12/31 05:10

@NETACHIL コメントありがとうございます。 頂いた通り、トリガーの設定をし直してみましたが、 やはり「response」に対してエラーが出てしまいます。
退会済みユーザー

退会済みユーザー

2018/12/31 06:17

該当のソースコード欄に記載されているソースコードの関数名は「notifyInquiryMessage」ですが、画像を見ると実行する関数の名前は「myFunction」となっています。
pinoko_1115

2018/12/31 10:39

コードの関数名が間違っていたみたいです。 もう一度設定し直したら正常に動作しました。 助かりました! @NETACHIL @papinianus 本当にありがとうございます!!
guest

回答1

0

自己解決

関数名を修正して、設定し直したら、
正常に動作しました。
アドバイスを下さった方々ありがとうございます!!

投稿2019/01/18 02:58

pinoko_1115

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問