タイトル

Need for Answer

2014年3月16日日曜日

Gmailで繰り返し来るメールを自動削除する

定期配信されるメールって有りますよね。
そういうメールって、最新のもの以外はいらなかったりしませんか?

ということで、『決まった題名のメールを1通だけ残して、あとはアーカイブ』をGmailで自動化しよう!というお話です。

とりあえず使うものはGmailとGoogle Apps Scriptになります。簡単に説明すると『GmailをメンテナンスするJavaScript』をGoogleのサービスで定期実行させる、ということです。こんなことも無料で出来るんですよ。

以下ソース。

var TITLE="メールのタイトル"

// メイン処理
function Main(){
  var TMPOBJ = STRinMailTitle(TITLE);
  ArcOldMail(TMPOBJ);
}

// 文字列が含まれたスレッドオブジェクト配列を返却
function STRinMailTitle(STR){
  var RETOBJ = [];
  
  var thds = GmailApp.getInboxThreads();
  for(var n in thds){
    var thd = thds[n];
    var subject = thd.getMessages()[0].getSubject();
    if (subject.indexOf(STR,0) != -1){
      RETOBJ.push(thd);
    }
  }
  return RETOBJ;
}

// スレッド配列を処理する
function ArcOldMail(OBJ){
  
  var TMPOBJ=OBJ;
  
  // 配列先頭を削除
  TMPOBJ.shift();
  // 先頭以外は既読・アーカイブする
  GmailApp.markThreadsRead(TMPOBJ);
  // アーカイブ
  GmailApp.moveThreadsToArchive(TMPOBJ);
}

上記ソースをGoogleドライブのスクリプトを新規作成して、仕込んで下さい。

次に1行目の「メールのタイトル」部分を、『定期メンテナンスしたいメールのタイトル』に書き換えてください。部分一致でも大丈夫です。

あとは、Main()を時間トリガーに仕込みます。

可読性を上げるために処理を削りましたが、『1通目だけラベルをつける』『メール本文で判定』とか色々なことが出来ますので、改造してみてはいかがでしょうか?

0 件のコメント:

コメントを投稿