# エージェントが自分でメールを送れる！Cloudflare Email Service が公開ベータだよ！

やっほー、しぃちゃんだよ！今日はね、エージェントがついに「自分でメールを送れる」ようになるお話を見つけちゃった。ワクワクが止まらないよ！

## なにが発表されたの？

Cloudflare の Blog で、**Cloudflare Email Service** が公開ベータ(public beta)になったって発表があったよ。これまで非公開ベータだった Email Sending が、今日から誰でも使える公開ベータに昇格したの。

もともと無料で提供されてきた [Email Routing](https://developers.cloudflare.com/email-routing/) と組み合わせると、メールの受信・処理・返信までぜんぶ Cloudflare の中で完結する「双方向メール」が、1 つのプラットフォームで実現できるようになったんだって。

## 今までどうだったの？

じつは Agents SDK には、前から受信メールを扱う onEmail フックがあったの。でもエージェントにできるのは「その場で同期的に返す」ことか、「Cloudflare アカウントのメンバーに送る」ことだけだったんだ。

つまり、受け取ってすぐ返すチャットボット止まり。じっくり調べてから返事する、みたいな本当のエージェントらしい動きはできなかったの。この制約が、Email Sending でついに外れたんだよ。

## これで何が変わるの？

エージェントがメールを受け取って、1 時間かけてデータを処理して、他のシステムを 3 つ確認してから、完成した答えを返す——そんな非同期の働き方ができるようになるの。フォローアップを予約したり、エッジケースを見つけてエスカレーションしたり、自分のタイムラインで自律的に動けるんだって。

送る側もうれしいよ。Workers から送るなら、ネイティブの Workers バインディングで API キーもシークレット管理もいらないの。こんなに短く書けちゃう。

```
export default {
  async fetch(request, env, ctx) {
    await env.EMAIL.send({
      to: "user@example.com",
      from: "orders@yourdomain.com",
      subject: "Your order has shipped",
      text: "Your order #1234 has shipped and is on its way."
    });
    return new Response("Email sent");
  },
};
```

REST API と TypeScript・Python・Go の SDK もあるから、どんな言語・どんな環境からでも送れるよ。

## 深く潜ってみよう

**メール認証は自動でやってくれる。** ちゃんと届くメールを送るには、いつも SPF・DKIM・DMARC のレコード設定で苦労するよね。Email Service にドメインを追加すると、これを全部自動で設定してくれるの。だから迷惑メール扱いされずに、Cloudflare のグローバルネットワーク越しに低遅延で届くんだって。もっと詳しい解説は [Birthday Week の発表記事](https://blog.cloudflare.com/email-service/) にあるよ。

**アドレスでエージェントを振り分け。** [onEmail フック](https://developers.cloudflare.com/agents/api-reference/agents-api/) を使うと、1 つのドメインから `support@` は support エージェント、`sales@` は sales エージェント、というふうにアドレスベースで振り分けられるの。別々の受信箱を用意しなくていいし、サブアドレス(NotificationAgent+user123@…)で名前空間やインスタンスを分けることもできるよ。

**状態はずっと覚えてる。** エージェントは Durable Objects に支えられているから、`this.setState()` を呼べば会話履歴や連絡先、コンテキストをセッションをまたいで覚えていられるの。受信箱がそのままエージェントの記憶になって、別のデータベースやベクトルストアがいらないんだって。

**返信ルーティングは安全設計。** 返信を期待して送るとき、ルーティングヘッダを HMAC-SHA256 で署名できるの。これで、攻撃者がヘッダを偽造して任意のエージェントに返信を流し込む攻撃を防げるんだって。原文はこう言ってるよ。

> This prevents attackers from forging headers to route emails to arbitrary agent instances — a security concern that most "email for agents" solutions haven't addressed.

**Cloudflare の外で動くエージェントにも。** Claude Code や Cursor みたいに、ローカルやリモートで動くコーディングエージェントもメールを送りたいよね。だから 3 つの入口が用意されたの。[Code Mode](https://blog.cloudflare.com/code-mode/) 対応の [Cloudflare MCP サーバー](https://github.com/cloudflare/mcp-server-cloudflare) 経由なら、プロンプトひとつでメールが送れる。bash が使えるサンドボックスなら Wrangler CLI が便利で、`--help` で機能を都度発見できるからコンテキストの消費もほぼゼロなんだって。

```
wrangler email send \
  --to "user@example.com" \
  --from "notify@yourdomain.com" \
  --subject "Build completed" \
  --text "The build passed. Deployed to staging."
```

さらに [Cloudflare Email Service の skill](https://github.com/cloudflare/skills) も公開されたよ。バインディング設定・REST API・受信処理・Agents SDK・CLI/MCP まで丸ごとガイドしてくれるから、プロジェクトに入れればコーディングエージェントがそのまま本番品質のメール機能を作れるの。人間が中身を確認できるように、参考アプリの [Agentic Inbox](https://github.com/cloudflare/agentic-inbox) もオープンソースで出してくれたよ。

もっと知りたい人は、[Email Service のドキュメント](https://developers.cloudflare.com/email-service/) と [Agents SDK のメールドキュメント](https://developers.cloudflare.com/agents/api-reference/email) をチェックしてね。

## まとめ

- Cloudflare Email Service が公開ベータに。Email Sending と Email Routing で、双方向メールが 1 つのプラットフォームで完結するよ
- Workers バインディングなら API キー不要。REST API や TypeScript・Python・Go の SDK からでも送れる
- SPF・DKIM・DMARC は自動設定。エージェントは非同期で受信・処理・返信できて、状態は Durable Objects で永続化される
- アドレスベースの振り分けと HMAC-SHA256 署名で、安全なマルチエージェント運用ができる
- MCP・Wrangler CLI・skill 経由で、Cloudflare の外で動くエージェントからも送れる

自分のエージェントに「メールで報告して」とお願いしたい開発者に、ドンピシャで刺さる発表だよ！
