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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google フォーム

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

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

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

Q&A

解決済

1回答

1162閲覧

GASとGoogleフォーム連携による自動返信スクリプトでGmailの送信制限100通を超えてしまいました。今後の登録者増加に対応するための対策について相談したいです。

gwly

総合スコア11

Google フォーム

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

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

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

0グッド

1クリップ

投稿2019/07/01 10:17

編集2019/07/01 10:20

現状の課題

・GASを利用して、Googleフォームに投稿が入った際に自動返信させるスクリプトを実施。

・無料アカウントで運用したため、1日の送信制限100件を超えてしまい
それ以降の登録者への自動返信メールがすべてエラーとなってしまった。

・G Suiteに登録して送信制限数を増やすと共に
既存のエラー対象者に対して、再度自動返信メールを送信したい。

ご相談したいこと

①G Suiteアカウントに移行し、手動支払いを済ませることで
すぐに送信制限を増やすことは可能でしょうか?

 下記のページには、「G Suiteには無料試用期間があり
期間中は制限数は増加しない」との情報がありますが
試用期間をスキップし、即座にG Suite有料ユーザーへ移行する事は可能でしょうか。

 https://ja.stackoverflow.com/questions/37938/g-suite%E5%A5%91%E7%B4%84%E3%81%A7%E9%81%A9%E5%88%87%E3%81%AA%E3%83%A1%E3%83%BC%E3%83%AB%E9%80%81%E4%BF%A1%E5%8F%AF%E8%83%BD%E4%BB%B6%E6%95%B0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%9F%E3%81%84

②GASの自動送信スクリプトで、送信制限によりエラー対象となったユーザには
翌日の制限解除時(+100件送信できる状態になった際)に
自動でスクリプトが再実施されるのでしょうか?

 もしくは、1度エラーになった対象者への再度のスクリプト実施はできず、
その場合は手動でのメール送信が必要になるのでしょうか。

③すぐに送信制限数を増加できない場合、1日100件の送信制限内でやりくりする事になるかと思いますが、
フォーム登録者のうち、1日ごとに100件だけメールを送信するようなGASを組むことは可能でしょうか?
下記に現状のGASコードを記載いたします。

GAS

1function autoreply() { 2 3 var body 4 = "この度は申し込み頂きありがとうございます。 \n" 5 +"今回のお申し込み内容は下記となります。 \n\n" 6 +"======================================= \n\n" 7 8 var body2 9 10 = "======================================= \n\n" 11 + "※このメールは送信専用メールアドレスから配信されています。 \n" 12 + "※このままご返信いただいてもお答えできませんのでご了承ください。 \n" 13 14 15//後の処理で使うため、変数を設定。(フォームと名称を一致させる必要あり) 16 var mail = 'メールアドレス'; 17 var name = 'お名前'; 18 var birth = '生年月日'; 19 20 21 var sheet = SpreadsheetApp.getActiveSheet(); 22 var row = sheet.getLastRow(); 23 var column = sheet.getLastColumn(); 24 var range = sheet.getDataRange(); 25 var TIMESTAMP_LABEL = 'タイムスタンプ'; 26 27 for (var i = 1; i <= column; i++ ) { 28 29 //スプレッドシートの入力項目名 30 var item = range.getCell(1, i).getValue(); 31 32 //スプレッドシートの入力値 33 var value = range.getCell(row, i).getValue(); 34 35 //受付番号を設定 36 for ( var n = 1; n <= row; n++){ 37 var number ='受付番号'; 38 if ( item === number ){ 39 value = n; 40 if ( value === row) { 41 sheet.getRange(n, 1).setValue(value); 42 } 43 44 //自動返信メールの件名 45 var title = "【受付番号: "+value+"】事前申し込みを受け付けました"; 46 47 } 48 } 49 50 //タイムスタンプ→申し込み日時 51 if ( item === TIMESTAMP_LABEL ) { 52 item = '申し込み日時'; 53 } 54 55 // 生年月日フォーマットの変換 56 // if ( item === '生年月日' ) { 57 // value = Utilities.formatDate(value, 'Asia/Tokyo', "YYYY'年'MM'月'dd'日'"); 58 // } 59 60 // 日付フォーマットの変換 61 if ( item === '申し込み日時' ) { 62 value = Utilities.formatDate(value, 'Asia/Tokyo', "YYYY'年'MM'月'dd'日'HH'時'mm'分'ss'秒'"); 63 } 64 65 //本文(body)に、フォームの入力項目を追加 66 body += "■"+item+"\n"; 67 68 //本文にフォームの入力内容を追加 69 body += value + "\n\n"; 70 71 //フォームの入力項目が、「お名前」の場合は、「様」をつけて、本文の前に追加 72 if ( item === name ) { 73 body = value+" 様\n\n"+body; 74 } 75 76 //フォームの入力項目が「ご連絡先メールアドレス」の場合は、変数addressに入れる 77 if ( item === mail ) { 78 address = value; 79 } 80 81 } 82 83 //本文1に本文2を追加 84 85 body += body2; 86 87//宛名=address、件名=title、本文=bodyで、メールを送る 88 GmailApp.sendEmail(address,title,body); 89}

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

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

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

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

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

guest

回答1

0

ベストアンサー

  1. --
  2. されない
  3. 自分でメールキューを実装することで可能

javascript

1function enqueue() { 2 3 const pre 4 = "この度は申し込み頂きありがとうございます。 \n" 5 + "今回のお申し込み内容は下記となります。 \n\n" 6 + "======================================= \n\n" 7 8 const post 9 = "======================================= \n\n" 10 + "※このメールは送信専用メールアドレスから配信されています。 \n" 11 + "※このままご返信いただいてもお答えできませんのでご了承ください。 \n" 12 13//後の処理で使うため、変数を設定。(フォームと名称を一致させる必要あり) 14 const mail = 'メールアドレス'; 15 const name = 'お名前'; 16 17 const sheet = SpreadsheetApp.getActiveSheet(); 18 const range = sheet.getDataRange().getValues(); 19 const TIMESTAMP_LABEL = 'タイムスタンプ'; 20 const header = range.slice(0,1).map(function(e){ return e === TIMESTAMP_LABEL ? "申し込み日時" : e; }); 21 const tail = range.slice([1]); 22 const num = range.length; 23 const body = tail[header.indexOf(name)] + " 様\n\n" + pre + header.map(function(e, i) { return "■"+e+"\n" + (e === "受付番号" ? num : (e === "申し込み日時" ? Utilities.formatDate(tail[i], 'Asia/Tokyo', "YYYY'年'MM'月'dd'日'HH'時'mm'分'ss'秒'" : tail[i])); }).join("\n\n") + "\n\n" + post; 24 sheet.getRange(num, 1).setValue(num); 25 const subject = "【受付番号: "+num+"】事前申し込みを受け付けました"; 26 const to = tail[header.indexOf(mail)]; 27 28 SpreadsheetApp.getActiveSpreadsheet().getSheetByName("queue").appendRow([to, subject, body]); 29} 30function dequeue() { 31 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("queue"); 32 sheet.getDataRange().getValues().slice(0, 100).forEach(function(e) { 33 GmailApp.sendEmail(e[0], e[1], e[2]); 34 }); 35 sheet.deleteRows(1, 100); 36}

投稿2019/07/01 10:56

編集2019/07/01 15:39
papinianus

総合スコア12705

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

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

gwly

2019/07/02 00:45

papinianus様 早急にご回答をいただきありがとうございます! クラウドのメール配信サービスがあるんですね。入念にググったつもりだったのですがまったく未見でした。 こちらの方法でトライしてみようと思います!ご協力大変ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問