前提・実現したいこと
検索条件に一致し、かつ最後の送信者が自分ではない時にメールを指定したアドレスへ転送したい。
初心者のため引数のどこでエラーが出ているか分からず困っています。
発生している問題・エラーメッセージ
44行の GmailApp.sendEmail(forwardTo, forwardSubject, forwardBody); で無効なメールとエラーが出てしまう。
該当のソースコード
function mailForward() { //検索条件に合致するメールを抽出 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var subject1 = spreadsheet.getRange('AB51') var query = 'subject:subject1 newer_than:1d'; //検索条件 var threads = GmailApp.search(query, 0, 10); //条件に合致するメールのスレッドを取得 var messages = GmailApp.getMessagesForThreads(threads); //スレッド内のメールを取得。[スレッド番号][メッセージ番号]の2次元配列になる var address1 = spreadsheet.getRange('AA51') var myMailAddress = address1; //最後の送信者がこのアドレス(自分)に合致していないものは未返信 var address2 = spreadsheet.getRange('AE51') var forwardTo = address2; //抽出した結果を転送する転送先アドレス var forwardSubject = '<テストメール>'; //抽出した結果を転送する転送メールの件名 var forwardBody =''; //抽出した結果を転送する転送メールの本文 //1スレッドずつ未返信か確認 for(var i=0; i < messages.length; i++) { var lastNum = messages[i].length-1; //スレッドの最後のメールのインデックスを取得(indexは0から始まるから-1する) //Logger.log('やり取り数:'+ lastNum); var lastSender = messages[i][lastNum].getFrom(); //最後のメールの送信者を取得 //Logger.log('最後の送信者:'+ lastSender); //未返信メール判定 if(lastSender.indexOf(address1) == -1){ //indexOfは文字列に指定した文字が含まれていない場合は戻り値が-1となる var Body1 = spreadsheet.getRange('AC51') var messageId = messages[i][lastNum].getId(); //メッセージIdを取得 var messageDate = messages[i][lastNum].getDate(); //メッセージの受信日時を取得 var messageSubject = messages[i][lastNum].getSubject(); //メッセージの件名を取得 var messageBody = messages[i][lastNum].getPlainBody(); //メッセージの本文を取得 forwardBody = forwardBody + '<テストメール>' + Body1 + 'メッセージID : ' + messageId + '\r\n' + '送信者 : ' + lastSender + '\r\n' + '送信日 : ' + messageDate + '\r\n' + '件名 : ' + messageSubject + '\r\n' + '内容 : \r\n' + messageBody + '\r\n' + '+++++++++++++++++++++++++++++++++++++++++++++++\r\n\r\n'; //転送用のメッセージ本文を作成 } } //Logger.log(forwardBody); //未返信メールの情報を転送 GmailApp.sendEmail(forwardTo, forwardSubject, forwardBody); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/06/17 09:53