言語を切り替える
テーマを切り替える

OpenClaw Gmail連携:secure-gmailスキルで実現するメール自動分類とスマート返信

午前1時、私は画面に表示された「未読メール:327」という数字を見つめていました。

またしても眠れぬ夜です。コーヒーの飲み過ぎではありません。その赤い数字を見るたびに心拍数が上がるからです。進捗を急かすクライアント、「至急」と書かれた上司からの転送メール、そしてプロモーションメールが入り乱れています。「緊急」マークがついた3通を開いてみると、2通はセール広告、1通は先週の議事録でした。

Gmailのスマート分類も試しましたし、Zapierも使ってみました。しかし、無料枠はすぐになくなるし、重要なメールが「プロモーション」に入ってしまうこともありました。何より、自分のメールデータをクラウドの自動化プラットフォームに預けることに不安を感じていました。

そんなある晩、GitHubで偶然見つけたのが OpenClaw でした。

なぜZapierではなくOpenClawなのか?

正直に言うと、最初は私も疑っていました。「また新しいAIツールか?」と。

しかしドキュメントを10分ほど読んで、3つの点に惹かれました:

第一に、データが完全にローカルにあること。OpenClawは自分のPC上で動作し、GmailのOAuthトークンもメール内容もクラウドサーバーには送信されません。顧客の機密情報を扱う私にとって、これは決定的な要素でした。2026年のClawHavoc事件を覚えていますか?悪意のあるスキルによって多くのAPIキーが盗まれた事件です。データがローカルにあれば、少なくともリスクは半減します。

341件
ClawHavoc事件で発見された悪意あるスキルの数

第二に、コストが可視化できること。Zapierはタスク数課金ですが、私は毎日100通以上のメールを処理するので、すぐに上限に達してしまいます。OpenClawならClaude APIを直接叩くので、Sonnet 3.5を使っても1通$0.02程度。月額$60もあれば十分で、プラットフォーム手数料もありません。

第三に、真のカスタマイズ性。Zapierのような「If This Then That」の単純なロジックではなく、TypeScriptで自由にロジックを書けます。例えば「上司の『時間ある?』は実は『明日までに提出せよ』という意味だ」といった暗黙の了解も、コードで表現できるのです。

もちろん、OAuthの設定やコードを書く手間はあります。しかし、SaaSにお金を払い続けるより、自分でシステムを掌握できる満足感の方が遥かに大きいです。

OAuth 2.0設定:ハマらないためのガイド

GmailのOAuth設定は、Google Cloud Consoleの複雑さもあって、最初は戸惑うかもしれません。

私が踏んだ地雷を避けるためのステップバイステップガイドです:

ステップ1:Google Cloud プロジェクトの作成

Google Cloud Consoleを開き、右上の「プロジェクトの作成」をクリックします。名前は適当に「OpenClaw Email Assistant」などでOK。作成後、必ずそのプロジェクトに切り替えてください(私はこれを忘れて時間を無駄にしました)。

ステップ2:Gmail APIの有効化

左側のメニューから「APIとサービス」→「APIとサービスの有効化」を選択。「Gmail API」を検索して、「有効にする」をクリックします。

ステップ3:OAuth同意画面の設定

「APIとサービス」→「OAuth同意画面」へ。「外部(External)」を選択します(個人利用でも、Google Workspace組織外ならこれを選びます)。

入力項目:

  • アプリ名:My Email Assistantなど
  • ユーザーサポートメール:自分のGmailアドレス
  • デベロッパーの連絡先情報:自分のメールアドレス

そして重要なのが「スコープ」の追加です。以下を必ずチェックしてください:

  • https://www.googleapis.com/auth/gmail.readonly(閲覧)
  • https://www.googleapis.com/auth/gmail.modify(既読/アーカイブ操作)
  • https://www.googleapis.com/auth/gmail.compose(下書き作成)

私は最初 readonly だけにしてしまい、後でアーカイブ機能が動かずに再設定する羽目になりました。

ステップ4:OAuthクライアントの作成

「認証情報」ページ → 「認証情報の作成」→ 「OAuthクライアントID」。
アプリケーションの種類は「デスクトップアプリ」を選択。

作成すると「クライアントID」と「クライアントシークレット」が表示されます。すぐにコピーして保存してください

OpenClawの .env ファイルなどに設定します:

GMAIL_CLIENT_ID=あなたのクライアントID.apps.googleusercontent.com
GMAIL_CLIENT_SECRET=あなたのクライアントシークレット

ステップ5:初回認証

OpenClawのGmailスキルを実行すると、ブラウザが開いて認証を求められます。「Google hasn’t verified this app(Googleはこのアプリを確認していません)」という警告が出ますが、テストモードなので正常です。
「詳細(Advanced)」→「[アプリ名]に移動(安全ではない)」をクリックして許可します。

