GASで特定の条件のGmailを自動削除します 特定の条件のメールを定期的に様々な条件で削除するスクリプト
ことの発端はGmailの容量が不足しつつあること
GoogleからGmailの追加容量を買いませんか?という囁きが来るが
追加容量は買いたくない。
だったら自分で何が何でもGoogleストレージの容量をスクリプトで開放させたい!ということで、スクリプトを書きましたー!
まずは条件に対応するメールを消すというスクリプトを書きます。
//トリガーを設置する関数(testget関数を実行予定として登録) function setTrigger(){ var triggerman = ScriptApp.newTrigger("deleteOldMail") .timeBased() .everyMinutes(6) .create(); } function deleteOldMail() { //検索条件を指定 var deleteThreads = GmailApp.search("六本木ヒルズ近辺の天気"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("クーポン"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("SBI証券"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("Mailtrack Daily Report"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("has just read"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("マクロミル"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("a8"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("タイムセール"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("label:omiai-matchbook-pairs"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("nomura@mail.hometrade.nomura.co.jp"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search(" from:(cs@sbisec.co.jp)"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("label:お名前.com"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("label:ファンタスリサーチ"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //検索条件を指定 var deleteThreads = GmailApp.search("label:Socialdog"); //検索条件に合致するメールをゴミ箱に移動 for (var i = 0; i < deleteThreads.length; i++) { deleteThreads[i].moveToTrash(); } //トリガーを削除 var allTriggers = ScriptApp.getProjectTriggers(); for (var i = 0; i < allTriggers.length; i++) { ScriptApp.deleteTrigger(allTriggers[i]); } }
毎分6分おきに起動する
まずポイントはここですね。
function setTrigger(){ var triggerman = ScriptApp.newTrigger("deleteOldMail") .timeBased() .everyMinutes(6) .create(); }
ここにsetTigger()のfunctionを設置します。
こいつはdeleteOldMailというfunctionを6分おきに起動させるというトリガーを作るコマンドになります。
ここの「6」という数字にはわけがあります。
6分がGASの起動時間になりますので6より多いと無駄にスクリプトが走ってしまい、6より小さいとスクリプトが途中で止まってしまい次に繋がりません。
なのでぴったし6分置きのトリガーにすることでトリガーを作りすぎず、途中でスクリプトの実行を止めないということができます。
試しに1分間隔のトリガーを作成しまくったら、こんなことになった。
トリガーが走りすぎて、実行中スクリプトでコンソールが溢れてしまったw
コツは6分おきにトリガーを作るということをして、常にGoogleに動いてもらう必要がありますね!
たぶんスクリプトの設置方法などわからないと思いますので、こちらからサービスをご購入ください。
スクリプトの使い方がわかる方はどうぞお使いください。