Email

邮件测试

使用无密钥契约测试、本地预览校验和 Resend 测试投递验证 @nebutra/email。

邮件改动按三层验证:包契约、本地预览产物、安全的 provider 投递。

测试和 CI 环境不要发送真实邮件。包测试和预览校验不需要 RESEND_API_KEY

包契约

修改发送函数、目录项、预览文件名或 import-time 行为后运行:

pnpm --filter @nebutra/email test
pnpm --filter @nebutra/email typecheck

契约测试会确认每个 EMAIL_TEMPLATE_CATALOG 项都有公开发送函数和对应预览产物。

本地预览产物

使用专门的 preview 工作区:

pnpm mail:check
pnpm mail:export

mail:check 会在目录项缺少 apps/mail-preview/dist 产物时失败。 mail:export 会根据包目录重新生成 dist/index.htmldist/preview-manifest.json

Resend 测试投递

Resend test key 接受 API 调用并记录日志,但不会投递到真实收件箱。

# .env.local — 不要提交
RESEND_API_KEY=re_test_...
EMAIL_FROM=Nebutra <[email protected]>
import { sendMagicLinkEmail } from "@nebutra/email";

await sendMagicLinkEmail({
  to: "[email protected]",
  magicLinkUrl: "https://app.nebutra.com/login/magic-link/test",
});

[email protected] 是 Resend 提供的成功投递测试地址。

CI 清单

  • pnpm --filter @nebutra/email test
  • pnpm --filter @nebutra/email typecheck
  • pnpm mail:check
  • 预览索引或 manifest 有意义时运行 pnpm mail:export
  • 生产投递使用已验证域名和生产 key

How is this guide?

目录