功能与集成
邮件
事务性邮件走 Resend。模板文案来自 i18n 字典,所以邮件天然双语。本地 不配 key 时不会真发,链接直接打到控制台。
fork 后你要改哪: 改文案在 i18n 字典的
src/features/email/templates.ts;换发件地址改EMAIL_FROM。
工作原理
统一入口是 sendEmail(input)(src/features/email/email.server.ts):
- 有
RESEND_API_KEY→ 用 Resend 真发;留空 → 降级到 dev transport,把邮件正文/链接console.log到终端(src/features/email/dev-transport.ts),本地绝不误发。 - 发件人取
EMAIL_FROM,缺省为FlareStarter <onboarding@resend.dev>。 - 正文由
renderEmail(templates.ts)渲染:根据locale从 i18n 字典dict.email取 标题/正文/按钮文案,套进一个内联样式的 HTML 骨架,同时产出纯文本版。
内置模板
SendEmailInput 的 template 目前有三种:
常见改动
- 改文案:编辑
src/features/i18n/dictionaries/en.ts和zh.ts的email段 (两个字典结构必须一致)。 - 加一种邮件:在
SendEmailInput['template']加类型 → 在两个字典email段加对应 文案键 → 在renderEmail的分支里接上。 - 换邮件外观:改
templates.ts里的 HTML 骨架(注意所有插值都要经esc()转义)。
本地调试验证/重置流程,不必配 Resend —— 跑 pnpm dev,在终端里找 [dev-email]
开头的行,把里面的链接复制到浏览器即可。