Gmailの受信ボックス以外の未読メールを一括で既読(GAS)

Google Apps Script(GAS)を利用して未読メールを一括して既読にする

Gmailで受信ボックス以外にあるメールを一括で既読にする方法を紹介します。Google Apps Script(GAS)を利用して定期的に既読にする方法を紹介します

処理の内容は、Gmailの検索クエリを活用し、is:unread -in:inbox(未読、かつ、受信トレイにない)という条件でメールスレッドを抽出して一括処理しています。

使用するコード

function markAsReadOutsideInbox() {
  // 受信ボックス(inbox)以外にある未読メールスレッドを最大100件取得
  // 件数が多い場合は「100」の数字を増やすか、定期実行してください(最大500件まで)
  const searchQuery = "is:unread -in:inbox";
  const threads = GmailApp.search(searchQuery, 0, 100);
  
  if (threads.length === 0) {
    Logger.log("受信ボックス以外の未読メールはありません。");
    return;
  }
  
  // 抽出したスレッドをまとめて既読にする
  GmailApp.markThreadsRead(threads);
  Logger.log(threads.length + " 件のスレッドを既読にしました。");
}

コードのポイント

is:unread -in:inbox:

  • is:unread で未読メールを絞り込みます。
  • -in:inbox のマイナス記号により、受信ボックスに入っているメールを除外します。
  • これにより、特定のラベル(フォルダ)に自動振り分けされた未読メールや、アーカイブされた未読メールだけが対象になります。 [1]

GmailApp.markThreadsRead(threads):

  • 取得したメールスレッドを1つの命令で一括既読化するため、処理速度が非常に速くGASの制限に引っかかりにくくなります。

コードを自動化する方法(定期実行)

毎日、または数時間おきに自動でこの処理を実行させたい場合は、GASのトリガー機能を使用します。

  1. GASエディタの左メニューにある 「トリガー(時計アイコン)」 をクリックします。
  2. 画面右下の 「トリガーを追加」 をクリックします。
  3. 実行する関数に markAsReadOutsideInbox を選択します。
  4. イベントのソースを 「時間主導型」 に変更します。
  5. 「日ベースのタイマー」や「時間ベースのタイマー」など、お好みの間隔(例: 毎日深夜など)に設定して保存します。 [1, 2, 3, 4, 5]

これで、手動で操作しなくても受信ボックス以外の不要な未読メールが自動で一掃されるようになります。

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です