MINARA

メール(Gmail OAuth)

OAuth 認証された Gmail API。メッセージ送信、Webhook 受信、バックグラウンドワーカー経由のストリーミング編集に対応します。

🟢 実行時すぐ使える。 OAuth 2.0 デバイスフローを利用した Gmail API です。 バックグラウンドの gmail-inbound-daemon ワーカーがスレッドをポーリングし、 受信したメッセージをディスパッチしてストリーミングを実現します。

機能概要

  • OAuth による認証:ユーザーは認証情報を保存せずにアクセスを許可します
  • ストリーミング編集:メッセージはバックグラウンドワーカー経由でチャットのようにリアルタイム更新されます
  • Webhook:即時配信用のオプションの pubsub トピック(Cloud Pub/Sub の設定が必要)
  • スレッド対応:返信は同じ会話スレッド内に保持されます
  • 宛先の上書きchannel パラメータで別の Gmail アカウントにルーティングします

セットアップ

1. Google Cloud プロジェクトの作成

  1. Google Cloud Console にアクセスします
  2. 新しいプロジェクトを作成します(既存のプロジェクトでも可)
  3. Gmail API を有効にします:
    • API とサービスのライブラリで "Gmail API" を検索します
    • "Enable" をクリックします
  4. OAuth 2.0 同意画面 を作成します:
    • "OAuth consent screen" に移動して作成します
    • ユーザータイプは "External" を選択します
    • アプリ名、サポートメール、開発者連絡先を入力します
    • スコープ https://www.googleapis.com/auth/gmail.modify を追加します
  5. OAuth 2.0 クライアント ID を作成します:
    • "Credentials" に移動し、認証情報を作成して OAuth クライアント ID を選択します
    • "Desktop app" を選択します
    • JSON をダウンロードします(クライアント ID とシークレットが必要になります)

2. Minara への認証情報の設定

かんたんな方法。 Agent に依頼します:

"connect Gmail to send me notifications using OAuth"

Agent がデバイスフローをガイドし、アクセスを許可します。

手動での設定:

minara auth messaging add email-gmail

またはプロジェクトの .env ファイルに直接記述します:

GMAIL_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
GMAIL_OAUTH_CLIENT_SECRET=your-client-secret
[email protected]

3.(オプション)即時 Webhook の有効化

ポーリングの代わりにリアルタイムで返信を受信するには:

  1. Gmail 通知用の Cloud Pub/Sub トピック を作成します
  2. Minara インスタンスを指す プッシュサブスクリプション を設定します
  3. .env に追加します:
GMAIL_PUBSUB_TOPIC=projects/your-project/topics/gmail-notifications

受信メッセージ

バックグラウンドの gmail-inbound-daemon ワーカーは 30 秒ごとに受信トレイをポーリングし(GMAIL_POLL_INTERVAL_SEC で設定可能)、受信したメッセージをワークフローまたは Agent チャットにディスパッチします。

スレッド処理:返信は元のメッセージを送信したワークフローまたはチャットセッションにルーティングされ、会話履歴が保持されます。

レート制限

  • 送信:ユーザーごとに1分あたり100通(Gmail API の制限)
  • 受信:デフォルトで30秒ごとにポーリング。Pub/Sub 設定時は即時
  • スレッド読み取り:受信メッセージごとに1回の呼び出し

トラブルシューティング

設定後に "Authorization required" と表示される

  • OAuth トークンの有効期限が切れています。minara auth messaging test email-gmail を実行して更新してください。

返信を受信できない

  • デーモンが稼働しているか確認します。minara learn crongmail-inbound-daemon が active と表示されるはずです
  • Pub/Sub トピックが正しく設定されているか確認します(Webhook を使用する場合)
  • Agent のログを確認します:tail -f ~/.minara/logs/agent.log | grep gmail

SMTP Email との違い

機能Gmail OAuthSMTP
ストリーミング編集
返信の受信
OAuth 設定ありなし
任意のプロバイダーと連携不可可(任意のリレー)
設定の複雑さ

目次