前提
GASでgmailの添付ファイルを
Googleドライブに保存、更新させたくチャレンジしております。
実現したいこと
条件に合う複数のメール(添付ファイル)を保存、上書きさせたい。
発生している問題・エラーメッセージ
下記のコードですと最新の添付ファイルしか保存、更新されません。
エラーメッセージ
### 該当のソースコード var SEARCH_TERM = 'subject:(事業部) '; //検索条件(件名で検索の場合) var FOLDER = DriveApp.getFolderById('○○○○'); //保存するフォルダ(Googledrive上のURL”folders/”以下) //メイン(メールから添付ファイルを取得) function fetchFile(){ var myThreads = GmailApp.search(SEARCH_TERM, 0, 30); //条件にマッチしたスレッドを検索して取得(0~30件まで) var myMessages = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得し二次元配列で格納 var attachments = myMessages[0][0].getAttachments(); //添付ファイルを取得 Logger.log(myMessages[0][0].getSubject()); //取得メールの件名表示 updateFile(attachments) //ファイル置き換え } //フォルダの中に入ってるファイルの名前を取得 function getFileNames(){ var files = FOLDER.getFiles(); var fileNames = [] var count = 0 while (files.hasNext()) { fileNames[count] = files.next() count++ } return fileNames } //フォルダにあるファイル名が添付ファイル名と同じとき更新 function updateFile(attachments){ var fileNames = getFileNames() for(var i in attachments){ for(var j in fileNames){ //ドライブにすでに同じ名前のファイルがあるか? if(attachments[i].getName() == fileNames[j]){ var files = DriveApp.getFilesByName(fileNames[j]) //重複ファイルを削除 if (files.hasNext()) { var file = files.next() file.setTrashed(true) Logger.log(file.getName()) //削除したファイル名表示 } } } FOLDER.createFile(attachments[i]) //ドライブに添付ファイルを保存 } } ### 試したこと ### 補足情報(FW/ツールのバージョンなど) こちらのコードをどう修正をすれば希望通りに動くのかご教示いただきたいです。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/26 07:22