SAAS出海
Supabase 接入 Google 一键登录完整配置指南
Supabase 邮箱注册与邮箱确认链接完整配置指南
Vercel + Supabase 环境变量与部署配置指南
Cloudflare 接入 Vercel 时,最容易忽略的那个配置
Resend 接入笔记:给 Vercel 项目加邮件发送能力
Hermes Agent:一个会长期陪你工作的开源个人代理
本文档使用 MrDoc 发布
-
+
首页
Resend 接入笔记:给 Vercel 项目加邮件发送能力
# Resend 接入笔记:给 Vercel 项目加邮件发送能力 最近在给一个部署在 Vercel 上的 Web 应用加邮件能力,需求其实很典型: - 注册后发审批邮件 - 审核通过后才能登录 - 发件逻辑尽量简单 - 不想自己折腾 SMTP 最后我选的是 **Resend**。 这篇就把接入过程整理成一份笔记,重点不是讲概念,而是讲怎么快速接上、少踩坑。 ## 一、为什么我会选 Resend 如果项目本身就在 Vercel 上,Resend 是一种很顺手的选择: - 接入快 - 文档清晰 - 直接走 API,不用自己维护 SMTP - 很适合事务邮件 - 可以很方便地放进服务端接口里 像这类邮件都很适合: - 注册审批 - 验证邮件 - 重置密码 - 系统通知 ## 二、先准备什么 真正开始接入前,需要准备三样东西: 1. 一个 Resend 账号 2. 一个你自己控制的域名 3. 一个准备发信用的子域名 这里特别建议直接使用 **子域名**,不要一上来就拿根域名发。 例如: - `mail.vvhr.com` - `notify.vvhr.com` - `updates.vvhr.com` 我更倾向于用: `mail.vvhr.com` 这样做的好处是发信信誉更容易隔离,不会把主域名的其他用途混在一起。 ## 三、在 Resend 里先做什么 Resend 官方当前建议的顺序很直接: 1. 添加域名 2. 完成 DNS 验证 3. 创建 API Key 4. 用 API 发送邮件 其中域名验证本身,核心就是两类 DNS 记录: - SPF - DKIM 在 SPF 和 DKIM 验证通过之后,可以再补一个: - DMARC 这样整体发信信誉会更完整一些。 ## 四、域名验证时一个容易忽略的点 Resend 推荐你用子域名,不只是为了“好看”,而是为了发信信誉隔离。 这件事其实很重要。 如果以后你的系统里会发很多不同类型的邮件,比如: - 审批邮件 - 运营邮件 - 登录提醒 - 账号通知 那么让它们都从根域名直接发出,会把信誉和用途都混在一起。 所以更稳的方式是: - 系统通知用 `mail.vvhr.com` - 营销或更新类邮件用 `updates.vvhr.com` 这样后续管理会轻松很多。 ## 五、API Key 去哪里拿 Resend 的 API Key 在后台直接创建就行。 我自己的建议是: - 如果只是项目发邮件,优先用 **sending access** - 如果你后面还要做更多管理操作,再考虑更高权限 如果只负责发送邮件,最小权限会更稳。 Resend 现在支持把 API Key 限制在特定域名下,这一点挺实用,适合生产环境。 ## 六、`MAIL_FROM` 到底怎么写 这是很多人第一次接入时最容易疑惑的地方。 假设你验证的是: `mail.vvhr.com` 那么你的发件地址就可以写成: `noreply@mail.vvhr.com` 或者: `VV智脑 <noreply@mail.vvhr.com>` 这里有个很关键的点: **Resend 不要求你先去创建这个邮箱账号本身。** 只要这个域名已经在 Resend 里验证通过,你就可以直接用这个域名下的地址作为发件人。 这点和很多传统邮箱服务的思路不一样,第一次用时很容易误会。 ## 七、Vercel 项目里一般要配哪些环境变量 如果项目部署在 Vercel,通常至少会用到这些: ```env RESEND_API_KEY=re_xxxxxxxxx MAIL_FROM=noreply@mail.vvhr.com APP_URL=https://www.vvhr.com APPROVAL_EMAIL_TO=vellme@gmail.com ``` 这几个值分别对应: - `RESEND_API_KEY`:Resend 后台生成的 API Key - `MAIL_FROM`:发件人地址 - `APP_URL`:你自己网站的公网地址 - `APPROVAL_EMAIL_TO`:审批邮件接收人 像注册审批这种场景,服务端拼审批链接时通常会用到 `APP_URL`。 例如: `https://www.vvhr.com/api/auth/approve?token=xxxxx` ## 八、发送邮件时,代码可以很轻 如果你不想额外引入太多 SDK,其实直接调 Resend 的 Email API 就够用了。 请求逻辑大概就是: - 带上 `Authorization: Bearer <RESEND_API_KEY>` - 调用 `POST /emails` - 提交 `from`、`to`、`subject`、`html`、`text` 最常见的邮件发送字段有: - `from` - `to` - `subject` - `html` - `text` 如果你发的是简单事务邮件,这已经够用。 ## 九、适合什么场景先接入 我觉得最适合用来打通第一条链路的,就是下面这类事务邮件: ### 1. 注册审批邮件 新用户提交注册后: - 写入待审核状态 - 生成激活 token - 发邮件给管理员 - 管理员点链接后激活账号 这条链路特别适合 Resend,因为: - 邮件模板很简单 - 发送频率不会太夸张 - 对送达率有要求 - 不值得自己维护 SMTP ### 2. 密码重置 逻辑同样清晰: - 生成一次性 token - 发邮件给用户 - 用户点链接重设密码 ### 3. 系统通知 例如: - 审核通过通知 - 审核拒绝通知 - 账号异常通知 ## 十、和 Cloudflare DNS 搭配时怎么理解 如果你的 DNS 已经托管在 Cloudflare,那么 Resend 这边的接入其实会更方便一些。 因为你只需要把 Resend 后台要求的 DNS 记录加到 Cloudflare 里: - SPF - DKIM - 可选 DMARC 然后等待生效、验证通过即可。 这件事和网站是不是部署在 Vercel 没冲突。 要分开理解: - 网站访问链路是 Cloudflare + Vercel - 邮件发信验证是 Resend + DNS 它们共享同一个域名体系,但不是同一件事。 ## 十一、我自己的建议 如果你现在正准备给一个 Vercel 项目接邮件能力,我建议按这个顺序来: 1. 在 Resend 注册账号 2. 添加一个子域名,比如 `mail.vvhr.com` 3. 完成 SPF、DKIM 验证 4. 创建一个发送权限 API Key 5. 在 Vercel 里配置环境变量 6. 先打通一封最简单的事务邮件 7. 再做审批、重置密码、通知这些完整流程 这样不会一上来把事情做得太重。 ## 十二、最后的结论 如果你的项目已经在 Vercel 上,想用一种比较省事的方式把邮件发送接进来,Resend 确实是一个很顺手的选择。 真正落地时,最重要的不是先写邮件模板,而是先把下面这几个基础项配对: - 子域名 - SPF / DKIM - API Key - `MAIL_FROM` - `APP_URL` 一旦这几个基础项都顺了,后面无论你做: - 注册审批 - 密码找回 - 登录通知 都会轻松很多。
superadmin
2026年4月24日 08:13
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码