SendGrid vs Mailgun vs Resend:2026年邮件服务商深度对比

无论是发送交易邮件(密码重置、订单确认)还是营销邮件(Newsletter、促销活动),选择一款可靠的邮件服务商都至关重要。SendGrid、Mailgun 和新兴的 Resend 是开发者社区中最受关注的三款产品。

选型往往不是“哪家最好”,而是“哪家最适合当前的阶段”。个人项目几百封的月发送量,和电商大促一天几百万封,对服务商的要求完全不同;同样的预算,不同服务商能买到的功能也不一样。下面从价格、送达、开发体验、功能四个维度展开,最后给出分场景的选型建议。

一、平台概览

特性 SendGrid Mailgun Resend
所属公司 Twilio Sinch 独立(YC W23)
成立年份 2009 2010 2023
核心定位 营销邮件+交易邮件 开发者邮件 API 开发者邮件体验
免费额度 100封/天 5,000封/月(前3月) 500封/月

二、价格对比

2.1 免费套餐

平台 免费额度 限制
SendGrid 100 封/天 每日限制,不可累积
Mailgun 5,000 封/月(前 3 个月) 需验证域名,有发送限制
Resend 500 封/月 无时间限制,功能完整

2.2 付费套餐(性价比)

平台 起步价 50,000 封/月 100,000 封/月
SendGrid Essentials $19.95/月(50K 封) $19.95 $34.95
Mailgun Foundation $35/月(50K 封) $35 $50
Resend Pro $20/月(50K 封) $20 $35

注:以上为基础套餐价格,额外发送量有单封计费方案。

需要提醒的是,上表只是“入门价”。真正决定长期成本的是超出部分的单价,以及是否按“联系人数”计费:SendGrid 按邮箱地址数量而不是发送量收费,活跃订阅者越多、单价越低;Mailgun 和 Resend 则更接近纯按量付费。如果你的列表里有大量长期未活跃的地址,前者可能会悄悄抬高成本。

三、送达率

3.1 送达率对比

平台 交易邮件送达率 营销邮件送达率 延迟表现
SendGrid 97-98% 95-97% 良好
Mailgun 97-99% 95-98% 良好
Resend 98-99% 96-98% 优秀

3.2 影响送达率的因素

送达率不仅取决于邮件服务商,还与以下因素密切相关:

  • 域名信誉:新域名的发送信誉需要逐步建立
  • SPF/DKIM/DMARC 配置:未正确配置会导致邮件被标记为垃圾邮件
  • 邮件内容质量:垃圾邮件关键词、过多图片链接会影响送达
  • 发送频率:突然大量发送会触发 ISP 的限制
  • 退信率:高退信率会严重损害域名信誉

送达率数字只能作为参考,真正的瓶颈往往在发送方。一个很常见的错误是:新域名刚配置完就一次性群发几万封,结果触发 ISP 的风控,整体域名信誉被拉低,连交易邮件也进垃圾箱。稳妥的做法是先“预热”:从每天几百封开始,观察退信率和垃圾箱率,再逐步加量,这个过程通常要 2-4 周。

3.3 发送域配置示例

无论选哪家,上线前都要在 DNS 里配好三个记录。以 send.yourdomain.com 为例:

# SPF:声明哪些服务器有权用你的域名发信
send.yourdomain.com  TXT  "v=spf1 include:spf.sendgrid.net ~all"

# DKIM:公钥记录,服务商会在控制台给出具体的 selector 与值
s1._domainkey.send.yourdomain.com  TXT  "k=rsa; p=MIGfMA0GCSq...AQAB"

# DMARC:告诉收件方验签失败时怎么处理,并接收聚合报告
_dmarc.send.yourdomain.com  TXT  "v=DMARC1; p=none; rua=mailto:[email protected]"

先用 p=none 观察 1-2 周聚合报告,再逐步收紧到 quarantinereject,避免误伤正常邮件。

四、API 与开发者体验

