実現したいこと
最終的には「フォーム入力からメールを自動送信する」ことを行いたいです。
発生している問題・エラーメッセージ
TypeError: undefined からプロパティ「response」を読み取れません。(行 3、ファイル「コード」)
function sendEmail(e) { var itemResponses = e.response.getItemResponses(); var name = itemResponses[0].getResponse(); var email = itemResponses[1].getResponse(); var schedule = itemResponses[2].getResponse(); var to = email; var subject = 'テストメール2回目'; var body = 'これはテストメールです。'; GmailApp.sendEmail(to, subject, body); }
何度も見直しましたが、なぜエラーが起こるのかわかりません。。。
初歩的な質問で申し訳ありませんがよろしくお願いいたします。
https://teratail.com/questions/158421
こちら参考になりそうですがどうでしょうか
こちらも試したのですが、エラーは出てきてしましました。。。
この関数はどのように実行されているのでしょうか?
まずは sendEmail の最初に、Logger.log(JSON.stringify(e)) とでも仕込んで e に何が渡ってきているか確認すべきです。
mistnさん
「この関数はどのように実行されているのでしょうか?」とはどの様な意味でそうか。初心者ですいません。。。
draqさん
「undefined」と返ってきました。sendEmail(e)が定義できていないということでしょうか。。
// FormApp.getActiveForm()
function sendEmail(e) {
Logger.log(JSON.stringify(e));
}
トリガーを設定する、「関数を実行」から実行など関数の実行方法にも種類があります。
どのような方法で実行しているのですか、という意味です。
実行方法によってはそもそも引数が渡されないので e は undefined になります。
トリガーを設定し忘れていました、すいません。。。
設定して実行するとできました!
しかし、コードを編集して保存するとやはりエラーが返ってくるのですが、どうしてなのでしょうか。
最初の参考質問でも回答した者なのですが、フォームを送ってください。
関数を実行ではテストできません。
必要なのはトリガーを設定することではなく、トリガーにコードを実行させること、です。
あなたの回答
tips
プレビュー