觀點 · 資訊分享
Cloudflare Email Sending 公開測試:在 Workers 裡呼叫 env.EMAIL.send(),就能直接寄交易通知信
Cloudflare 在 4 月 16 日讓 Email Sending 進入公開測試,Workers 程式或 REST API 都能直接寄信,支援 HTML、附件與內嵌圖片,並和原有的 Email Routing 合併成 Cloudflare Email Service。
- 發布
- 2026-04-16
- 篇幅
- 約 3 分鐘 · 1,562 字
- 結構
- 8 節 + 4 題常見問題
- 標籤

一句話看懂:Cloudflare 的 Workers 現在可以直接寄信了(公開測試中),寄信和收信合併成同一個 Email Service。

先用白話講:交易通知信是什麼?
你在網路上買東西,馬上會收到一封「訂單已確認」的信;忘記密碼時,會收到重設連結。這類由系統自動寄出、跟你的操作直接相關的信,叫做交易通知信。
要自己寄這種信其實很麻煩:要設定寄件網域、處理信件格式、顧及能不能順利送達。很多網站會另外找信件服務來處理。Cloudflare 這次把「寄信」直接做進它的開發者平台。
發生什麼事
Cloudflare 在 4 月 16 日公告:Email Sending 進入公開測試(public beta)。
- 寄信方式:在 Workers 裡呼叫
env.EMAIL.send(),或用 REST API。 - 信件內容:支援 HTML、純文字、附件、內嵌圖片與自訂標頭(custom headers)。
- 服務整合:Email Sending 加入原本的 Email Routing,兩者合成新的 Cloudflare Email Service,同一個服務負責寄信與收信。
- 方案:需要 Workers 付費方案。
- 適用對象:官方說的是在 Cloudflare 開發者平台上收信、寄信的人,不管是一般的 Workers 程式,還是 AI 代理,都可以用同一個服務。
為什麼值得注意?
以前你的網站如果放在 Workers 上,寄信這一段通常得另外接外部服務,多一個帳號、多一組金鑰要管。現在官方把寄信做進同一個平台,設定會單純一些。(這是我的推論,公告本身沒有拿其他服務來比較。)
對 AI 代理的整合
公告也提到幾個和 AI 代理有關的功能:
- Email Service 整合 Agents SDK,讓代理有原生的
onEmail處理函式,可以接收、處理並回覆信件。 - 搭配新的 Email MCP 伺服器與 Wrangler CLI 的 email 指令,不管代理在哪裡執行,都能寄信。
給開發者的技術細節
官方範例在 Worker 裡寄信,大概是這樣:
export default {
async fetch(request, env) {
const response = await env.EMAIL.send({
from: "[email protected]",
to: "[email protected]",
subject: "Order confirmed",
html: "<h1>Your order has been confirmed</h1>",
text: "Your order has been confirmed.",
});
return Response.json({ messageId: response.messageId });
},
};
- 回傳值有
messageId,可以拿來追蹤這封信。 - 公告沒有提到寄信額度、價格與限制;公測階段請先看 Email Service 的官方文件。
- 官方提供 TypeScript 範例,型別為
ExportedHandler<Env>。
我的看法
接案的時候,寄通知信幾乎是每個系統都會用到的功能:註冊驗證、訂單通知、密碼重設。我平常做法是串第三方的信件服務,每家的設定和計價都不太一樣,要花時間比較。
如果 Cloudflare 把寄信做進 Workers,對已經把網站放在 Cloudflare 上的團隊會很方便:少一個外部帳號、少一組金鑰要管。但目前是公開測試,官方公告也沒寫額度與價格,所以我不會馬上把重要信件搬過去,頂多先拿不重要的通知試跑,觀察到達率和穩定度再決定。
名詞小辭典
- Workers:Cloudflare 的無伺服器平台,程式碼直接跑在它的全球節點上,不用自己管主機。
- 交易通知信:系統因為使用者的操作而自動寄出的信,例如訂單確認、密碼重設。
- Email Routing:Cloudflare 原有的收信相關服務,現在和 Email Sending 合併為 Email Service。
- 公開測試(public beta):開放給所有人試用,但功能與穩定度還在調整,不一定適合正式環境。