本サイトはアフィリエイト広告(A8.net/もしもアフィリエイト/アクセストレード等)を利用しています
Gmail条件転送をGASで自動化する完全手順|特定キーワード・送信元別の振り分け
📂 Gmail自動化

Gmail条件転送をGASで自動化する完全手順|特定キーワード・送信元別の振り分け

📅 ⏱ 読了 約5分 ✍️ 凛

💡 本記事には広告(アフィリエイトリンク)が含まれる場合があります。

こんにちは、凛です。Gmail標準の転送ルールでは「件名にXがあれば」程度しかできない。GASなら本文の内容や添付ファイルの有無まで条件にできます

基本実装

function autoForward() {
  const threads = GmailApp.search('is:unread label:重要 -label:転送済');
  const FORWARD_TO = 'team@example.com';
  const label = GmailApp.getUserLabelByName('転送済') || GmailApp.createLabel('転送済');

  threads.forEach(thread => {
    thread.getMessages().forEach(msg => {
      if (msg.getBody().includes('注文')) {
        msg.forward(FORWARD_TO);
      }
    });
    thread.addLabel(label);
  });
}

5分おきトリガーで動かせば、未読+特定条件のメールを自動転送。

カスタマイズ例

送信元ドメインで分岐

const from = msg.getFrom();
if (from.includes('@partner-a.com')) {
  msg.forward('team-a@example.com');
} else if (from.includes('@partner-b.com')) {
  msg.forward('team-b@example.com');
}

添付ファイルだけ転送

const attachments = msg.getAttachments();
if (attachments.length > 0) {
  GmailApp.sendEmail(FORWARD_TO, '添付転送: ' + msg.getSubject(), '元: ' + msg.getFrom(), {
    attachments: attachments
  });
}

Slack/Discordに転送

function forwardToSlack(msg) {
  const payload = {
    text: `📧 *${msg.getSubject()}*\n送信元: ${msg.getFrom()}\n${msg.getPlainBody().substring(0, 500)}`
  };
  UrlFetchApp.fetch(SLACK_WEBHOOK_URL, {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify(payload)
  });
}

まとめ

  • GmailApp.search で柔軟な検索
  • 本文・添付・送信元で詳細条件分岐
  • ラベルで二重転送防止
  • Slack/Discord連携も簡単

関連記事


この記事を書いた人:凛

2児のママで現役ナース。夜勤明けの細切れ時間を副業GASに投じ、月5〜8万円の副収入を継続中。「看護師でもコードは書ける」を合言葉に、家事育児とプログラミングを両立する等身大の情報を発信しています。本記事のコードは静的検証済みです(構文・API仕様・ロジックを確認)。