Gmailに届いた受信トレイの未読メールを自動的に既読にするには、Google Apps Script(GAS)を使用して作ることができます。以下は、GASを使用してGmailの未読メールを自動的に既読にするサンプルスクリプトです。
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
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の公式ドキュメントを参照してください。
続きはまた、次回。