SendGrid

// SendGrid Node.js SDK
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);

const msg = {
  to: '[email protected]',
  from: '[email protected]',
  subject: '订单确认 #12345',
  html: '<h1>感谢您的购买!</h1><p>您的订单已确认。</p>',
};

sgMail.send(msg).then(() => console.log('发送成功'));

特点

  • SDK 支持多种语言
  • 动态模板功能强大
  • 完善的统计和分析
  • 文档丰富但稍显复杂

Mailgun

// Mailgun API
const formData = require('form-data');
const Mailgun = require('mailgun.js');
const mailgun = new Mailgun(formData);
const mg = mailgun.client({ username: 'api', key: process.env.MAILGUN_API_KEY });

mg.messages.create('yourdomain.com', {
  from: '[email protected]',
  to: ['[email protected]'],
  subject: '验证您的邮箱',
  html: '<p>请点击链接验证邮箱</p>',
});

特点

  • API 简洁直观
  • 邮件路由和解析功能强大
  • 详细的发送日志
  • 可自定义 SMTP 端点

Resend

// Resend Node.js SDK
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);

const { data, error } = await resend.emails.send({
  from: '[email protected]',
  to: ['[email protected]'],
  subject: '欢迎加入!',
  html: '<strong>欢迎注册!</strong>',
});

特点

  • API 设计最现代、最简洁
  • React Email 原生支持(可用 React 组件写邮件)
  • 冷启动快,开发者体验极佳
  • 平台较新,生态正在快速发展

五、功能对比

功能 SendGrid Mailgun Resend
邮件模板 ✅(动态模板) ❌(需自行实现) ✅(React Email)
A/B 测试
统计分析 ✅(详细) ✅(基础) ✅(基础)
Webhooks
SMTP 接入
邮件解析 ✅(入站邮件)
API 密钥管理
子用户管理
批量发送
垃圾邮件检测
IP 池管理 ✅(付费)

六、SMTP 配置参考

无论选择哪家,最终都需要配置 SMTP 参数:

参数 SendGrid Mailgun Resend
SMTP 服务器 smtp.sendgrid.net smtp.mailgun.org smtp.resend.com
端口(TLS) 587 587 587
端口(SSL) 465 465 465
认证方式 API Key API Key API Key

七、选型建议

选 SendGrid 的场景

  • 需要发送大量营销邮件(Newsletter)
  • 需要 A/B 测试和详细统计分析
  • 需要动态邮件模板
  • 预算有限但需要稳定服务

选 Mailgun 的场景

  • 主要发送交易邮件
  • 需要邮件解析和入站邮件处理
  • 需要详细的 API 日志排查问题
  • 需要自定义 SMTP 端点

选 Resend 的场景

  • 追求最佳的开发者体验
  • 使用 React/Next.js 技术栈
  • 希望用 React 组件编写邮件模板
  • 项目规模不大,对高级管理功能需求少

八、总结

三款邮件服务各有特色。SendGrid 功能最全面,适合需要完整邮件营销功能的场景;Mailgun 稳重大气,适合对 API 灵活性和控制力要求高的开发者;Resend 体验最佳,是现代开发者的清新选择。建议根据技术栈和业务需求选择,也可以同时使用多个服务——用 Resend/SendGrid 发交易邮件,用 Mailgun 处理入站邮件和日志。

一个务实的组合方案:交易邮件用 Resend(体验好、送达快),营销邮件用 SendGrid(模板与统计强),入站解析用 Mailgun(原生支持)。各取所长,成本也比单用一家的大套餐更可控。无论选哪家,都建议先跑通发送域配置与预热,再评估长期账单。

参考:SendGrid 定价 https://sendgrid.com/en-us/pricing;Mailgun 文档 https://documentation.mailgun.com/;Resend 文档 https://resend.com/docs;SPF/DKIM/DMARC 说明 https://www.cloudflare.com/learning/dns/dns-records/