成功するとトークンがローカル(通常 ~/.openclaw/tokens/gmail.json)に保存されます。このファイルは絶対にGitHubなどにアップロードしないでください.gitignore に追加必須です。

secure-gmailスキルの開発:カオスから秩序へ

OAuth設定が終われば、楽しいコーディングの時間です。
私は secure-gmail というスキルを作成しました。主な機能は以下の4つです。

機能1:メール自動分類

Gmail標準の分類では不十分でした。私は以下の4つのタグで分類することにしました:Work(仕事)/ Personal(個人)/ Marketing(マーケティング)/ Important(重要)

async function categorizeEmail(email: GmailMessage): Promise<string[]> {
  const prompt = `
あなたはメール分類アシスタントです。以下のメール内容に基づき、該当するカテゴリを選択してください(複数可):

送信者: ${email.from}
件名: ${email.subject}
本文冒頭200文字: ${email.body.substring(0, 200)}

カテゴリオプション:
- work: 仕事関連(プロジェクト、会議、クライアント連絡など)
- personal: 個人メール(友人、家族、私事)
- marketing: マーケティング(プロモーション、広告、ニュースレター)
- important: 重要かつ緊急("緊急"、"今日中"、"締切"などのキーワード、または上司/重要顧客から)

カテゴリタグのみをカンマ区切りで返してください。例: work,important
`;

  const response = await callClaudeAPI(prompt);
  return response.split(',').map(tag => tag.trim());
}

ヒント:本文全体ではなく冒頭200文字だけを渡すことで、トークン消費を抑えつつ十分な精度が得られます。

機能2:スマート下書き生成

「承知いたしました」「ありがとうございます」といった定型文を打つのに飽きていませんか?
私は3種類のテンプレートを用意しました。

1. クイック返信(単純な確認用)
「礼儀正しく、かつ短潔に(50字以内)。『了解』『はい』だけの素っ気ない返事は避けること。」

2. 詳細返信(説明が必要な場合)
コンテキスト(要点)を入力し、それを元にAIが丁寧なメール文面を構成します。
「まずは感謝を述べ、質問に一つずつ答え、次のアクションの日程を明確にする。」

3. お断りメール(これが一番助かる!)
「相手の依頼を丁寧に断るメールを作成してください。感謝と理解を示しつつ、客観的な理由を説明し(『忙しい』とは言わず)、可能なら代替案を提示してください。」

AIが書くお断りメールは、私が書くより角が立たないことが多いです。「素晴らしいご提案ですが、現在はリソースが不足しており…」と、絶妙なトーンで書いてくれます。

機能3:優先順位付け

分類だけでなく、読むべき順番も知りたいですよね。0〜10点のスコアリングシステムを導入しました。

function calculatePriority(email: GmailMessage, categories: string[]): number {
  let score = 5; // 基礎点

  if (categories.includes('important')) score += 3;
  if (categories.includes('work')) score += 2;
  if (categories.includes('marketing')) score -= 3;
  if (email.unread) score += 1;

  // 24時間以内のメールは加点(鮮度重視)
  const hoursSinceReceived = (Date.now() - email.receivedAt) / 3600000;
  if (hoursSinceReceived < 24) score += 1;

  // VIPリスト(上司や重要顧客)からのメールは高得点
  const vipSenders = ['[email protected]', '[email protected]'];
  if (vipSenders.some(vip => email.from.includes(vip))) score += 3;

  return Math.max(0, Math.min(10, score));
}

これで毎朝、「Priority 10: [上司] Q1予算について」がリストの一番上に表示されるようになりました。

機能4:パーソナライズ調整

AIも完璧ではありません。「至急(Urgent)」という言葉を乱用するクライアントのメールを毎回「重要」と判定されては困ります。
そこで custom-rules.json で調整できるようにしました。

{
  "senderRules": {
    "[email protected]": {
      "ignoreKeywords": ["urgent", "asap"],
      "priorityModifier": -1
    }
  }
}

これで、特定の相手からの「至急」は無視し、優先度を下げるという処理が可能になります。

セキュリティ強化:ClawHavocを教訓に

2026年3月のインシデントは忘れてはいけません。サードパーティのスキルがOAuthトークンを盗み出した事例です。

私のセキュリティチェックリスト:

  1. コード監査:コミュニティのスキルを使う場合は、必ずコードを確認します。fetchaxios で不審なドメインにデータを送っていないか? googleapis.comanthropic.com 以外の通信は警戒すべきです。
  2. 最小権限:OAuthスコープは必要最低限に。gmail.send(送信権限)は外しました。下書き作成(compose)までにしておけば、万が一乗っ取られても勝手にメールを送られることはありません。
  3. トークン暗号化:保存するトークンファイルは、Node.jsの crypto モジュールを使ってAES-256-CBC等で暗号化し、復号キーは環境変数で管理します。平文で保存しないのが鉄則です。
  4. ログ監査:OpenClawのログを定期的にgrepして、怪しい外部通信がないかチェックします。

