前提・実現したいこと
商品モニターの募集ページで、Googleフォームを使い、
応募してくれた人にGoogleDriveにある商品説明書を添付して自動返信したいと思っています。
スプレッドシートのスクリプトエディタに書いています。
発生している問題・エラーメッセージ
自動返信のみではこちらのページを参考にし、うまくいきました。
https://liapoc.com/new-google-form.html
添付についてはこちらのサイトなどを参考にさせていただき、
https://qiita.com/mistolteen/items/404c10657b1b27007a3c
以下を追加しましたが、うまくいきません。
//GoogleDriveからファイルを取得 var files = DriveApp.getFilesByName('説明書.pdf').next(); // メール送信に{attachments:files}を追加 MailApp.sendEmail( to, subject, body, options, {attachments:[files]}
スプレッドシートでのエラーの出し方がわかりませんでしたが、
デバッグをしたら以下の行で止まっているようです。
MailApp.sendEmail( to, subject, body, options, {attachments:[files]} );
初めてづくしで往生しています。
どなたか教えていただけると幸いです。
該当のソースコード
function sendMailGoogleForm() { Logger.log('sendMailGoogleForm() debug start'); //------------------------------------------------------------ // 設定エリアここから //------------------------------------------------------------ // 件名、本文、フッター var subject = "[お問い合わせありがとうございます。]"; var body = "お問い合わせありがとうございます。\n\n" + "------------------------------------------------------------\n"; var footer = "------------------------------------------------------------\n\n" + "後ほど担当者よりご連絡させていただきます。"; // 入力カラム名の指定 var NAME_COL_NAME = '名前'; var MAIL_COL_NAME = 'メールアドレス'; // メール送信先 var admin = "admin@example.com"; // 管理者(必須) var sendername = "株式会社AAAA";//送信者名(必須) var cc = ""; // Cc: var bcc = admin; // Bcc: var reply = admin; // Reply-To: var to = ""; // To: (入力者のアドレスが自動で入ります) //------------------------------------------------------------ // 設定エリアここまで //------------------------------------------------------------ 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(); // 入力値 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; // 送信先オプション var options = {name: sendername}; if ( cc ) options.cc = cc; if ( bcc ) options.bcc = bcc; if ( reply ) options.replyTo = reply; //GoogleDriveからファイルを取得 var files = DriveApp.getFilesByName('説明書.pdf').next(); // メール送信に{attachments:files}を追加 if ( to ) { MailApp.sendEmail( to, subject, body, options, {attachments:[files]} ); }else{ MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body); } }catch(e){ MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message); } }

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/09 10:35 編集
2019/06/09 11:00
2019/06/09 11:06