実現したいこと
gasを使ってgmailから添付ファイルを解凍したうえで、googledriveに保存したい
前提
gasを使って、DMARCレポートの添付ファイルを解凍したうえで、googledriveに保存できるようにしたいです。
私がプログラミングに関する知識が薄いため、様々なサイトを参考にして、試行錯誤しているのですが、うまく実現できません。
そのため、有識者の方にお力添えをいただきたく、こちらに投稿しました。
厚かましいお願いですが、よろしくお願いいたします。
参考にしたサイト
https://for-dummies.net/gas-noobs/how-to-unzip-and-save-email-attatchments-onto-drives-by-gas/
https://qiita.com/a_eau_/items/01bc14bfc5cb5ef12e64
https://sites.google.com/site/appsmatome/home/fileman/zipmelt
発生している問題・エラーメッセージ
エラー TypeError: attachments.getBlob is not a function (匿名) @ ダウンロード&解凍.gs:29 (匿名) @ ダウンロード&解凍.gs:22 downloads @ ダウンロード&解凍.gs:16
該当のソースコード
// gmailから添付ファイルのダウンロード、ドライブに保存 function downloads() { var unzipFile; //添付ファイルを保存するフォルダを取得 var folder = DriveApp.getFolderById("フォルダID"); //検索クエリを生成 var query = "is:unread Report Newer_than:1m"; //検索queryに一致するスレッドを取得 var threads = GmailApp.search(query); //各スレッド情報を取得 threads.forEach(function(thread){ //スレッド内の全てのメッセージを取得 var messages = thread.getMessages(); //各メッセージ情報を取得 messages.forEach(function(message){ //メッセージ内の全ての添付ファイルを取得 var attachments = message.getAttachments(); let date = Utilities.formatDate(message.getDate(), 'Asia/Tokyo', 'yyyyMMdd'); ########おそらくこの2行に問題あり######## var zipblob = attachments.getBlob(); unzipFile = Utilities.unzip(zipblob); ####################################### let fileName = date +'_'+ unzipFile.getName(); unzipFile.setName(fileName); //添付ファイルを指定フォルダに格納 folder.createFile(unzipFile); }); }); }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/02/07 07:12
2024/02/07 07:44
2024/02/07 07:49 編集
2024/02/07 07:56
2024/02/07 08:11
2024/02/07 08:11