・約3分で読めます

メールの「待ち」を自動化する — Gmail API × GitHub Actionsで特定メールを監視してLINE通知【2026】


PRXサーバー国内シェアNo.1のレンタルサーバー。高速・安定・サポート充実で初心者にもおすすめ。
Xサーバー 公式サイト →

「AdSenseの審査結果、いつ来るんだろう」——こういういつ届くか分からないメールを待つのは地味にストレスです。受信箱を何度も見に行くのも非効率。そこで、Gmail APIで特定のメールを毎日自動チェックし、来たらLINEに通知する仕組みをGitHub Actionsで作りました。AdSenseに限らず、ASPの提携可否や各種審査の通知にも応用できます。

全体像

毎日 決まった時刻(GitHub Actions・定期実行)
  1. Gmail API で対象メールを検索(送信元・期間で絞り込み)
  2. 該当があれば件名・差出人・要約を取り出す
  3. LINEに通知(来ていない日は何もしない)

  人は通知を見て、次の行動を判断する

PCを閉じていても、GitHubのサーバー側で動くので「放置で監視」が成立します。

ステップ1:Gmail読み取り用のトークンを用意する

Gmail APIを使うには、gmail.readonly スコープのOAuthトークンが必要です。すでに別用途(Search Console等)でOAuthクライアントを持っているなら、それを再利用して同意フローをやり直すだけで済みます。

  • ローカルで一度だけブラウザ同意フローを実行し、リフレッシュトークンを取得
  • 取得した client_id / client_secret / refresh_token を GitHub Secrets に保存
  • CIでは環境変数から認証(ブラウザ操作は不要)

つまずきポイント:Google Cloudプロジェクトで Gmail APIを有効化していないと、accessNotConfigured(403)で弾かれます。gcloud services enable gmail.googleapis.com などで有効化してから再実行してください。

ステップ2:対象メールを検索する

Gmailの検索クエリで、送信元と期間を絞り込みます。AdSenseなら送信元(adsense-noreply@google.com)や本文キーワード、ASPなら各社のドメインを指定します。

検索でヒットしたメッセージの差出人・件名・冒頭を取り出し、想定した送信元かどうかを確認してから通知に回します。マーケティングメールまで拾わないよう、送信元や件名(「承認」「審査」など)でフィルタするのがコツです。

ステップ3:GitHub Actionsで毎日実行+通知

スケジュール起動のワークフローを用意し、スクリプトを毎日走らせます。該当メールがあればLINEのプッシュ通知を送り、なければ静かに終了します(「まだ来ていません」を毎日送ると通知疲れするため)。

on:
  schedule:
    - cron: '17 23 * * *' # 毎日 朝の時間帯に実行
  workflow_dispatch:

LINEのチャンネルアクセストークンと送信先IDもSecretsに入れておけば、デプロイ失敗通知など他の用途と同じ仕組みを使い回せます。

重複通知を防ぐ

同じメールを毎日通知しないよう、通知済みのメッセージIDを保持します。GitHub Actionsのキャッシュに小さな状態ファイルを置く方法なら、リポジトリにコミットを増やさずに重複を防げます。一過性の監視用途であれば、検索期間を直近数日に絞るだけでも実用上は十分です。

なぜ「通知まで」で止めるのか

技術的には、承認されたら次の自動処理まで走らせることもできます。それでも検知と通知までにとどめたのは、承認/却下で次の行動が変わり、判断を伴うからです。

  • 承認 → 次の設定・実装に進む
  • 却下 → 理由を読んで対応する

判断が必要な部分は人が担い、機械は「見張りと通知」に徹する。この切り分けが、シンプルで壊れにくい自動化になります。

まとめ

  • 「いつ来るか分からないメール」は Gmail API × GitHub Actions で監視できる
  • PCを閉じても動く(サーバー側実行)ので、放置で成立する
  • Gmail APIの有効化忘れ(403)に注意
  • マーケメールを拾わないよう送信元・件名でフィルタ
  • 「検知・通知は自動、判断・実行は人」の切り分けが安全

審査待ちのソワソワを、仕組みに肩代わりさせましょう。


※ 本記事は当方の実運用での構築をもとにした技術メモです。具体的なトークン・ID・プロジェクト情報は伏せています。

関連記事: SEO内部リンク改善をGitHub Actionsで週次自動化する — 同じGitHub Actions定期実行の仕組みをSEO改善に応用した実例