# @beignet/provider-mail-resend 中文文档

规范地址：https://npmcn.com/package/%40beignet/provider-mail-resend/

版本：0\.0\.65
npm 元数据更新时间：2026-11-07T23:22:53.441Z
中文译文更新时间：2026-11-08T05:18:47.378Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40beignet/provider-mail-resend
原文对照：https://npmcn.com/package/%40beignet/provider-mail-resend/?lang=original
项目主页：https://github.com/taylorbryant/beignet#readme
源码仓库：https://github.com/taylorbryant/beignet

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：36.4 kB，8 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.12\.0
- 运行依赖：1 个
- peer 依赖：resend ^6\.14\.0，@beignet/core \>=0\.0\.3 \<1\.0\.0
- 首次发布：2026-05-26T16:50:05.410Z
- 最新版本发布：2026-11-07T23:22:53.275Z
- 近 30 天下载量：1897（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：65（近 12 个月 65 个）

## 中文简介

重新发送 Beignet 的邮件提供者 - 使用 Resend 添加邮件端口

## 安装

```sh
npm install @beignet/provider-mail-resend
```

也可以使用：`pnpm add @beignet/provider-mail-resend`、`yarn add @beignet/provider-mail-resend`、`bun add @beignet/provider-mail-resend`

## README

# 翻译:

> **运行时间 :** Beignet需要Node.js 22.12或更新. Bun是可选的.

> \[叹息\] Beignet是实验性的α软件. 这个 `0.0.x` 包行为早期 评估,且在框架结算时,API可能在发布之间发生变化.

Beignet 的后端邮件提供者 .

提供者安装了应用程序配置 `ctx.ports.mailer` 移植和曝光 `ctx.ports.resend.client` 仅作为Resend特定特性的逃生舱.

`createResendMailProvider(...)` 返回稳定 `ResendMailProvider` 类型. `ResendMailConfig` 描述其已验证的配置; Zod 方案尚存 内部.

## 安装

```bash
bun add @beignet/provider-mail-resend @beignet/core resend
```

提供者要求 `resend` `^6.14.0` 用于附件元数据支持. 升级旧SDK装置 `bun add resend@^6.14.0`. Beignet 的节点.js 22.12-或更新运行时间基线也满足Resend v6的要求.

## 设置

```typescript
import { createResendMailProvider } from "@beignet/provider-mail-resend";
import { createServer } from "@beignet/core/server";

const server = await createServer({
  ports: basePorts,
  providers: [createResendMailProvider()],
  context: ({ ports }) => ({ ports }),
  routes,
});
```

所需的环境变量 :

| 变量 | 说明 |
| --- | --- |
| `RESEND_API_KEY` | 重新发送 API 密钥 |
| `RESEND_FROM` | 默认发送者, 例如 . `My App <no-reply@example.com>` |

`beignet doctor --strict` 检查安装的 Resend 邮件提供者是 登记在册 `server/providers.ts` 和两个必要的 vars 存在 ,在app env 示例或配置中.

使用 `createResendMailProvider(...)` 如果您要直接通过配置 而不是读 `RESEND_*` (原始内容存档于2018-10-21). Env vars. 选项覆盖 env 衍生值 :

```typescript
import { createResendMailProvider } from "@beignet/provider-mail-resend";

export const providers = [
  createResendMailProvider({
    apiKey: secrets.resendApiKey,
    from: "My App <no-reply@example.com>",
  }),
];
```

通话 `createResendMailProvider()` 没有选项 配置 .

## 在应用程序代码中使用

```typescript
await ctx.ports.mailer.send({
  to: "user@example.com",
  subject: "Welcome",
  html: "<h1>Hello</h1>",
});
```

一样 `MailerPort` 与 SMTP 、 内存假象和其他适配器合作 :

```typescript
await ctx.ports.mailer.send({
  from: { email: "support@example.com", name: "Support" },
  to: ["user@example.com", "admin@example.com"],
  replyTo: "support@example.com",
  subject: "Account updated",
  text: "Your account was updated.",
  html: "<p>Your account was updated.</p>",
});
```

## 附件和内含图像

通过标准邮件发送文件 :

```typescript
await ctx.ports.mailer.send({
  to: "user@example.com",
  subject: "Workspace summary",
  text: "Your summary is attached.",
  attachments: [
    {
      filename: "summary.json",
      content: new TextEncoder().encode(JSON.stringify({ completed: 12 })),
      contentType: "application/json",
    },
  ],
});
```

