Email

邮件概览

Nebutra 事务邮件 — catalog 化的发送函数、本地预览和 Resend 投递。

Nebutra 通过 @nebutra/email 发送事务邮件。当前实现以 packages/integrations/email/src/index.ts 里的 EMAIL_TEMPLATE_CATALOG 为中心:它把每个公开发送函数映射到对应的预览产物;Resend 客户端只在真正发送邮件时才懒加载。

架构

Server action / route / job / webhook
  -> @nebutra/email 具名发送函数
  -> 品牌 HTML 邮件
  -> 懒加载 Resend 客户端
  -> 用户收件箱

没有 RESEND_API_KEY 时,仍然可以导入包、运行契约测试和校验本地预览。真实投递才需要 Resend 凭证。

内置目录

当前包维护 15 个模板:

Catalog ID公开函数预览产物
welcomesendWelcomeEmailwelcome-email.html
order-confirmationsendOrderConfirmationEmailorder-confirmation-email.html
api-key-createdsendApiKeyCreatedEmailapi-key-created-email.html
quota-warningsendQuotaWarningEmailquota-warning-email.html
team-invitationsendInviteEmailteam-invitation-email.html
magic-linksendMagicLinkEmailmagic-link-email.html
contact-form-receivedsendContactFormReceivedEmailcontact-form-received-email.html
checkout-completedsendCheckoutCompletedEmailcheckout-completed-email.html
trial-endingsendTrialEndingEmailtrial-ending-email.html
invoice-paidsendInvoicePaidEmailinvoice-paid-email.html
payment-failedsendPaymentFailedEmailpayment-failed-email.html
subscription-canceledsendSubscriptionCanceledEmailsubscription-canceled-email.html
upcoming-invoicesendUpcomingInvoiceEmailupcoming-invoice-email.html
plan-changedsendPlanChangedEmailplan-changed-email.html
license-createdsendLicenseCreatedEmaillicense-created-email.html

快速开始

import { sendQuotaWarningEmail, sendWelcomeEmail } from "@nebutra/email";

await sendWelcomeEmail({
  to: user.email,
  firstName: user.firstName,
  orgName: org.name,
  dashboardUrl: "https://app.nebutra.com",
});

await sendQuotaWarningEmail({
  to: admin.email,
  orgName: org.name,
  metric: "api calls",
  used: 8100,
  limit: 10000,
  percentUsed: 81,
});

环境变量

变量真实发送是否必需说明
RESEND_API_KEYResend API key,只在发送时读取
EMAIL_FROM发件人地址,默认 Nebutra <[email protected]>

RESEND_API_KEY 是密钥,不要提交到代码仓库。请放在 Vercel 环境变量、CI secrets 或密钥管理器中。

本地预览

用 mail-preview 工作区校验预览,不要手工改生成 HTML:

pnpm mail:check
pnpm mail:export

mail:check 校验每个目录项都有预览产物;mail:export 根据目录重新生成预览索引和 manifest。

How is this guide?

目录