Gメールの添付ファイルを自動でGoogleドライブに格納する方法【スプレッドシート】【GAS】【超初心者向け】


■結果イメージ

メールについている添付ファイルをGoogleドライブに登録します

126_GAS_スプレッドシート_Gドライブフォルダ登録_結果イメージ

■スクリプト

// 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 = 0true; 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');
}

■トリガー設定

追って書きます・・・すみません!

■使用方法

こちらも・・・



▼参考記事



いいなと思ったら応援しよう!