ad

Contents
アップデート 2026
概要
“Gmailを効率化: Google Apps Scriptを使用して、頻繁に送信する送信者からのメールに自動ラベルを付ける”
山のようなEメールをふるいにかけて、送信者のドメインごとにラベル付けするスクリプトです。
説明と目的
タスクのために毎日大量のメールを受信する中で、特定の送信者からのメールをもっと効率的に管理したいと感じたことはありませんか?このスクリプトは、頻繁に連絡を取るドメインからのメールに自動的にラベルを付けることで、そのようなニーズに対応します。
ステップ・バイ・ステップ・ガイド
コードの説明
このスクリプトは、Gmailの受信トレイのメールをスキャンし、送信者のドメインに基づいてメールを数えます。そして、一定数のメールを受信したドメインに自動的にラベルを作成し、適用します。
安全への配慮
このスクリプトは、メールの内容を読まずに送信者のドメイン情報のみを抽出します。ただし、トリガーやApps Scriptを利用する際には、パーミッションが要求されます。セキュリティの詳細については、Googleの公式ドキュメントを参照してください。
もし、スクリプト実行後にもとに戻したい場合
1. ラベル内のメールを全て選択
2. 受信トレイに移動 を実行
3. ラベルを削除
という手順で受信トレイへ戻すことができます。
また、アーカイブしたメールは「すべてのメール」でも確認ができます。
Sample Script
function labelAndArchiveFrequentSenders() {
var threads = GmailApp.getInboxThreads();
var sendersCount = {};
// 1. 受信トレイのスレッドを解析してドメインごとの件数をカウント
threads.forEach(function(thread) {
var messages = thread.getMessages();
messages.forEach(function(message) {
var fromAddress = message.getFrom();
// メールアドレスからドメイン部分を抽出
var domainMatch = fromAddress.match(/@([^>]+)/);
if (domainMatch) {
var domain = domainMatch[1].replace('>', '').trim();
sendersCount[domain] = (sendersCount[domain] || 0) + 1;
}
});
});
// 2. 閾値以上のドメインに対して処理を実行
var threshold = 5;
for (var domain in sendersCount) {
if (sendersCount[domain] >= threshold) {
var label = GmailApp.getUserLabelByName(domain);
if (!label) {
label = GmailApp.createLabel(domain);
}
// 3. 受信トレイにある、対象ドメインからのメールを検索
// label付与と同時にアーカイブ(受信トレイから消去)を行う
var searchQuery = 'label:inbox from:@' + domain;
var targetThreads = GmailApp.search(searchQuery);
targetThreads.forEach(function(thread) {
thread.addLabel(label); // ラベルを付ける
thread.moveToArchive(); // 受信トレイからアーカイブする
});
}
}
}ad





このPostは2023年に書いたスクリプトをアップデートしたPostです。 変更点は、ラベル付けした後に受信トレイにはメールを残さない点です。 受信トレイにメールを残さず、ラベルフォルダにメールを移動します。 より、メールチェックの効率を上げます。