前提・実現したいこと
私は、ある団体の登録フォームと登録内容の確認メールをGoogleフォームとスプレッドシートとGASを
使って作っています。確認メールの完成が目標です。
発生している問題・エラーメッセージ
フォームから送られてきた回答を自動メールで送信する際に、2回以上同じ確認メールが送信されることがあります。 時によってなのかわかりませんが、一回だけの時や、あとから+1通が送られてくるとき、 3回送られるときがあります。 なお、下のソースコード内の文面はプライバシー的に書き換えてます。メールも架空のアドレス(だと思います)です。 また、トリガーはスプレッドシートからフォーム送信時一個のみです。
該当のソースコード
GAS
1function myFunction() { 2 3 //設定 4 5 //メール送信先 6 var admin ="henshinyousuteaka@gmail.com"; 7 var admin2 ="fudannohonnaka@gmail.com"; 8 var Maneger ="daihyounomeado@gmail.com"; 9 var admin_name ="団体"; 10 var cc =""; 11 var bcc = admin2+","+Maneger; 12 var reply = Maneger; 13 14 //件名 15 var subject ="団体へようこそ!"; 16 17 //本文 18 var body 19 ="〈このメールは自動送信です〉\n\n" 20 +"団体に入っていただきありがとうございます!!\n" 21 +"申請を以下の通り受け付けました\n\n" 22 +"-----------------------------\n"; 23 24 //フッター 25 var footer 26 ="-----------------------------\n" 27 +"返信は不要です\n" 28 +"聞きたいことがあったら何でもどうぞ\n" 29 +"連絡先(代表)\n" 30 +"〈"+Maneger+"〉"; 31 32 //入力col 33 var NAME_col="お名前" 34 var MAIL_col="メールアドレス" 35 36 //------------------------------------------------------- 37 38 try{ 39 40 //スプレッドシート指定 41 var spreadsheet =SpreadsheetApp.getActive(); 42 var sheetA =spreadsheet.getSheets()[0]; 43 var rows =sheetA.getLastRow(); 44 var cols =sheetA.getLastColumn(); 45 var rg =sheetA.getDataRange(); 46 47 //セル内容をメール本文に追加 48 for(var i=2;i<=7;i++) 49 {var col_name =rg.getCell(1, i).getValue(); 50 var col_value =rg.getCell(rows,i).getValue(); 51 body +="〈"+col_name+"〉\n"; 52 body +=col_value+"\n\n"; 53 54 //セル利用 55 56 //お名前 57 if(col_name===NAME_col) 58 {body =col_value+"様\n\n"+body;} 59 60 //送信先 61 var to=rg.getCell(rows, 8).getValue(); 62 63 } 64 65 body += footer; 66 67 //送信先オプション 68 var options ={}; 69 if(cc)options.cc=cc; 70 if(bcc)options.bcc=bcc; 71 if(reply)options.replyTo=reply; 72 if(admin_name)options.name=admin_name; 73 74 //メール送信・エラー処理 75 if(to){ 76 MailApp.sendEmail(to,subject,body,options); 77 }else{ 78 MailApp.sendEmail(admin,"〈失敗〉Googleフォームにメールアドレスが指定されていません",body); 79 } 80 }catch(e){ 81 MailApp.sendEmail(admin,"〈失敗〉Googleフォームからメール送信中にエラーが発生",e.messsage); 82 } 83} 84
試したこと
何度も実行ボタンを押したのが原因かと思い、フォームおよびソースコードのコピー、また、トリガーの再指定を行いましたが、変わりませんでした。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/16 13:11