参考手册Workspace 包参考
邮件发送工具,支持 Resend 和 Zeabur Email
本页是 01MVP 模板的 Workspace 包参考。若你正在按功能启用或改造模板,先看 功能指南。
@01mvp/email
这是什么
@01mvp/email 是一个邮件发送工具,帮你用代码给用户发邮件。当前支持 Resend 和 Zeabur Email,你不需要自己维护邮件服务器。
能做什么
- 发送验证邮件 -- 用户注册时发验证码或验证链接
- 发送密码重置邮件 -- 用户忘记密码时发重置链接
- 发送邀请邮件 -- 团队成员邀请
- 发送通知邮件 -- 订单确认、活动通知等
- 反馈邮件 -- 把站内反馈直接发到指定收件箱
- 批量发送 -- Zeabur Email REST API 支持批量任务
RESEND_API_KEY、ZEABUR_EMAIL_API_KEY 都是敏感信息,不要提交到 Git。生产环境请放在部署平台的环境变量里。
怎么配置
Zeabur Email
ZEABUR_EMAIL_API_KEY=zs_xxxxxxxxxxxxx
EMAIL_FROM=contact@01mvp.com
CONTACT_EMAIL=contact@01mvp.comEMAIL_FROM 必须使用已经在 Zeabur Email 里验证过的发件域名。CONTACT_EMAIL 是站内反馈默认投递的邮箱,01MVP 线上默认使用 contact@01mvp.com。
代码里可以直接创建 Zeabur provider:
import { createEmailProvider } from "@01mvp/email";
const provider = createEmailProvider("zeabur", {
apiKey: process.env.ZEABUR_EMAIL_API_KEY!,
defaultFrom: process.env.EMAIL_FROM,
});
await provider.send({
to: "contact@01mvp.com",
subject: "用户反馈",
text: "反馈内容",
replyTo: "user@example.com",
tags: {
type: "feedback",
category: "bug",
},
});Resend
RESEND_API_KEY=re_xxxxxxxxxxxxx
EMAIL_FROM=noreply@yourdomain.com如果想让发件人地址显示自己的域名,需要在对应邮件服务后台绑定并验证域名。
Zeabur Email 限制和价格
Zeabur 官方 REST API 文档当前说明:
- API 基础地址是
https://api.zeabur.com/api/v1/zsend,请求用 Bearer Token 认证。 - 单封邮件接口是
POST /emails,html和text至少需要一个。 - 单封邮件的
to + cc + bcc总收件人数最多 50 人。 - 主题最长 998 个字符,HTML 和文本内容各最大 5 MB。
- 邮件总大小最大 10 MB,附件最多 10 个,单个附件最大 10 MB。
- 批量发送接口单次最多 100 封。
429和5xx这类临时错误建议指数退避重试;400/403这类请求或权限错误不要反复重试。
Zeabur 价格页当前展示的 Email 配额是:
| 方案 | 日配额 | 月配额 |
|---|---|---|
| Free | 0 | 0 |
| Dev | 100 | 3,000 |
| Pro | 不限 | 50,000 |
| Team | 不限 | 100,000 |
REST API 文档的限制说明里还写到:新用户默认 100 封/天,完成域名验证后默认提升到 1,000 封/天。实际可用额度以 Zeabur 控制台和价格页展示为准。
大概原理
- 你的代码调用
createEmailProvider('zeabur')或createEmailProvider('resend'),传入 API Key - 调用
.send()方法,告诉它发给谁、标题是什么、邮件内容(HTML 格式) - 底层拼装好邮件,通过对应服务的 API 发出去
- 返回一个结果告诉你成功还是失败,以及失败原因
整个过程就像调用一个快递接口 -- 你不用管怎么包装怎么运输,只管填收件人和内容就行。
相关链接
- Zeabur Email 文档
- Zeabur Email REST API
- Zeabur 价格页
- Resend 官方文档
- @01mvp/auth 包 -- 认证系统(常用邮件场景)