###複数Gmailの中から指定したファイル名の添付ファイルだけを保存したいです。
GASビギナーです。先輩方どなたか、ご教示お願い致します。
実現したいこと
GASで、毎月届く複数のメールがあり、それぞれ異なるファイル名のPDFが添付されている。
それらのメールの中から、指定したファイル名の添付ファイルだけをGドライブのフォルダに保存したい。※保存したいPDFファイル名のリスト(20ほど)がございます
問題点
添付のスクリプトを実行すると不要なPDFファイルも保存されてしまう。
(メールに添付されているPDFファイルは保存することができましたが。。。)
試したこと
スクリプトで
ですが、条件に、試しに[PDFのファイル名]の箇所に、ファイル名を1つだけ
設定してみたところ、指定のフォルダに1個も保存されませんでした。
> var SEARCH_TERM = 'label:unread subject:XXXXXXXX 請求書 from:(xxxx@xxx.com) [PDFのファイル名]';
var FOLDER_ID = '1bzdZueqIo-HstU1L1-c7Jj8mUGRxZa4d'; //テスト用フォルダ var SEARCH_TERM = 'label:unread subject:XXXXXXXX 請求書 from:(xxxx@xxx.com); //var SEARCH_TERM = 'label:unread subject:XXXXXXXX 請求書 from:(xxxx@xxx.com) [PDFのファイル名]'; ⇒こちらで実行すると、ファイル名を試しに1ついれてみたけれど今度は全くファイル保存さえされなくなってしまった。 function fetchFile(){ var myFolder = DriveApp.getFolderById(FOLDER_ID); //フォルダを取得 var myThreads = GmailApp.search(SEARCH_TERM, 0, 150); //条件にマッチしたスレッドを検索して取得 var myMessages = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得し二次元配列で格納 for(var i in myMessages){ for(var j in myMessages[i]){ var attachments = myMessages[i][j].getAttachments(); //添付ファイルを取得 for(var k in attachments){ myFolder.createFile(attachments[k]); //ドライブに添付ファイルを保存 } } } }
回答1件
あなたの回答
tips
プレビュー