実践での最適化とコスト

スタイルの調整

AIの文章が硬すぎる? プロンプトに自分の過去のメールを数通「サンプル」として与え、「私の口調を真似て」と指示すると驚くほど自然になります。「お世話になります」から「こんにちは!」へ、自分のスタイルに合わせて調整しましょう。

パフォーマンスとコスト

100通のメールを1通ずつAPIに投げていては時間がかかります。
バッチ処理を導入し、30〜40通分の情報をまとめて1回のプロンプトで分類させることで、処理時間を5分から1分未満に短縮しました。

また、モデルの使い分けも有効です。

  • マーケティングメールの判定 → 安価な Haiku
  • 通常の仕事メール → Sonnet 3.5
  • 重要かつ複雑な返信 → Opus

この工夫により、月額コストは$80から$45まで削減できました。

$45
最適化後の月額コスト

一ヶ月後の変化

今、未読メールは12通しかありません。残りの300通以上は、自動的に分類・処理済みです。

毎朝2時間かかっていたメール処理が、30分に短縮されました。浮いた時間で新しい技術(Rustなど)を学ぶ余裕もできました。何より、メールボックスを開くときのストレスがなくなりました。

OpenClawは魔法ではありませんが、自分のための、安全で制御可能な自動化システムを構築できる強力なツールです。データは手元に、コードは自分の管理下に。これこそが、あるべきAIアシスタントの姿ではないでしょうか。

OpenClaw Gmail連携 完全ガイド

OAuth設定からスキル開発、自動化までメール管理を一変させるステップ

⏱️ Estimated time: 4 hr

  1. 1

    Step1: Google Cloud Project設定

    Google Cloud Consoleでプロジェクトを作成。
    Gmail APIを有効化し、OAuth同意画面(外部)を設定。
    スコープには gmail.readonly, gmail.modify, gmail.compose を指定。
  2. 2

    Step2: OAuth認証情報取得

    OAuthクライアントID(デスクトップアプリ)を作成。
    クライアントIDとシークレットを .env ファイルに保存。
    初回実行時にブラウザで認証し、トークンをローカル生成。
  3. 3

    Step3: 分類スキル開発

    4つのタグ(Work, Personal, Marketing, Important)を定義。
    メール冒頭200文字を使用し、Claudeに分類させるプロンプトを作成。
    JSON形式等で結果を受け取るロジックを実装。
  4. 4

    Step4: スマート機能実装

    返信タイプ別(クイック、詳細、拒絶)のプロンプトテンプレートを用意。
    スコアリングロジック(VIP加点、時間減衰など)で優先度計算を実装。
  5. 5

    Step5: セキュリティと最適化

    トークンファイルの暗号化保存を実装。
    モデルの使い分け(Haiku/Sonnet/Opus)によるコスト削減。
    バッチ処理によるAPI呼び出し回数の削減。

FAQ

ZapierやMake.comよりOpenClawが良い理由は?
主な理由は3つです:
1. データセキュリティ:すべての処理がローカルで行われ、トークンやメール内容が外部クラウドに保存されません。
2. コスト:API直接利用のため、大量のタスクを処理しても月額固定費がかからず、単価も安価です。
3. 柔軟性:コードベースでロジックを書けるため、複雑な条件分岐やパーソナライズが可能です。
OAuth設定でよくある失敗は?
最も多いのは「スコープ不足」です。readonlyだけ設定してしまい、アーカイブや下書き作成ができずに再設定が必要になるケースです。最初から modify と compose も許可することをお勧めします。また、プロジェクトの切り替え忘れにも注意してください。
AIが重要メールを見落とさないか心配です。
3層の対策を行います:
1. プロンプト最適化:VIPリストやキーワードによる明示的な指示。
2. 個別ルール:特定の送信者に対する例外ルールの適用。
3. VIP強制加点:上司や重要顧客のアドレスは無条件で高スコアを付与し、AIの判断ミスをカバーします。
コストはどれくらいかかりますか?
日100通程度の処理で、最適化前は約$60-80/月でしたが、モデルの使い分け(スパム判定に安いモデルを使うなど)やバッチ処理を行うことで、$45/月程度に抑えることが可能です。処理量が少なければさらに安くなります。
トークンのセキュリティはどうすればいいですか?
トークンファイルはGit管理外(.gitignore)にし、可能であればファイル自体を暗号化して保存します。また、使用するスキルコード(特にサードパーティ製)に不審な外部通信がないか定期的にレビューすることが重要です。
AIの文章が自分らしくない場合は?
プロンプトに「Few-Shot Learning(少数事例学習)」を取り入れます。自分が過去に書いたメールを数通サンプルとしてプロンプトに含め、「このトーンとマナーを模倣して」と指示することで、非常に自然な文体を生成できるようになります。

5 min read · 公開日: 2026年2月5日 · 更新日: 2026年2月5日

コメント

GitHubアカウントでログインしてコメントできます

関連記事