Google Apps ScriptでGmailの未読メールを自動集計し、スプレッドシートに記録する方法

NO IMAGE

はじめに

Gmailを日々使っていると、未読メールが増えてしまい、重要なメールを見逃してしまうことがあります。
特に、業務で複数の受信トレイを管理している場合、未読メールを自動で整理できると便利ですよね。

そこで、Google Apps Script(GAS)を使って、Gmailの未読メールを集計し、スプレッドシートに記録するスクリプトを作成しました。
このスクリプトを使えば、未読メールの件数や送信者を定期的にスプレッドシートに記録し、対応漏れを防ぐことができます。

スクリプトの概要

このスクリプトは以下の処理を行います。

  1. Gmailの未読メールを取得
  2. 送信者、件名、受信日時をスプレッドシートに記録
  3. 毎日自動で実行するように設定

スクリプトのコード

以下のコードをGoogle Apps Scriptのエディタに貼り付けてください。

function logUnreadEmails() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var threads = GmailApp.search("is:unread"); // 未読メールを取得
  var now = new Date();
  
  // ヘッダーがない場合、追加
  if (sheet.getLastRow() === 0) {
    sheet.appendRow(["記録日時", "送信者", "件名", "受信日時"]);
  }

  threads.forEach(thread => {
    var messages = thread.getMessages();
    messages.forEach(message => {
      if (!message.isUnread()) return; // 既読メールはスキップ

      var sender = message.getFrom();
      var subject = message.getSubject();
      var date = message.getDate();
      sheet.appendRow([now, sender, subject, date]);

      message.markRead(); // 記録後に既読にする
    });
  });

  Logger.log("未読メールのデータをスプレッドシートに記録しました。");
}

スクリプトの説明

  1. logUnreadEmails()
    • Gmailの未読メールを検索
    • 送信者、件名、受信日時を取得し、スプレッドシートに書き込み
    • 記録後にメールを既読に変更

使い方

  1. Google スプレッドシートを作成
    • Google スプレッドシートを開く
    • 「拡張機能」→「Apps Script」を開く
  2. スクリプトを貼り付けて保存
  3. スクリプトを実行
    • Apps Script のエディタで logUnreadEmails() を実行
  4. スプレッドシートを確認
    • Gmailの未読メールが一覧として記録されていることを確認

スケジュール実行(自動更新)

毎日自動で未読メールを記録する場合は、トリガーを設定します。

  1. Google Apps Script のエディタで「編集」→「現在のプロジェクトのトリガー」を開く
  2. 「トリガーを追加」ボタンを押す
  3. 関数を logUnreadEmails に設定
  4. 実行タイミングを「時間主導型」にして、1日ごと・1時間ごとなどに設定

応用:特定のラベルの未読メールを記録

特定のラベルの未読メールだけを記録したい場合、以下のように変更します。

var threads = GmailApp.search("label:仕事 is:unread"); // 「仕事」ラベルの未読メールのみ取得

おわりに

このスクリプトを使えば、未読メールの管理を自動化し、重要なメールを見逃さずに済みます。
業務でのメール管理やタスク管理に活用してみてください!

GASカテゴリの最新記事