Gmailを使っていると、仕事とのやりとりや友人との連絡、Webサービスなどに登録したお知らせメールがM60マシンガンの連射の如く、毎日メールボックスに打ち込まれていることでしょう。弾丸メールは止まることを知らず襲ってきます。
それを、毎日巧みに受け流し、ゴミ箱へと放り込むあなたは、マトリックスのネオをも凌駕しているかもしれません。しかし、毎日のように弾丸攻撃を受けていては、ミスを犯してしまうこともあります。時には重要な機密情報をもゴミ箱に送っているかもしれません。
ゴミ箱のタイムリミットは30日。30日以内に重要メールを救出できなければ交渉決裂、人質はバンッです。Gmailの削除期間があと少し、あと少し延ばすことができたなら・・・握りこぶしをデスクに叩きつけて苦悩したこともあるのではないですか。
ゴミ箱の自動削除は、30日デフォルトでは変更できません。この難事件を万事解決する方法は存在するのか?結論からいうと可能です。
ゴミ箱に入れる前にワンクッション作戦
30日の自動削除に対向する武器は、2つです。
- ラベル
- Gmail Apps Script
「ラベル」と「Gmail Apps Script」を駆使することで、この難事件を解決に導くことができます。作戦は、ゴミ箱に入れると30日後削除されるのでその前に、30日にプラスして保管しておきたい日数を別のラベルに保有しておくという方法です。
特定のラベルを作り保有しておいてもGmailでは、ラベルに対し自動削除の設定はありませんが、Gmail Apps Scriptを使うことで保有期間を指定して自動的にゴミ箱に送ることができるようになります。
この作戦の方法をとれば、事実上削除期間を変更することができます。
Google Apps Scriptで自動削除
仕組みを組み立てていきます。まずゴミ箱に入れる前に一定期間保有するラベルを作ってください。ここでは仮に”Delete label
“としておきます。
ラベルの準備ができたらGoogleドライブを開いて、Google Apps Scriptを新規作成します。Googleドライブから「作成」→「スクリプト」→「空のプロジェクトの作成」と手順をふんでください。
下記のJavaScripコードを書いて、実行すれば指定した日数より古いメールが”Delete label
“から削除されます。
JavaScripコード
function delayTrash() { var delayDays = 14;// ここに日数を入れる var maxDate = new Date(); maxDate.setDate(maxDate.getDate()-delayDays); var label = GmailApp.getUserLabelByName("Delete label"); var threads = label.getThreads(); for (var i = 0; i < threads.length; i++) { if (threads[i].getLastMessageDate()<maxDate) { threads[i].moveToTrash(); } } }
この例でいくと、”Delete label
“に入ったメールが14日前のものは削除され、それより新しいものは残ります。これを明日も明後日も自動的に実行させるには、トリガーを設定しなければなりません。
定期的に自動削除するトリガーを設定
トリガーを設定するには、「リソース」または、「時計のマーク」をクリックして、「現在のプロジェクトのトリガー」に新しいトリガーを追加してください。
例として、実行に”delayTrash
“をイベントは”時間主導型”、”週タイマー”、”毎週月曜日”、”午前1時~2時”に設定し保存しました。あとは、スクリプトを名前をつけて保存しておきましょう。
これで準備万端!戦闘態勢は整いました。
使用方法
これからは、削除する時ゴミ箱に直接いれるのではなく、あなたの設定したラベルに不要メールを移動させてください。さすれば、30日よりも長く保有し自動的に削除されます。
あなたは、苦悩することなく華麗にメールを救出できるようになります。
まとめ
事実上ゴミ箱の自動削除期間を変えるには、
- ラベルとGoogle Apps Scriptを使う
- ゴミ箱におくる前に、特定のラベルにメールを移動させる
- ラベルには、Google Apps Scriptで自動削除の命令を行う
あとがき
Gmailを操作できるGoogle Apps Scriptは、他にもGoogleが提供するカレンダーやスプレッドシート、フォーム、マップ、サイトなどなど多くのサービスに使えます。
Googleのサービスを使っている人は多いと思うので、使っているうちにメール送ったら自動的にカレンダーに書き込みたいなと思ったことやフォームの送信内容から表を作ってグラフも作れたらいいのになと感じることもあるかもしれません。
漠然と何の役に立つかわからないJavascriptを試しに書いてみるより、それをきっかけに、Google Apps ScriptでJavascriptを書いていけばプログラミングの理解が深まるかもしれないなと思いました。
プログラミングは、万人に必要な知識じゃないかもしれません。しかし、自分のちょっとこうだったらいいのになをきっかけに考え、考えて成し得た時は、前の自分とは違うちょっと考える力の経験値がアップした自分になれるんじゃないでしょうか。