Next.jsのサイトのホスティングにVercelを用いているのですが、PRでのプレビューデプロイが失敗すると、画像のようなメールが届きます。
このメール自体はとてもありがたいのですが、溜まったままなのはなんとなく嫌なので、1ヶ月経過したメールを Google Apps Script を用いて削除することにしました。
検索ワードの決定
まず初めに、削除するメールの検索条件を決定します。
今回はこのように設定していきます。
念の為、スターがついているメールを除外することにします。
- タイトル: Failed preview deployment
- 送信アドレス: notifications[at]vercel.com
- 期間: 1ヶ月以上前
- スターなし
(アットマークを [at]
としています)
この条件について、Gmail で使用できる検索演算子 を確認しながら、検索ワードにします。
subject:(Failed preview deployment) from:notifications[at]vercel.com older_than:1m -is:starred
実装
先ほど決めた検索ワードからスレッドを検索し、それを削除する関数を作成します。
次のような実装となります。
const deleteEmail = () => {
const threads = GmailApp.search("subject:(Failed preview deployment) from:notifications[at]vercel.com older_than:1m -is:starred");
for (thread of threads) {
thread.moveToTrash();
}
}
実行ボタンを押して、試しに動かしてみます。
初回はGmailへのアクセス権を付与する必要があります。権限付与を忘れないようにしましょう。
定期実行の設定
この関数を毎日実行するように、「トリガー」ページから画像のように設定します。
これで完了です!