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

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

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

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

0回答

572閲覧

Googleフォームに送信された写真をメールに転送と回答者に自動返信したいです。

退会済みユーザー

退会済みユーザー

総合スコア0

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2021/08/01 16:58

前提・実現したいこと

Googleフォームについての質問です。
現在Googleフォームに回答が入ると、内容すべてがメールに転送、そして回答者に自動返信されるようにしています。

先日、写真のアップロードができることを知りフォームに追加しました。

私が実現したいこと:
Googleフォームに、回答者がアップロードした写真もメールに転送、そして回答者に自動返信したいです。
写真は2枚アップロードできるように設定しています。
URL表示ではなく、画像を添付したいです。

実際:
写真の転送設定をする前はメールが転送、回答者に自動返信されていたのですが、
写真の転送設定をしテストをしたところ自分にも回答者にも何も送られてこなくなりました。

スクリプト初心者です。
これを実現することができる、スクリプトエディタのコードの書き方を教えていただけませんか。

よろしくお願い致します。

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

TypeError: Cannot read property 'response' of undefined submitForm @ コード.gs:3

該当のソースコード

function submitForm(e){
var itemResponses = e.response.getItemResponses();

for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();

if (question == '確認'){ var ok = answer; } if (question == 'お名前'){ var username = answer; } if (question == 'メールアドレス'){ var usermail = answer; } if (question == '番号'){ var number = answer; } if (question == '選択'){ var choice = answer; } if (question == '理由'){ var reason = answer; } if (question == 'NG'){ var ng = answer; } if (question == '相談'){ var consultation = answer; } if(question == '{添付画像}'){ var img = DriveApp.getFileById(answer[0]); options.attachments = img.getAs(MimeType.JPEG); //JPEG前提 } if(question == '{添付画像2}'){ var img2 = DriveApp.getFileById(answer[0]); options.attachments = img2.getAs(MimeType.JPEG); //JPEG前提 } else{ message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n'; }

}

/* 管理者宛メール送信設定 */
var address = '・・・@gmail.com';
var title = '[///へのお問合せを受信しました]';
var content = '下記の内容で、お問合せを受信しました。\n\n'

  • '【質問1(確認)】:' + ok + '\n'+
  • '【質問2(番号)】:' + number + '\n'+
  • '【質問3(選択)】:' + choice + '\n'+
  • '【質問4(理由)】:' + reason + '\n'+
  • '【質問5(NG)】:' + ng + '\n'+
  • '【質問6(相談)】:' + consultation + '\n'+
  • '\n\n'
  • '※このメールは自動送信メールです。';

var options = {from: '・・・@gmail.com', name: '名前', replyTo: usermail};

GmailApp.sendEmail(address, title, content, options);

/* ユーザー宛メール送信設定 */
var title2 = '[///へのお問合せを受付けました]';
var content2 = username

  • ' 様\n\n'

  • 'この度は、お問合せいただき、ありがとうございます。\n'

  • '下記の内容で、受付けました。\n'

  • '後ほど折り返しご連絡させていただきますので、いましばらくお待ちください。\n\n'

  • '【質問1(確認)】:' + ok + '\n'+

  • '【質問2(番号)】:' + number + '\n'+

  • '【質問3(選択)】:' + choice + '\n'+

  • '【質問4(理由)】:' + reason + '\n'+

  • '【質問5(NG)】:' + ng + '\n'+

  • '【質問6(相談)】:' + consultation + '\n'+

  • '\n\n'

  • '----------\n'

  • '\n\n※このメールは自動送信メールです。';

var options2 = {from: '・・・@gmail.com', name: '///お問合せフォーム'};

GmailApp.sendEmail(usermail, title2, content2, options2);

}

補足情報

下記ページを参考に作成いたしました。
https://shogo-log.com/google-form-mail/

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

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

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

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

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

itagagaki

2021/08/02 00:43

> テストをしたところ そのテストはトリガーで実行しましたか? スクリプトエディタで実行したのではないですか?
退会済みユーザー

退会済みユーザー

2021/08/02 04:21

ありがとうございます。 スクリプトエディタで実行していました。 トリガーでも実行してみましたが、下記のようなエラーがでました。 TypeError: Cannot read property 'getItemResponses' of undefined at submitForm(コード:3:34)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問