Gメールの添付ファイルを自動でGoogleドライブに格納する方法【スプレッドシート】【GAS】【超初心者向け】
■結果イメージ
メールについている添付ファイルをGoogleドライブに登録します
■スクリプト
// https://drive.google.com/drive/u/1/folders/{フォルダのID}
var SAVE_FOLDER_ID = 'フォルダのID';
var READ_LABEL_NAME = '添付保存済み';
var SEARCH_CONDITION = 'has:attachment -label:' + READ_LABEL_NAME;
var THREADS_PER_PAGE = 100;
function saveAttachments() {
Logger.clear();
Logger.log('start');
var folder = DriveApp.getFolderById(SAVE_FOLDER_ID);
if (!folder) {
Logger.log('Google Drive フォルダを先に作成してください');
return;
}
var readLabel = GmailApp.getUserLabelByName(READ_LABEL_NAME);
if (!readLabel) {
Logger.log('Gmail ラベルを先に作成してください: ' + READ_LABEL_NAME);
return;
}
for (var start = 0; true; start += THREADS_PER_PAGE + 1) {
var threads = GmailApp.search(SEARCH_CONDITION, start, THREADS_PER_PAGE);
if (threads.length === 0) {
break;
}
threads.forEach(function (th) {
// 既にラベルが設定されたらスキップされます
var labels = th.getLabels();
for (var i = 0; i < labels.length; i++) {
if (labels[i].getName() === READ_LABEL_NAME) {
Logger.log('スキップ: ' + th.getFirstMessageSubject());
return;
}
}
// Google Drive に添付ファイルを保存
th.getMessages().forEach(function (msg) {
msg.getAttachments().forEach(function (attachment) {
folder.createFile(attachment);
Logger.log('添付ファイルを保存: ' + attachment.getName());
});
});
// 保存し終わったメッセージにはラベルを貼る
th.addLabel(readLabel);
});
}
Logger.log('end');
}
■トリガー設定
追って書きます・・・すみません!
■使用方法
こちらも・・・