メール(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 プロジェクトの作成
- Google Cloud Console にアクセスします
- 新しいプロジェクトを作成します(既存のプロジェクトでも可)
- Gmail API を有効にします:
- API とサービスのライブラリで "Gmail API" を検索します
- "Enable" をクリックします
- OAuth 2.0 同意画面 を作成します:
- "OAuth consent screen" に移動して作成します
- ユーザータイプは "External" を選択します
- アプリ名、サポートメール、開発者連絡先を入力します
- スコープ
https://www.googleapis.com/auth/gmail.modifyを追加します
- 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 の有効化
ポーリングの代わりにリアルタイムで返信を受信するには:
- Gmail 通知用の Cloud Pub/Sub トピック を作成します
- Minara インスタンスを指す プッシュサブスクリプション を設定します
.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 cronでgmail-inbound-daemonが active と表示されるはずです - Pub/Sub トピックが正しく設定されているか確認します(Webhook を使用する場合)
- Agent のログを確認します:
tail -f ~/.minara/logs/agent.log | grep gmail
SMTP Email との違い
| 機能 | Gmail OAuth | SMTP |
|---|---|---|
| ストリーミング編集 | ✓ | ✗ |
| 返信の受信 | ✓ | ✗ |
| OAuth 設定 | あり | なし |
| 任意のプロバイダーと連携 | 不可 | 可(任意のリレー) |
| 設定の複雑さ | 中 | 低 |