See the Elephant

1992生まれのプログラマが書くエンジニアブログ

gmailでラベル付きのメールを自動アーカイブする, の続き

1年前に書いた記事の続き. 基本的なやり方はこの記事に書いてある.

namu-r21.hatenablog.com

参照元はこちら -> うちのGMailはこうなっている(2014年完全版) - Qiita

最近, ラベル付きメールの自動アーカイブ機能がうまく動かずエラーを吐いていたので修正した.

これは本当に便利なのでオススメ.

// exclude multi-message conversations where I sent the last message?
var SINGLE_MESSAGE_ONLY = false;
// string for regular expression check
var EMAIL_REGEX = /[a-zA-Z0-9\._\-]+@[a-zA-Z0-9\.\-]+\.[a-z\.A-Z]+/g;
// look only in sent messages from last 7 days, otherwise script takes a while
var DAYS_TO_SEARCH = 7;
// set your email address.
var YOUR_EMAIL_ADDRESS = "your gmail address";

function getEmailAddress() {
  // return Session.getEffectiveUser().getEmail();
  return YOUR_EMAIL_ADDRESS;
}

function archiveReadMail() {
  var query = 'in:inbox is:read has:userlabels';
  var threadAll = 0;
  var offset = 0;
  var limit = 5;
  var mailAddress = getEmailAddress();
  var AddressList = {};
  var hasMore = true;
  while (hasMore) {
    var threads = GmailApp.search(query, offset, limit);
    Logger.log(threads.length);
    for (var i = 0; i < threads.length; i++) {
      var thread = threads[i];
      thread.moveToArchive() 
    }
    hasMore = false;
  } 
}