@bernierllc/email-batch-sender

中文文档
0.4.9发布于 2026/11/05PROPRIETARYTypeScriptCommonJS近 30 天下载 1814

带有货币控制、利率限制、重试策略和故障处理的批发邮件

中文使用文档
文档目录9 节
  1. 安装
  2. 使用量
  3. 出口
  4. 提供者能力支持
  5. 提供者的能力等级
  6. 如何运作
  7. 退化行为
  8. 覆盖选项
  9. 许可证

@bernierllc/电子邮件批判者

带有货币控制的批发邮件, 速率限制, 重试策略, 以及故障处理 。 在所有电子邮件提供者中提供统一的批量API,在有本地供应商批量端点的地方使用,然后回到依次发送.

安装

npm install @bernierllc/email-batch-sender

使用量

import { createBatchSender } from '@bernierllc/email-batch-sender';

const sender = createBatchSender(emailSenderInstance, {
  concurrency: 5,
  rateLimit: { tokensPerInterval: 10, interval: 1000 },
  retry: { maxRetries: 3, backoffMs: 1000 },
});

const result = await sender.sendBatch([
  { to: '[email protected]', subject: 'Hello', html: '<p>Hi Alice</p>' },
  { to: '[email protected]', subject: 'Hello', html: '<p>Hi Bob</p>' },
]);

console.log(`Sent: ${result.succeeded} / ${result.total}`);

出口

  • BatchSender -- 批发业务主要类别
  • createBatchSender() -- 工厂功能
  • TokenBucketRateLimiter -- 内部使用的限速器
  • BatchSenderError -- 有错误代码的自定义错误类
  • 类型 : BatchSenderOptions, (中文(简体) ), RateLimitOptions, (中文(简体) ), BatchRetryOptions, (中文(简体) ), BatchResult, (中文(简体) ), BatchEmailResult, (中文(简体) ), BatchProgress, (中文(简体) ), BatchEmailInput

提供者能力支持

本节记录了批量发送如何在电子邮件提供者之间进行行为,基于cononical CAPABILITY_MATRIX 内 @bernierllc/email-manager。 。 。 .

提供者的能力等级

提供者能力级别页:1
发送Grid提供者本地批次 API 通过个性化; 提供者处理批次服务器侧面
邮件枪提供者本地批次通过收件人变量发送
邮戳提供者原产地批次 API 端点 (/email/batch(中文(简体) )
用户提供者土著 SendBulkEmail API 密码
SMTP 软件平台没有本地批次支持; 此软件包会依次在 SMTP 连接上发送电子邮件

如何运作

  • 提供者一级 (SendGrid,邮件枪,邮戳,SES): 电子邮件管理员代表到供应商的本地批发端点. 这个软件包将调用,处理速率限制,并管理复试. 供应商可以作为单一API呼叫(SendGrid个性化,Postmark批发端)或优化散装操作(SES)处理批发 SendBulkEmail) (中文(简体) ).

  • 平台一级 (SMTP):由于SMTP没有本土的批量支持,本软件包在SMTP连接上相继发送电子邮件. 货币,速率限制,再试逻辑都由这个软件包在平台层面处理.

退化行为

当与缺乏本地批量支持的供应商使用时( 目前只有 SMTP ):

  • 战略数字 : sequential-batch
  • 行为: 电子邮件通过 SMTP 连接一次发送一次, 尊重配置的货币限制和速率限制器
  • 业绩: 慢于本地批次 API; 吞吐量取决于 SMTP 服务器响应时间和配置的货币/ 速率限制设置
  • 可靠性: 完全重试支持可配置后退; 单个信件失败不会阻断批次的其余部分

覆盖选项

批量发送能力被标记 overridable: true 对于所有有本地支持的提供者,即使有本地批次 API,您也可以强制平台级顺序发送。 这对于调试或当供应商批量端点有临时问题时,可能有用.

// Force sequential sending regardless of provider
const sender = createBatchSender(emailSenderInstance, {
  forceSequential: true,
  concurrency: 3,
});

许可证

版权(c)2025 Bernier有限责任公司。 版权所有.

这个包裹凭有限使用许可证发给客户. 客户只能在交付的项目范围内使用并修改此代码. 未经Bernier有限责任公司书面同意,不得再分配或用于其他产品或商业供货.

版本与发布记录

@bernierllc/email-batch-sender 共发布 19 个版本,首次发布于 2026/02/22;过去 12 个月发布了 19 个版本。

版本发布日期距今
0.4.9latest2026/11/053 天前
0.4.82026/10/2415 天前
0.4.72026/10/2316 天前
0.4.62026/10/1920 天前
0.4.52026/10/021 个月前
0.4.42026/10/021 个月前

关于 @bernierllc/email-batch-sender 的常见问题

@bernierllc/email-batch-sender 是什么?

带有货币控制、利率限制、重试策略和故障处理的批发邮件

如何安装 @bernierllc/email-batch-sender?

在项目目录运行 npm install @bernierllc/email-batch-sender,或使用 pnpm add / yarn add / bun add。

@bernierllc/email-batch-sender 支持 TypeScript 吗?

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

@bernierllc/email-batch-sender 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@bernierllc/email-batch-sender 需要什么版本的 Node.js?

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

@bernierllc/email-batch-sender 可以商用吗?

@bernierllc/email-batch-sender 使用 PROPRIETARY 许可。声明的许可为 PROPRIETARY,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@bernierllc/email-batch-sender 的下载量有多少?

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

@bernierllc/email-batch-sender 还在维护吗?

最新版本 0.4.9 发布于 2026/11/05(3 天前);至今共发布 19 个版本,其中过去 12 个月发布了 19 个;首次发布于 2026/02/22。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。