SuperAPI AI 工具集

email-gateway

编程与开发

查看项目

更新于 10-15 16:37

技能介绍

用途

Email Gateway(多提供商)用于在 Cloudflare Workers 和 Node.js 应用中构建事务性邮件系统。它整合了多个邮件服务商的发送能力,让开发者可以按需选择提供商,或在不同场景中切换使用。项目状态为 Production Ready,最后更新时间为 2026-01-10。

主要能力

  • 支持四家邮件服务商:Resend、SendGrid、Mailgun、SMTP2Go。
  • Resend 原生支持 React Email(JSX 模板)。
  • SendGrid、Mailgun、SMTP2Go 支持动态模板。
  • 四家均支持 Webhooks 事件追踪。
  • 四家均支持 SMTP。
  • 支持批量发送、附件发送、计划发送(Resend 的 scheduledAt)等能力。
  • 提供各服务商的 TypeScript 类型定义。

各提供商定位(据资料)

Provider Best For Key Feature Free Tier
Resend Modern apps, React Email JSX templates 100/day, 3k/month
SendGrid Enterprise scale Dynamic templates 100/day forever
Mailgun Developer webhooks Event tracking 100/day
SMTP2Go Reliable relay, AU Simple API 1k/month trial

使用方式

环境变量配置

# Resend
RESEND_API_KEY=re_xxxxxxxxx

# SendGrid
SENDGRID_API_KEY=SG.xxxxxxxxx

# Mailgun
MAILGUN_API_KEY=xxxxxxxx-xxxxxxxx-xxxxxxxx
MAILGUN_DOMAIN=mg.yourdomain.com
MAILGUN_REGION=us  # or eu

# SMTP2Go
SMTP2GO_API_KEY=api-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Cloudflare Workers 使用 Wrangler Secrets

# Set secrets
echo "re_xxxxxxxxx" | npx wrangler secret put RESEND_API_KEY
echo "SG.xxxxxxxxx" | npx wrangler secret put SENDGRID_API_KEY
echo "xxxxxxxx-xxxxxxxx-xxxxxxxx" | npx wrangler secret put MAILGUN_API_KEY
echo "api-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" | npx wrangler secret put SMTP2GO_API_KEY

# Deploy to activate
npx wrangler deploy

调用示例(Resend)

const response = await fetch('https://api.resend.com/emails', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${env.RESEND_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    from: 'noreply@yourdomain.com',
    to: 'user@example.com',
    subject: 'Welcome!',
    html: '<h1>Hello World</h1>',
  }),
});

const data = await response.json();
// { id: "49a3999c-0ce1-4ea6-ab68-afcd6dc2e794" }

其余服务商的调用方式见资料中的 SendGrid、Mailgun、SMTP2Go 部分。

常见模式

资料提供了多类常见模式的代码示例:

  1. 事务性邮件(如密码重置),包含按 provider 分支调用的完整实现。
  2. 批量发送,例如 Resend 按 50 个收件人分块、SendGrid 使用最多 1000 个 personalizations。
  3. React Email 模板(仅 Resend),需安装:
npm install react-email @react-email/components
  1. 动态模板(SendGrid、Mailgun)。
  2. 附件发送(Resend、SendGrid、Mailgun)。
  3. Webhooks 事件追踪(如 Resend 的签名校验与 email.bounced 处理)。

提供商能力对比(据资料)

Feature Resend SendGrid Mailgun SMTP2Go
React Email ✅ Native ❌ ❌ ❌
Dynamic Templates ✅ ✅ ✅ ✅
Batch Sending 50/request 1000/request 1000/request 100/request
Webhooks ✅ ✅ ✅ ✅
SMTP ✅ ✅ ✅ ✅ Primary
IP Warmup Managed Manual Manual Managed
Dedicated IPs Enterprise $90+/mo $80+/mo Custom
Analytics Basic Advanced Advanced Good
A/B Testing ❌ ✅ ✅ ❌

免费额度与速率限制(据资料)

Provider Daily Monthly Overage Cost
Resend 100 3,000 $1/1k
SendGrid 100 Forever $15 for 10k
Mailgun 100 Forever $15 for 10k
SMTP2Go ~33 1,000 trial $10 for 10k

消息限制(据资料)

Provider Max Size Attachments Max Recipients
Resend 40 MB 40 MB total 50/request
SendGrid 20 MB 20 MB total 1000/request
Mailgun 25 MB 25 MB total 1000/request
SMTP2Go 50 MB 50 MB total 100/request

适用场景

  • 需要在 Cloudflare Workers 或 Node.js 中发送事务性邮件(如密码重置、欢迎邮件)。
  • 需要在多个邮件服务商之间选择或切换。
  • 需要使用 React Email 或动态模板构建邮件内容。
  • 需要批量发送、附件发送或通过 Webhook 追踪邮件事件。

限制

  • React Email 仅 Resend 原生支持。
  • A/B Testing 仅 SendGrid 与 Mailgun 支持。
  • 各服务商的免费额度、速率限制、消息大小、收件人上限不同,需按上表核对。
  • 其他未在资料中明确说明的功能或限制暂未提供。