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

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

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

Sendmailは、インターネットで電子メールを送受信するサーバソフトウェア(MTA)です。ユーザーが送信したメールを受け、他メールサーバへ引き渡しバケツリレー式に配送したり、届いたメールをユーザーが受け取るまでの間保管するといった働きをします。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

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

Q&A

0回答

1550閲覧

Googleform の自動返信でTypeError: Cannot read property 'response' of undefinedが出る

ryu_K

総合スコア0

Sendmail

Sendmailは、インターネットで電子メールを送受信するサーバソフトウェア(MTA)です。ユーザーが送信したメールを受け、他メールサーバへ引き渡しバケツリレー式に配送したり、届いたメールをユーザーが受け取るまでの間保管するといった働きをします。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

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

0グッド

1クリップ

投稿2022/03/29 04:14

Googleフォームの自動返信スクリプトで、
回答に応じて自動返信メールを変更するスクリプトを組みました。
サイトで調べ、大まかには理解したのですが、実行できません。
トリガーのエラーも発生しています。

"response"が定義できていないのではなくスクリプト冒頭の"e"が定義できていないというのを
このサイトで確認はしていますが、どのように定義すればいいのか分かりません。
お知恵を拝借できますと幸いです。

スクリプトは以下のようになります。

function SendMail(e){

const QuestionUniv = '大学名';
let Univ = "";

const QuestionClass = '授業名・講座名';
let Class = "";

const QuestionID = '学籍番号(半角英数)';
let ID = "";

const QuestionName = '氏名';
let Name = "";

const QuestionCate = "問合せカテゴリ";
let Cate = "";

const QuestionFree = '問合せ内容詳細';
let Free = "";

//★現在時刻を取得してyyyy/MM/dd HH:mm形式に変換
const timeStamp = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd HH:mm');

//回答者のメールアドレスを取得し、送信先に設定
const ToMailAddress = e.response.getRespondentEmail();

//CCの設定(使用しない)
const CcMailAddress = '';

//質問と回答を取得
const items = e.response.getItemResponses();
let qa = '';
for (let i = 0; i < items.length; i++) {
const item = items[i];
const q = item.getItem().getTitle();
const a = item.getResponse();

//質問タイトルが「大学名」だったらUnivに格納
if ( q === QuestionName ) {
Univ = a;
}
//質問タイトルが「授業名・講座名」だったらClassに格納
if ( q === QuestionName ) {
Class = a;
}

//質問タイトルが「学籍番号(半角英数)」だったらAppsに格納
if ( q === QuestionID ) {
ID = a;
}

//質問タイトルが「氏名」だったらNameに格納
if ( q === QuestionName ) {
Name = a;
}

//質問タイトルが「問合せカテゴリ」だったらCateに格納
if ( q === QuestionCate ) {
Cate = a;
}

//質問タイトルが「問合せ内容詳細」だったらCateに格納
if ( q === QuestionFree ) {
Free = a;
}
}

for (let i = 0; i < items.length; i++) {
const item = items[i];
const q = item.getItem().getTitle();
const a = item.getResponse();
//選択肢に応じて本文の内容を変更
if ( q === QuestionCate ) {
if ( a=== "アカウント登録ができない" ) {
qa += '111\n' + Name + '\n' +'■ID\n' + ID + '\n'
}
if ( a=== "ログインできない" ) {
qa += '222\n' + Name + '\n' +'■ID\n' + ID + '\n'
}
if ( a=== "利用開始のメールが届かない" ) {
qa += '333\n' + Name + '\n' +'■ID\n' + ID + '\n'
}
if ( a=== "登録期限が過ぎた" ) {
qa += '444\n' + Name + '\n' +'■ID\n' + ID + '\n'
}
if ( a=== "パスワードを変更したい" ) {
qa += '555\n' + Name + '\n' +'■ID\n' + ID + '\n'
}
if ( a=== "テストが受けられない" ) {
qa += '666\n' + Name + '\n' +'■ID\n' + ID + '\n'
}
if ( a=== "チケット購入期限が過ぎた" ) {
qa += '777\n' + Name + '\n' +'■ID\n' + ID + '\n'
}
else if ( a === "その他" ) {
qa += 'お問合せありがとうございました。土日祝を除く3日以内に回答をお送りいたします。\n'
}
}
}

//本文
const Body = Name +'様\n\n'
+'お問合せありがとうございます。\n'
+'以下の内容に誤りがないか今一度ご確認ください。\n\n'
+'--------------------------------------------------------\n'

  • qa +'--------------------------------------------------------\n\n'

+'IDやお名前に誤りがあった場合は再度回答をやり直すか、以下にご連絡ください。\n\n'
+'担当\n' +'xxxxxxx@xxxx.co.jp\n\n'
+'※このメールは送信専用のメールアドレスから配信されています。\n'
+'ご返信いただいてもお答えできませんのでご了承ください。\n\n';
}

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

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

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

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

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

Lhankor_Mhy

2022/03/29 05:31

e には何が入っていますか?
ryu_K

2022/03/29 06:27

ご質問ありがとうございます。 eにはフォームに入力されたメールアドレスを入れたいのです。 恐らくそれが定義できていないのではないかと思っています。
Lhankor_Mhy

2022/03/29 06:39

eにメールアドレスを入れたいのならば、e.response という書き方ではダメなのでは。 "name@example.com".response としても何も起きないですよね? 呼び出し側のコードはどうなっているのですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問