GAS: 頻繁にメールを送信する人のためのGoogle AppsスクリプトでGmailのメール整理を自動化する

Contents

概要

"Gmailを効率化: Google Apps Scriptを使用して、頻繁に送信する送信者からのメールに自動ラベルを付ける"

山のようなEメールをふるいにかけて、送信者のドメインごとにラベル付けするスクリプトです。

説明と目的

タスクのために毎日大量のメールを受信する中で、特定の送信者からのメールをもっと効率的に管理したいと感じたことはありませんか?このスクリプトは、頻繁に連絡を取るドメインからのメールに自動的にラベルを付けることで、そのようなニーズに対応します。

ステップ・バイ・ステップ・ガイド

  1. Google Driveをひらく
    Googleドライブの画面左上にある「+新規」ボタンをクリックし、「その他」から「Google Apps Script」を選択します。
  2. Apps Scriptのエディタをひらく
    スクリプトエディタで開いた新しいタブにスクリプトを貼り付けます。
  3. スクリプトを保存して実行する
    エディター上部の保存アイコンをクリックし、三角形の実行ボタンをクリックする。
  4. トリガーの設定
    新しいトリガーを追加し、このスクリプトを実行する頻度を設定するには、左側の時計 アイコンをクリックします。

コードの説明

このスクリプトは、Gmailの受信トレイのメールをスキャンし、送信者のドメインに基づいてメールを数えます。そして、一定数のメールを受信したドメインに自動的にラベルを作成し、適用します。

安全への配慮

このスクリプトは、メールの内容を読まずに送信者のドメイン情報のみを抽出します。ただし、トリガーやApps Scriptを利用する際には、パーミッションが要求されます。セキュリティの詳細については、Googleの公式ドキュメントを参照してください。

Sample Script

function labelFrequentSenders() {
  var threads = GmailApp.getInboxThreads();
  var sendersCount = {};
  
  threads.forEach(function(thread) {
    var messages = thread.getMessages();
    
    messages.forEach(function(message) {
      var fromAddress = message.getFrom();
      var domain = fromAddress.split('@')[1];
      
      // Count the number of sender emails
      sendersCount[domain] = (sendersCount[domain] || 0) + 1;
    });
  });
  
  // Apply labels only to senders with more than a certain number of emails
  var threshold = 5; // This is an example, please set the actual threshold
  
  for(var domain in sendersCount) {
    if(sendersCount[domain] >= threshold) {
      var label = GmailApp.getUserLabelByName(domain);
      
      if(!label) {
        label = GmailApp.createLabel(domain);
      }
      
      // Apply label to target thread
      GmailApp.search('from:@' + domain).forEach(function(thread) {
        thread.addLabel(label);
      });
    }
  }
}

Thank you