スキルアップを始める!

【GAS】Gmailに届いた受信トレイの未読メールを自動的に既読にしてスプレッドシートに書き込む-Part1

GAS(GoogleAppsScript)
GAS(GoogleAppsScript)
この記事は約4分で読めます。

※記事中に広告情報を含みます。

\ワードプレスのスキルアップはこちら!/ WordPress入門読本

Gmailに届いた受信トレイの未読メールを自動的に既読にするには、Google Apps Script(GAS)を使用して作ることができます。以下は、GASを使用してGmailの未読メールを自動的に既読にするサンプルスクリプトです。

Gmailの受信トレイのスレッドを取得して既読にするには、下記のようなコードで可能です。

function markAsRead() {
  const threads = GmailApp.getInboxThreads(); // 受信トレイのスレッドを取得
  for (var i = 0; i < threads.length; i++) {
    if (threads[i].isUnread()) { // 未読の場合
      threads[i].markRead(); // 既読にする
    }
  }
}

このスクリプトでは、markAsRead関数を定義しています。この関数内で、GmailApp.getInboxThreadsメソッドを使用して受信トレイのスレッドを取得し、forループを使用して各スレッドが未読の場合にmarkReadメソッドを使用して既読にします。

スクリプトを実行してみます。

すべて既読になりました!

受信トレイだけでなく、スター付きなども可能です。

受信トレイのスレッド
GmailApp.getInboxThreads()

スター付きスレッド
GmailApp.getStarredThreads()

迷惑メールスレッド
GmailApp.getSpamThreads()

ゴミ箱スレッド
GmailApp.getTrashThreads()

GmailApp.searchを使うと、Gmail内を検索できます。getInboxThreads()メソッドの場合は、受信トレイ内の処理ができましたが、もし、特定のラベル内や、その他の条件で絞って実行したい場合はGmailApp.searchを使います。

GmailApp.search(query, start, max)

引数については、それぞれ下記のようになっています。

query:検索条件
start:取得する開始番号
max:取得する件数

例えば、未読を直近10件検索する場合は下記のようになります。

const threads = GmailApp.search('is:unread', 0, 10);

単に未読のみとする場合は、引数を減らします。

const threads = GmailApp.search('is:unread');

ラベルの中の未読、としたい場合は、ラベルを追加します。

[rml_read_more]

const threads = GmailApp.search('is:unread label:テストラベル ');
function markAsRead() {
  // const threads = GmailApp.getInboxThreads(); // 受信トレイのスレッドを取得
  const threads = GmailApp.search('is:unread label:テストラベル ');
  for (var i = 0; i < threads.length; i++) {
    if (threads[i].isUnread()) { // 未読の場合
      threads[i].markRead(); // 既読にする
    }
  }
}

実行してみます。

ラベルの方の中のメールのみ既読になりました!

まとめ

上記の例では、受信トレイの全ての未読メールを自動的に既読にする方法を示しています。条件に応じて、特定の差出人からのメールだけを既読にするなど、より高度な設定を行うこともできます。

詳細については、Google Apps Scriptの公式ドキュメントを参照してください。

続きはまた、次回。

URLをコピーしました!