"特定の件名"を持つメールの添付ファイルを全て取得するプログラムを組みました。
スレッド内も全てです。
ただ、蓋を開けてみたら取得できていないファイルが多く、、、
Exceeded maximum execution timeが起きないように、トリガーを10分おきに設定しております。
const FOLDERID = 'フォルダID'; //フォルダID const SEARCHTERM = '特定の件名'; function getUploadFile(){ // メッセージID記録用シート const sheet = SpreadsheetApp.getActive().getSheetByName('MessageIds'); const messageIds = sheet.getRange('A:A').getValues().flat().filter(value => value !== ''); let lastRow = sheet.getLastRow(); const folder = DriveApp.getFolderById(FOLDERID); const threads = GmailApp.search(SEARCHTERM, 0, 10); const messages = GmailApp.getMessagesForThreads(threads); for(const thread of messages){ for(const message of thread){ const date = message.getDate(); const messageId = message.getId(); // 取得済みIDに保存されていれば何もしない if (messageIds.indexOf(messageId) !== -1) continue; const attachments = message.getAttachments(); for(const attachment of attachments){ folder.createFile(attachment); } // 取得済みメッセージIDに保存 sheet.getRange(lastRow + 1, 1).setValue(messageId); lastRow++; // チェック用変数にも追加 messageIds.push(messageId); } } }
上記のプログラムで、誤っている箇所、気になる箇所がありましたら教えていただけると幸いです????♀️
回答1件
あなたの回答
tips
プレビュー