トランザクションメールAPIを使用すると、アプリケーションは特定のイベントによってトリガーされるメール(パスワードリセット、注文確認、アカウント通知など)を、一括マーケティングキャンペーンではなく送信できます。長年、開発者はトランザクションメールサービスに頼り、生のSMTP接続をクリーンなRESTエンドポイントと信頼性の高い配信インフラに置き換えてきました。
しかし、AIエージェントの台頭は新たな要件をもたらします。エージェントは単発の通知を送信するだけではありません。コンテキストに基づいたフォローアップを送信し、受信返信を処理し、会話スレッドを維持し、24時間自律的に動作します。従来のトランザクションメールAPIは、人間と対話するアプリケーション向けに構築されました。AIエージェントには、双方向で機能するプログラマティックメールレイヤーが必要です。
このガイドでは、トランザクションメールAPIとは何か、AIエージェントがなぜそれを必要とするのか、そしてAgentSendのメールSDKをPythonとTypeScriptで使い始める方法について説明します。
トランザクションメールAPIとは?
トランザクションメールは、ユーザーアクションやシステムイベントによってトリガーされるメッセージです。購読者リストに送信されるマーケティングメールとは異なり、各トランザクションメールは特定の何か(購入、登録、サポートチケット、エージェント発のフォローアップ)に応じて単一の受信者に送信されます。
APIが登場する前、開発者はSMTPでこれらのメールを送信していました。接続の管理、リトライの処理、バウンス応答の解析、配信性の手動管理を行っていました。トランザクションメールAPIは、これらすべてをシンプルなHTTPインターフェースの背後に抽象化します。受信者、件名、本文を含むPOSTリクエストを行います。サービスが配信、リトライロジック、バウンス処理、レピュテーション管理を処理します。
SendGrid、Mailgun、Resendなどのサービスがこのモデルを普及させました。従来のユースケース(アプリケーションがメールをトリガーし、人間がそれを読む)にはうまく機能します。しかし、送信者が返信の受信と処理も必要とするAIエージェントである場合、従来のトランザクションメールAPIでは不十分です。
AIエージェントにトランザクションメールAPIが必要な理由
AIエージェントは、トランザクションメッセージのように見えるメール(確認、要約、フォローアップ、ステータス更新)を送信しますが、重要な違いがあります:エージェントは返信を期待しています。カスタマーサポートエージェントは解決メールを送信し、顧客の返答を処理する必要があります。スケジューリングエージェントは会議提案を送信し、承諾やリスケジュールリクエストを処理する必要があります。リサーチエージェントは要約を送信し、フィードバックを反映する必要があります。
つまり、エージェントには送信専用APIだけでは不十分です。以下が必要です:
- 双方向メッセージング:同じインターフェースでメールの送信と返信の受信
- スレッド追跡:複数のやり取りにわたる会話コンテキストの維持
- エージェントごとのID:共有の
noreply@送信者ではなく、各エージェントが独自のメールアドレスを取得 - プログラマティックプロビジョニング:ダッシュボードではなくAPI経由で新しいエージェント受信ボックスを作成
- 配信ステータス追跡:メールが配信されたか、開封されたか、バウンスされたかを把握
従来のトランザクションメールAPIは最初と最後のポイントを処理します。中間の3つ(スレッディング、ID、プロビジョニング)が、AIメールプラットフォームを従来のメール送信サービスから区別するものです。
トランザクションメールAPIとしてのAgentSend
AgentSendは、AIエージェント向けに構築されたトランザクションメールAPIです。コアワークフローはシンプルです:受信ボックスを作成し、API経由でメールを送信し、Webhook経由で返信を受信し、配信ステータスを追跡します。すべてプログラマティックに行えます。
仕組み:エージェント用の受信ボックスを作成すると、即座に専用のメールアドレスが取得できます。API経由でメッセージを送信し、Webhook経由で受信返信を受け取り、1回の呼び出しで完全な会話スレッドを取得できます。SMTPもDNS設定も不要で開始できます。
Python SDKを使用してAIエージェントからメールを送信する完全な例です:
from agentsend import AgentSend
client = AgentSend(api_key="as_live_...")
# Create an inbox for your agent
inbox = client.inboxes.create(name="support-agent")
# Send a transactional email
message = client.messages.send(
inbox_id=inbox.id,
to="customer@example.com",
subject="Your request has been processed",
body="Hi — your refund of $49.00 has been issued..."
)
# Check delivery status
status = client.messages.get(message.id)
print(status.delivery_status) # "delivered"
同じフローをTypeScriptで:
import { AgentSend } from "agentsend";
const client = new AgentSend({ apiKey: "as_live_..." });
// Create an inbox for your agent
const inbox = await client.inboxes.create({ name: "support-agent" });
// Send a transactional email
const message = await client.messages.send({
inboxId: inbox.id,
to: "customer@example.com",
subject: "Your request has been processed",
body: "Hi — your refund of $49.00 has been issued...",
});
// Check delivery status
const status = await client.messages.get(message.id);
console.log(status.deliveryStatus); // "delivered"
プログラマティックメール:トランザクションを超えて
AgentSendは従来のトランザクションメールAPIよりも進んでいます。ほとんどのトランザクションサービスは「送信して忘れる」方式です。メッセージを発射して次に進みます。AgentSendは、送信が物語の半分に過ぎないプログラマティックメールワークフロー向けに設計されています。
主な違い:
- デフォルトで双方向:すべての受信ボックスが送受信可能です。受信メッセージは完全なスレッドコンテキストとともにWebhookに配信されるため、エージェントがインテリジェントに返信できます。
- エージェントごとの受信ボックス:各エージェントは独自のアドレス、Webhook、メッセージ履歴を持つ分離された受信ボックスを取得します。共有の送信者アドレスもルーティングロジックの構築も不要です。
- スレッド追跡:AgentSendはメッセージを自動的にスレッドにグループ化します。1回のAPI呼び出しで完全な会話を取得できます。良い返信を生成するためにコンテキストが必要なエージェントにとって不可欠です。
- プログラマティックプロビジョニング:API経由で受信ボックスを作成・削除できます。手動設定なしで1つのエージェントから数百まで拡張できます。
エージェントファースト設計:従来のAPIが受信メールを後付けとして扱う(ドメインレベルのWebhook、スレッディングなし)のに対し、AgentSendはAIメールをファーストクラスのワークフローとして扱います。すべての機能は、通知をブロードキャストするアプリケーションではなく、会話に参加するエージェント向けに構築されています。
メールSDKの概要
AgentSendは4つの統合方法を提供します:Python SDK、TypeScript SDK、REST API、CLI。4つすべてが同じ機能を提供します。お使いのスタックに合ったものを選んでください。
Python SDK
pip install agentsend
TypeScript / Node.js SDK
npm install agentsend
REST API
curl -X POST https://api.agentsend.io/v1/messages \
-H "Authorization: Bearer as_live_..." \
-H "Content-Type: application/json" \
-d '{"inbox_id": "...", "to": "user@example.com", "subject": "Hello", "body": "..."}'
CLI
npx agentsend send --to user@example.com --subject "Hello" --body "..."
完全なAPIリファレンスとクイックスタートチュートリアルは、入門ガイドとメッセージドキュメントで利用できます。
従来のトランザクションメールAPIとの比較
AIエージェントのユースケースにおいて、AgentSendは確立されたトランザクションメールサービスとどのように比較されますか?
| 機能 | AgentSend | SendGrid | Resend | Mailgun |
|---|---|---|---|---|
| トランザクションメール送信 | 対応 | 対応 | 対応 | 対応 |
| API経由のメール受信 | 受信ボックスごとのWebhook | ドメインレベルのパース | 非対応 | ドメインレベルのルート |
| エージェントごとの受信ボックス | 対応 | 非対応 | 非対応 | 非対応 |
| スレッド管理 | 組み込み | 非対応 | 非対応 | 非対応 |
| プログラマティック受信ボックス作成 | 対応 | 非対応 | 非対応 | 非対応 |
| エージェントフレームワークサポート | MCP, LangChain, CrewAI | 非対応 | 非対応 | 非対応 |
| 開始時のDNS設定 | オプション | 必須 | 必須 | 必須 |
| Python&TypeScript SDK | 対応 | 対応 | 対応 | 対応 |
| 無料プラン | 受信ボックスごとに10通/日 | 100通/日 | 100通/日 | 100通/日 |
| 最適な用途 | AIエージェントメール | 大量トランザクション | 開発者向けトランザクション | トランザクション+検証 |
より詳細な比較については、AgentSend vs SendGridとAgentSend vs Resendをご覧ください。
よくある質問
トランザクションメールAPIとマーケティングメールAPIの違いは何ですか?
トランザクションメールAPIは、特定のアクションやイベント(パスワードリセット、注文確認、エージェントのフォローアップなど)によってトリガーされるメールを個々の受信者に送信します。マーケティングメールAPIは、購読者リストに一括キャンペーンを送信します。トランザクションメールは時間的に重要で受信者が期待しているものですが、マーケティングメールはプロモーション目的です。AgentSendは、双方向メッセージングやスレッド追跡などの追加機能を備えた、AIエージェントワークフロー向けに特別に設計されたトランザクションメールAPIです。
AgentSendをAIエージェントのプログラマティックメールサービスとして使用できますか?
はい。AgentSendは、REST API、Python SDK、TypeScript SDKを通じて完全なプログラマティックメールインターフェースを提供します。受信ボックスの作成、メールの送信、Webhookによる返信の受信、会話スレッドの追跡がすべてプログラマティックに行えます。すべての操作がAPI経由で利用可能で、手動介入なしにメールを送受信する必要があるAIエージェントに最適です。
AgentSendはPythonとTypeScript用のメールSDKを提供していますか?
はい。AgentSendはPython(pip install agentsend)とTypeScript/Node.js(npm install agentsend)の両方に公式SDKを提供しています。両SDKは、受信ボックス管理、メッセージ送信、スレッド読み取り、Webhook設定のための型付きメソッドでREST APIをラップしています。迅速なテストやスクリプティング用のCLIツールも利用可能です。