Gmailで古いメールがinboxにたまるので自動でアーカイブしたい。
Google Apps Script(GAS)を使って、定期的に古いメールをアーカイブする。
Apps Script – Google Apps Script
「新しいプロジェクト」から新しいプロジェクトを作る。
「エディタ」で以下ようなコードを書く。
// inboxにる既読かつスターなしかつ最終更新日が1ヶ月以上前のメール(スレッド)をアーカイブする function myFunction() { let threads = GmailApp.getInboxThreads() let d = new Date(); d.setMonth(d.getMonth() - 1) // アーカイブするメールに付けたいラベル let label = GmailApp.getUserLabelByName('stale') let archivedCount = threads // 1回の実行でアーカイブする上限をつけたいとき .slice(-50) // 既読のみアーカイブする .filter( x => x.markRead ) // スター付きはアーカイブしない .filter( x => !x.hasStarredMessages()) .filter( x => x.getLastMessageDate() < d) .map( function(x) { x.addLabel(label) x.moveToArchive() }).length; console.log(archivedCount); }
エディタで実行すると権限が必要だと言われるので、権限を付与する。
「トリガー」で定期実行するトリガーを追加する。日付ベースで例えば毎日0時〜1時とか、毎週月曜日の午前10時〜11時とか。
テストが書けてないのであんまり複雑なことはしたくないが、これくらいなら大丈夫だろう。
これでinboxにたまったメールを手動でアーカイブしていく時間が省けてうれしい。