はじめに
Gmailを使っていると、未読メールの管理が大変になることがあります。
特に、特定の送信元や件名のメールを整理したい場合、手動で確認するのは手間がかかります。
そこで、Google Apps Script(GAS)を使って、Gmailの未読メールをスプレッドシートに自動記録するスクリプトを作成しました。
このスクリプトを使うと、以下のような情報を一覧にまとめられます。
- 送信元(From)
- 件名(Subject)
- 受信日時(Date)
- メール本文の冒頭(Snippet)
スクリプトの概要
このスクリプトは以下の処理を行います。
- Gmailの未読メールを取得
- 送信元、件名、受信日時、本文の冒頭を抽出
- スプレッドシートに書き込む
スクリプトのコード
以下のコードをGoogle Apps Scriptのエディタに貼り付けて実行してください。
function logUnreadEmails() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var threads = GmailApp.search("is:unread"); // 未読メールを検索
var messages = [];
threads.forEach(thread => {
var msgs = thread.getMessages();
msgs.forEach(msg => {
if (msg.isUnread()) {
messages.push([
msg.getFrom(),
msg.getSubject(),
msg.getDate(),
msg.getPlainBody().substring(0, 100) // 本文の冒頭100文字
]);
msg.markRead(); // 取得したメールを既読にする(必要ならコメントアウト)
}
});
});
if (messages.length > 0) {
sheet.getRange(sheet.getLastRow() + 1, 1, messages.length, messages[0].length).setValues(messages);
}
}
スクリプトの説明
logUnreadEmails()
GmailApp.search("is:unread")
で未読メールを検索getFrom()
,getSubject()
,getDate()
,getPlainBody()
で必要な情報を取得- 本文は冒頭100文字だけ記録(長すぎる場合のため)
msg.markRead()
でメールを既読に変更(不要ならコメントアウト)- スプレッドシートの最後の行にデータを追記
使い方
- Google スプレッドシートを開く
- 拡張機能 → Apps Script を開く
- 上記コードを貼り付けて保存
logUnreadEmails()
を実行
これで、未読メールのリストがスプレッドシートに記録されます。
スケジュール実行(自動化)
毎日自動で未読メールを記録する場合は、トリガーを設定します。
- Google Apps Script のエディタで「編集」→「現在のプロジェクトのトリガー」を開く
- 「トリガーを追加」ボタンを押す
- 関数を
logUnreadEmails
に設定 - 実行タイミングを「時間主導型」にして、1時間ごと・1日ごとなどに設定
おわりに
このスクリプトを使うと、Gmailの未読メールを簡単に管理できます。
仕事やプロジェクトの進捗管理に活用してみてください!
コメントを書く