Anil-matcha/open-agent-email

Open-source email infrastructure for AI agents: secure inboxes, REST and MCP APIs, SMTP, human approval workflows, signed webhooks, and Python and TypeScript SDKs. Self-host with Docker and PostgreSQL.

Open Agent Email – AIエージェントのためのメール受信トレイ(セルフホスト型)

概要

  • 各AIエージェントに独自の実際のメールアドレスとメールボックスを提供するセルフホスト型サービスです。受信SMTPを処理してメッセージを保存し、エージェントがメールの読み取り、返信、転送、スケジュール設定を行ったり、リスクのあるメールを送信する前に人間の承認を要求したりできるようにします。
  • REST API、PythonおよびTypeScript SDK、CLI、WebSocketライブストリーム、webhooks、およびMCP(Claude CodeやCursorなどで使用されるプロトコル)を通じて機能を提供します。

AIエージェントにとっての重要性

  • 人とやり取りするエージェントは、多くの場合メール(サポート、サインアップ、請求書など)を必要とします。汎用的な送信サービスを使用すると、エージェントにアイデンティティやスレッド履歴がなく、安全ガードレールも存在しません。
  • Open Agent Emailは、エージェントごとの受信トレイ、会話のスレッド化、SPF/DKIM/DMARC検証、プロンプトインジェクションのスクリーニング、およびオプションの人間による承認ゲートを提供します。

仕組み

People / other agents  →  MX record → Open Agent Email (SMTP listener) → store in DB
                                                   ↑
                                                   │
                                   Agent ↔ REST / SDK / MCP / Webhooks / CLI
  • 受信メールは、存在する受信トレイ宛のもののみが受け入れられ、検証(SPF/DKIM/DMARC)され、AI特有の攻撃がスキャンされて保存されます。
  • 送信メールは、設定した任意のSMTPリレー(SES、SendGrid、Resendなど)を通じて送信されます。承認ゲートが有効な場合、人間が承認/拒否リンクをクリックするまでメッセージは保留されます。

主な機能

カテゴリ ハイライト
受信トレイとスレッド 無制限の受信トレイ、適切な返信スレッド、ラベル、検索、ゴミ箱/復元、スケジュール送信(最大90日)、10MB以下の添付ファイル、署名付きダウンロードリンク
安全性 プロンプトインジェクション検出、オプションのウイルススキャン、有効期限付き承認ゲート、受信トレイごとのAPIキー(読み取り専用、送信、レビュー)、受信者ブロック、ワンクリック登録解除
認証と検証 メッセージごとにSPF/DKIM/DMARCチェックを保存。厳格なDMARC失敗は拒否
送信 任意のSMTPリレー、バックオフ付き再試行、べき等キー、完全な送信履歴
配信追跡 SESイベント処理(配信、バウンス、苦情)と自動抑制を内蔵
ドメインサポート カスタムドメインの追加、DNSレコードの取得、ドメインごとの送信メールへのDKIM署名
Webhooksとイベント 署名付きwebhooks、再試行ロジック、リプレイ、検索可能なイベントログ、受信トレイごとまたはグローバルなエンドポイント
連絡先とテンプレート アドレス帳、CSVインポート、同意メモ、フォローアップリマインダー、プレビュー付き再利用可能テンプレート
開発者ツール OpenAPI仕様、PythonおよびTypeScript SDK(ランタイム依存なし)、oae CLI、96個のMCPツール、カーソルスタイルのページネーション、構造化されたエラーコード
運用 SQLite(デフォルト)またはPostgreSQL、Alembicマイグレーション、メトリクスエンドポイント、バックアップ/復元スクリプト、Docker Compose、nginxデプロイ例

典型的なユースケース

  • チャットボットのサポート受信トレイ: support@brand.com がチケットを読み取り、返信を下書きし、リスクのある回答を人間が確認するまで保留します。
  • サインアップ認証: エージェントがユーザーを作成し、自身のメールボックスから確認コードを読み取ります。
  • 安全策付きのアウトバウンドアウトリーチ: キャンペーンの下書き、送信スケジュール設定、メール送信前の承認要求を行います。
  • エージェント間通信: 各エージェントが実際のメールアドレスを持つことで、サービス間でのメールベースのワークフローが可能になります。
  • イベント駆動型ワークフロー: 受信メールがn8n/Zapier/webhooksをトリガーし、さらなる自動化を開始します。
  • パーソナルコンシェルジュ: ローカルエージェントがライブストリーム経由で受信トレイを監視し、返信を下書きし、ユーザーが簡単なリンクで承認します。

はじめに

  1. リポジトリをクローンし、開発スクリプトを実行します(Python 3.11が必要)。サーバーが http://127.0.0.1:8000 で起動し、管理キーが表示されます。
  2. (オプション)Next.jsダッシュボードを実行します: cd client && npm install && npm run dev (http://localhost:3000)。
  3. API/CLI経由で受信トレイを作成し、SMTPリレーを設定し、ドメインのMXレコードをサーバー(ポート25)に向けます。
  4. PythonまたはTypeScript SDK、MCPコマンド、または単純な curl 呼び出しを使用して、メールのリスト表示、読み取り、送信を行います。

技術スタック

  • サーバー: Python 3.11, FastAPI, async SQLAlchemy, Alembic, aiosmtpd (SMTPリスニング用)。
  • データベース: SQLite(デフォルト)または PostgreSQL。
  • ダッシュボード: Next.js 16, React, Tailwind CSS。
  • SDK: Python および TypeScript、ランタイム依存ゼロ。
  • パッケージング: Docker Compose + 本番デプロイ例(nginx, バックアップスクリプト)。

ステータスとコミュニティ

  • 活発に開発中。現在はシングルユーザー(管理キー1つ、マルチテナントアカウントは未実装)。
  • ローカルおよびAmazon SES統合を備えたPostgreSQL 16環境でテスト済み。
  • Discordに参加するか、GitHubでIssue/PRを作成してください。

ライセンス: Apache 2.0。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト