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

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

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

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

JavaScript

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

Google

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

Q&A

解決済

1回答

3231閲覧

Google Formからの問い合わせに自動返信が受信できない(Google App Script/GAS)

1995nihong

総合スコア24

Google Apps Script

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

JavaScript

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

Google

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

0グッド

0クリップ

投稿2019/01/15 23:37

下記のページを参考にGoogle Formからの問い合わせに自動返信するスクリプトを設定しているのですが、問い合わせした人にはメールが送信される一方で、bccに設定したアドレスで受信ができずに困っています。

https://liapoc.com/changename-mail.html

スクリプトの要件としては、下記があります。
①送信元アドレスは test-a@example.co.jp に設定したい
②bccで、test-a@example.co.jptest-a@example.co.jp も受信できるようにしたい
③タイムスタンプは載せない

function sendMailGoogleForm() { Logger.log('sendMailGoogleForm() debug start'); //------------------------------------------------------------ // 設定エリアここから //------------------------------------------------------------ // 件名、本文、フッター var subject = "【テスト】件名"; var body = "こちらはテストです。お問い合わせありがとうございます。\n\n" + "------------------------------------------------------------\n"; var footer = "------------------------------------------------------------\n\n" + "お問い合わせありがとうございます。\n\n"; // 入力カラム名の指定 var NAME_COL_NAME = '名前'; var MAIL_COL_NAME = 'メールアドレス'; // メール送信先 var admin_name ="テストメール";//送信メールの名前 var admin = "test-a@example.co.jp"; // 先程作成したアドレスに書換 var bcc = "test-a@example.co.jp,test-b@example.co.jp";// bccがいらない場合は、adminを""に書換 var reply = admin; var to = ""; // To: (入力者のアドレスが自動で入ります) // 送信先オプション var options = {}; if ( admin_name ) options.name = admin_name; if ( bcc ) options.bcc = bcc; if ( reply ) options.replyTo = reply; //------------------------------------------------------------ // 設定エリアここまで //------------------------------------------------------------ try{ // スプレッドシートの操作 var sheet = SpreadsheetApp.getActiveSheet(); var rows = sheet.getLastRow(); var cols = sheet.getLastColumn(); var rg = sheet.getDataRange(); Logger.log("rows="+rows+" cols="+cols); // メール件名・本文作成と送信先メールアドレス取得 for (var i = 1; i <= cols; i++ ) { var col_name = rg.getCell(1, i).getValue(); // カラム名 var col_value = rg.getCell(rows, i).getValue(); // 入力値 if (col_name === "タイムスタンプ"){ continue; } body += "【"+col_name+"】\n"; body += col_value + "\n\n"; if ( col_name === NAME_COL_NAME ) { body = col_value+" 様\n\n"+body; } if ( col_name === MAIL_COL_NAME ) { to = col_value; } } body += footer; // メール送信 if ( to ) { /* メールを送信 */ GmailApp.sendEmail( to, //toアドレス subject, //表題 body, //本文 { from: admin, //fromアドレス name: admin_name //差出人 } ); }else{ MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body); } }catch(e){ MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message); } }

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

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

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

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

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

guest

回答1

0

ベストアンサー

javascript

1function sendMailGoogleForm() { 2 Logger.log('sendMailGoogleForm() debug start'); 3 4 //------------------------------------------------------------ 5 // 設定エリアここから 6 //------------------------------------------------------------ 7 8 // 件名、本文、フッター 9 var subject = "【テスト】件名"; 10 var body 11 = "こちらはテストです。お問い合わせありがとうございます。\n\n" 12 + "------------------------------------------------------------\n"; 13 var footer 14 = "------------------------------------------------------------\n\n" 15 + "お問い合わせありがとうございます。\n\n"; 16 17 // 入力カラム名の指定 18 var NAME_COL_NAME = '名前'; 19 var MAIL_COL_NAME = 'メールアドレス'; 20 21 22 // メール送信先 23 var admin_name ="テストメール";//送信メールの名前 24 var admin = "test-a@example.co.jp"; // 先程作成したアドレスに書換 25 var bcc = "test-a@example.co.jp,test-b@example.co.jp";// bccがいらない場合は、adminを""に書換 26 var reply = admin; 27 var to = ""; // To: (入力者のアドレスが自動で入ります) 28 29 30 31 // 送信先オプション 32 var options = {}; 33 if ( admin_name ) options.name = admin_name; 34 if ( bcc ) options.bcc = bcc; 35 if ( reply ) options.replyTo = reply; 36 if ( admin ) options.from = admin; 37 38 39 //------------------------------------------------------------ 40 // 設定エリアここまで 41 //------------------------------------------------------------ 42 43 try{ 44 // スプレッドシートの操作 45 var sheet = SpreadsheetApp.getActiveSheet(); 46 var rows = sheet.getLastRow(); 47 var cols = sheet.getLastColumn(); 48 var rg = sheet.getDataRange(); 49 Logger.log("rows="+rows+" cols="+cols); 50 51 // メール件名・本文作成と送信先メールアドレス取得 52 for (var i = 1; i <= cols; i++ ) { 53 var col_name = rg.getCell(1, i).getValue(); // カラム名 54 var col_value = rg.getCell(rows, i).getValue(); // 入力値 55if (col_name === "タイムスタンプ"){ 56 continue; 57} 58 body += "【"+col_name+"】\n"; 59 body += col_value + "\n\n"; 60 if ( col_name === NAME_COL_NAME ) { 61 body = col_value+" 様\n\n"+body; 62 } 63 if ( col_name === MAIL_COL_NAME ) { 64 to = col_value; 65 } 66 } 67 body += footer; 68 69 70 // メール送信 71 if ( to ) { 72 /* メールを送信 */ 73 GmailApp.sendEmail( 74 to, //toアドレス 75 subject, //表題 76 body, //本文 77 options //送信オプション 78 ); 79}else{ 80 MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body); 81 } 82 }catch(e){ 83 MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message); 84 } 85} 86

投稿2019/01/16 00:16

編集2019/01/16 01:20
papinianus

総合スコア12705

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

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

papinianus

2019/01/16 01:21

色々と間違ってたので修正しました。 途中でoptionsを用意してくれているのに、送信時にそれを無視しているせいでした。 また、送信時にベタ書きされていたfromの設定をoptionsの設定部分に移動しました。
1995nihong

2019/01/16 01:38

早速ありがとうございました!助かります????!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問