Cloudflare Email Service
發送交易電郵,並將收件電郵路由到 Workers 或電郵地址
Cloudflare Email Service 提供強大嘅電郵能力:
- Email Sending(Beta):發送對外交易電郵 — 適用於 Workers Paid plan
- Email Routing:用 Workers 處理收件電郵,或路由到電郵地址 — 適用於 Free 同 Paid plans
注意:向帳戶內已 驗證嘅目的地地址 發送電郵喺所有 plan 上都係免費,即使只設定咗 Email Routing 都一樣。
呢兩個功能夾埋,令你可以由應用程式發送同接收電郵。例如,你可以用 Email Service 做:
- 交易電郵(歡迎訊息、密碼重設、訂單確認)
- 驗證流程(magic links、電郵驗證、雙重認證)
- 通知同警報
- 自訂電郵地址(support@、contact@、orders@)
- 將電郵作為 agent 嘅互動方式,例如發送電郵喺 ticket tracking 系統建立 issue
你可以直接用 Cloudflare Workers 嘅 bindings、任何平台嘅 REST API,或者 authenticated SMTP 存取 Email Service:
用 EMAIL binding 發送電郵,並用 src/index.ts 入面嘅 email() handler 處理收件電郵:
interface Env {
EMAIL: SendEmail;
}
export default {
// Handle HTTP requests (Email Sending)
async fetch(request, env, ctx): Promise<Response> {
// Send a welcome email
await env.EMAIL.send({
to: "user@example.com",
from: "welcome@yourdomain.com",
subject: "Welcome to our service!",
html: "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
text: "Welcome! Thanks for signing up.",
});
return new Response("Email sent successfully");
},
// Handle incoming emails (Email Routing)
async email(message, env, ctx): Promise<void> {
// Forward to support team
if (message.to.includes("support@yourdomain.com")) {
await message.forward("team@yourdomain.com");
}
// Send auto-reply
await env.EMAIL.send({
to: message.from,
from: "noreply@yourdomain.com",
subject: "We received your message",
html: "<h1>Thank you!</h1><p>We'll get back to you soon.</p>",
});
},
} satisfies ExportedHandler<Env>;
將 bindings 加入你嘅 Wrangler 設定檔:
{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "<ENTER_WORKER_NAME>",
"main": "src/index.ts",
"compatibility_date": "$today",
// Email sending
"send_email": [
{ "name": "EMAIL" }
],
// Email routing
"email": [
{ "name": "EMAIL_HANDLER" }
]
}
用 REST API 發送:
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/send" \
--header "Authorization: Bearer ***" \
--header "Content-Type: application/json" \
--data '{
"to": "user@example.com",
"from": "welcome@yourdomain.com",
"subject": "Welcome to our service!",
"html": "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
"text": "Welcome! Thanks for signing up."
}'
Cloudflare 亦為 REST API 提供官方 SDK:Node、Python 同 Go。
或者用 authenticated SMTP:
cat > mail.txt <<EOF
From: welcome@yourdomain.com
To: user@example.com
Subject: Welcome to our service!
Thanks for signing up!
EOF
curl --ssl-reqd \
--url "smtps://smtp.mx.cloudflare.net:465" \
--user "api_token:<API_TOKEN>" \
--mail-from "welcome@yourdomain.com" \
--mail-rcpt "user@example.com" \
--upload-file mail.txt
睇完整嘅 API reference 了解 REST API、Workers binding 同 SMTP。
功能
以高送達率同全球性能發送交易電郵。
將收件電郵路由到自訂地址、Workers 或外部目的地。
自動 IP 信譽管理同送達率優化。
用全面嘅指標同警報監察電郵表現。
用 REST API、Workers binding 或 SMTP 發送同路由電郵。