每个 `MailAttachment` 需要非空白 `filename` 没有控制字符 财务报告和审定财务报表 `content: Uint8Array`; Node.js Buffers 也能够工作. 可选 `contentType` 指定一个没有参数的 MIME 类型; 提供者从 省略时的文件名 。 设定 `contentId: "logo"` 图像附件和 提及它与 `<img src="cid:logo">` 在HTML正文中嵌入图像. 每个消息的ID必须独一无二: 1–127个字母,数字,点,下划线, `@`, (中文(简体) ), `+`,或 `-`,从字母或数字开始。 关闭 `cid:` 前缀从 该附件的身份.

发送前共享邮件复制元数据及字节, 允许为空 文件,并拒绝无效的附件字段 `MailDeliveryError` 在此之前 打电话给供应商。 它接受字节而不是路径、 URL、 流, 或 基础64字符串。 提供者大小和文件类型的限制适用。 附录名称, 字节和内容ID不包含在邮件仪器中.

使用 `createMemoryMailer()` 从 `@beignet/core/mail` 主张 `mailer.deliveries[0].message.attachments` 在测试。 排队任务和 通知应携带存储密钥或JSON安全源数据; 构造 处理器或信道渲染器中的附件字节.

## 逃逸舱门

仅在您需要未覆盖的 Resend 特定特性时使用 Resend 客户端 以 `MailerPort`数字 :

```typescript
await ctx.ports.resend.client.emails.send({
  from: "sender@example.com",
  to: "user@example.com",
  subject: "Invoice",
  html: "<p>Your invoice is ready.</p>",
  tags: [{ name: "category", value: "invoice" }],
});
```

提供者提供:

-   `ctx.ports.mailer`,标准贝格网 `MailerPort`
-   `ctx.ports.resend`,带有Resend客户端的逃生舱门

## 开发工具

何时 `ctx.ports.devtools` 已安装,此提供者记录 `mail.send`, (中文(简体) ), `mail.sent`,以及 `mail.failed` 下的活动 `mail` 观者. 已完成 失败事件包括 `durationMs` 他们的细节。 事件保留提供者, 接收者数、可用时的交付ID和持续时间,但绝不包括 地址、主题、消息机构或原始Resend错误.

## 失败并重试语义

提供者失败且不重试 。 每个 `send(...)` 打个电话 重新发送SDK呼叫,甚至针对瞬态网络出错或提供方故障. 邮件发送不是一码事:计时发送可能仍未完成 因此,一个盲人供应商重试有可能重复电子邮件.

投递失败 `MailDeliveryError` 从 `@beignet/core/mail` 与 提供者名称、收件人数和原始Resend错误被保留为 `cause` 应用软件的处理。 未将错误复制到提供者 仪器 当应用程序记录原因时, 编辑或限制访问 . 启动配置问题在提供者设置时抛出 .

当邮件需要重试时,请从工作或收发箱支持的收听器中发送 并拥有自己的能力 任务或排出行应选择尝试和 延迟,而且申请应在 发送.

## 当地测试

使用内存或假 `MailerPort` 在使用个案测试中。 保留续发沙盒或 特定环境配置中的测试模式证书并避免发送真实 自动测试邮件.

## 部署说明

设定 `RESEND_FROM` 给已核实域发送者。 将邮件发送视为一种 外部副作用:从承诺的工作流程状态触发重要邮件, 通常通过通知,工作,或外框后置的收听器.

## 许可证

麻省理工学院

## 常见问题

### @beignet/provider-mail-resend 是什么？

重新发送 Beignet 的邮件提供者 - 使用 Resend 添加邮件端口

### 如何安装 @beignet/provider-mail-resend？

在项目目录运行 npm install @beignet/provider-mail-resend，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：resend（^6\.14\.0）、@beignet/core（\>=0\.0\.3 \<1\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @beignet/provider-mail-resend 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @beignet/provider-mail-resend 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @beignet/provider-mail-resend 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.12\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @beignet/provider-mail-resend 可以商用吗？

@beignet/provider-mail-resend 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @beignet/provider-mail-resend 的下载量有多少？

根据 npm 官方下载统计，@beignet/provider-mail-resend 在 2026/10/08 – 2026/11/06 这 30 天内被下载 1,897 次，日均约 63 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @beignet/provider-mail-resend 还在维护吗？

最新版本 0\.0\.65 发布于 2026/11/08（今天）；至今共发布 65 个版本，其中过去 12 个月发布了 65 个；首次发布于 2026/05/27。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

