【GASでGmail自動転送】特定条件のメールをGASで自動転送する方法

  • URLをコピーしました!

Gmailの特定条件に一致するメールをGAS(Google Apps Script)で自動転送する方法を解説。基本的なスクリプトの書き方やトリガーの設定方法を紹介します。複数アカウントでの管理もラクになるので、手動で転送する手間を省きたい方は必見。

目次

GASとは?

GAS(Google Apps Script)は、Googleの各種サービス(Gmail、スプレッドシート、Googleドライブなど)を自動化できるスクリプト言語です。JavaScriptベースなので比較的学習しやすく、APIを活用してさまざまなタスクを効率化できます。

本記事では、GASを使ってGmailの特定条件のメールを自動転送する方法を紹介します。
「普通に手動で転送したほうが早いんじゃない?」と思うかもしれませんが、複数のアカウントや大量のメールを処理する場合はGASで自動化すると圧倒的に楽になります。


今回のコードで実現できる機能

今回紹介するGASのスクリプトでは、以下のような機能を実現できます。

  • 特定の条件(例: 件名に「重要」が含まれる)に合致するメールを転送
  • Gmail内の未読メールのみを対象にする設定
  • 複数の宛先に転送(カスタマイズ可)
  • 一定の頻度で自動実行

例えば、「特定のクライアントからのメールを別のアドレスに転送したい」「Gmailを複数アカウントで使い分けているけど、手動で転送するのが面倒」といった場合に便利です。


今回のコードで必要な準備

  1. GoogleアカウントでGASを利用できるようにする
    • Googleドライブを開き、「新規」→「その他」→「Google Apps Script」を選択。
  2. Gmailの転送先アドレスを登録(推奨)
    • Gmail設定(⚙️アイコン → [すべての設定を表示])から「メール転送とPOP/IMAP」を開き、転送先のアドレスを追加しておく。
    • これをしないと転送時にスパム扱いされる可能性がある。
  3. GASの実行権限を承認
    • 初回実行時にGoogleの認証画面が表示されるので、スクリプトの実行を許可。

GASのスクリプト解説

以下のコードをGASのエディタに貼り付けて実行すると、件名に「重要」を含む受信メールを自動転送できます。

function autoForwardEmails() {
  var threads = GmailApp.search('subject:"重要" in:inbox'); // 件名が「重要」のメールを取得
  threads.forEach(function(thread) {
    thread.getMessages().forEach(function(msg) {
      msg.forward("forward@example.com"); // 転送先のメールアドレスを指定
    });
  });
}

スクリプトの解説

  • GmailApp.search('subject:"重要" in:inbox')
    → Gmailの受信トレイ内で、件名に「重要」を含むメールを検索。
  • .forEach(function(thread) {...})
    → 見つかったスレッドごとに処理を実行。
  • .getMessages().forEach(function(msg) {...})
    → スレッド内の全メッセージを取得し、各メールを転送。
  • msg.forward("forward@example.com")
    → 指定したアドレスへメールを転送。

カスタマイズ例

  • to:"指定のメールアドレス"を条件に加えれば、特定の送信元メールだけを転送可能。
  • is:unread を追加すれば、未読メールのみ対象にできる。

今回のコードでのトリガーの設定

GASでスクリプトを自動実行するにはトリガーを設定します。

トリガーの追加手順

  1. GASエディタを開く
  2. 左側の「時計アイコン(トリガー)」をクリック
  3. 「トリガーを追加」ボタンを押す
  4. 以下のように設定:
    • 実行する関数:autoForwardEmails
    • 実行するデプロイ:デフォルト
    • イベントのソース:時間主導型
    • 時間ベースのトリガーのタイプ:1時間ごと
    • 保存をクリック

初回実行時の承認手順について

初回実行時にはGoogleの認証が必要です。

  1. スクリプトを実行すると、「このアプリはGoogleで確認されていません」と警告が出る。
  2. 「詳細」をクリックし、下部の「(安全でないページ)に移動」を選択。
  3. Googleアカウントの許可を求められるので、「許可」ボタンを押す。

応用例・カスタマイズ

1. 複数の転送先を設定

function autoForwardEmails() {
  var threads = GmailApp.search('subject:"重要" in:inbox');
  var recipients = ["user1@example.com", "user2@example.com"];
  threads.forEach(function(thread) {
    thread.getMessages().forEach(function(msg) {
      recipients.forEach(function(email) {
        msg.forward(email);
      });
    });
  });
}

FAQ

Q: スクリプトが実行されているか確認する方法は?
A: Gmailの「送信済みメール」フォルダをチェックすると転送されたメールが確認できます。エラーが発生した場合は「スクリプトエディタ」の[実行ログ]を確認。

Q: 既存のフィルタと併用できる?
A: 可能。ただし、Gmailの転送設定と重複すると意図しない動作をすることもあるため、GAS側で明確なフィルタ条件を設定するのがオススメ。

Q: GASの無料枠でどれくらい動かせる?
A: 無料アカウントだと1日あたり90分までの実行時間制限があります。大量のメールを処理する場合はGoogle Workspaceの有料プランを検討。

まとめ

  • GASを使えば、Gmailの特定条件に合致するメールを自動転送可能。
  • コードを一度書けば、あとはトリガーで放置OK。
  • 手動転送よりも楽なので、大量のメール管理が必要な場合に便利。
  • ただし、Gmailのフィルタと併用するなら設定に注意。

「普通に手動で転送してもいいけど、GASなら自動化できる」という感じですね。
時間をかけずに効率化したいなら、ぜひ試してみてください!

  • URLをコピーしました!
目次