@emailens/engine

中文文档
0.19.1发布于 2026/11/12MITTypeScriptESM + CJS近 30 天下载 3.2万

HTML,MJML,Maizzle和React Email的电子邮件兼容引擎:每个电子邮件客户端转换CSS,计分兼容,模拟暗模式,建议修正,并运行垃圾邮件,访问,链接和图像质量分析.

中文使用文档
文档目录10 节
  1. 快速启动
  2. 备选案文1:首先尝试国家综合倡议
  3. 备选案文2:使用引擎作为库
  4. 仍然像设计吗?
  5. 捕捉到的东西
  6. 按真实客户计量
  7. 为什么是Emailens?
  8. 支持的电子邮件客户端
  9. 生态系统
  10. 许可证
emailens / engine

电子邮件的渲染插件

CI npm license tests node MCP GitHub stars

快速启动 • 妇女 捕捉到的东西 • 妇女 为什么是电子邮件 • 妇女 支持客户端 • 妇女 API 文档

您的电子邮件在苹果邮件中看起来很完美 。 Gmail剥去一半的CSS. Outlook使它成为文字.

@emailens/engine 分析 HTML, React Email, MJML, 和 Maizzle 的21个电子邮件客户端, 并在您的电子邮件发出前给兼容性打分 。 它抓住了引擎,终端,CI以及AI编码工作流程内部的问题.

如果你想在当地尝试最快的路径,请从CLI开始:

npx @emailens/cli lint email.html

CLI是开源使用推荐的切入点. 引擎是用于建设者,工具和自定义集成的下层库.

电子邮件.dev 是主机SaaS,用于共享预览,截图,可视化diff,以及团队工作流程. 开源软件包是本地开发商的工具.

快速启动

备选案文1:首先尝试国家综合倡议

npx @emailens/cli lint email.html

备选案文2:使用引擎作为库

npm install @emailens/engine
import { auditEmail } from "@emailens/engine";

const html = `<html><body><div style="display:flex; gap: 12px;">...</div></body></html>`;
const report = auditEmail(html, { framework: "jsx" });

console.log(report.compatibility.scores["outlook-windows"]);

主条目在浏览器和节点中运行,通过测试可以保持 就是这样。 只有节点的部分生活在子路径中: @emailens/engine/compile (反应) 电子邮件、MJML和Maizzle编译器)和 @emailens/engine/server (DNS和 (原始内容存档于2017-10-25). SpamAssassin checks.

仍然像设计吗?

一个分数计算客户端支持的代码. @emailens/engine/design 法官 渲染: 给它两个 DOM 垃圾堆( 邮件按设计和客户端绘制) 说明客户是否保留、更改或打破了设计,以及为什么 直说吧 它也发现每个读者都死了的图像链接. 你个 提供渲染和网络; 它提供规则.

import { deadImages, explainDesign, keptOf, renderScores, verdictOf } from "@emailens/engine/design";

const kept = keptOf(designNodes, clientNodes);
const verdict = verdictOf(kept, pixelDiff); // "kept" | "changed" | "broken"
explainDesign({ verdict, kept }, "Outlook").sentence;

const dead = await deadImages(html, yourSafeFetcher); // refuse private IPs
renderScores(engineScores, { "outlook-windows-legacy": verdict }, dead.length);

捕捉到的东西

  • CSS 兼容性 涉及21个客户
  • 垃圾邮件评分 和内容卫生信号
  • 无障碍 对比和语义检查
  • 图像和链接验证
  • 收件箱预览 和针对客户的提供问题
  • 模板变量 和溢出问题
  • AI 固定生成 结构问题

每个发现可能包括源头位置,因此可以指向,注释,或者固定在原地.

按真实客户计量

支持表说明客户应该做什么. 我们发送探险邮件到真正的 应用并从截图上读取结果 如果两人意见不一 截图获胜 。 每一条规则都以此方式登陆 并用测试来测试 真正的客户端做到了,所以你可以检查我们的工作,并在任何改变后重新运行.

行为如何衡量测试
暗模式Android上的 Gmail 邮件880个彩相在发送前预测并承诺,然后读出真实的应用程序:每个频道4/255范围内878个gmail-android-dark.test.ts
对 Mac 的展望, 暗模式一张由223个颜色细胞组成的平板,光和暗;规则被安装在一半的随机颜色上而分级到另一半:在4/255(未释放)内的42个被搁置的细胞中,有42个(未释放)outlook-macos-dark.test.ts
雅虎、质子和前景怪异每个行为一个小探测器,如雅虎放下引出字体或射线梯度,或质子崩溃 nbsp 空间器yahoo-*.test.ts, (中文(简体) ), protonmail-*.test.ts, (中文(简体) ), outlook-*.test.ts
支持表更正每个牢房都有一个真正的收件箱 和看到的日期相矛盾scripts/observed-overrides.ts

它每封邮件的一分之一秒 覆盖所有21个客户,所以你可以 检查每个草稿,并保留真实的截图以备最后发送. 整个情况如何 循环工作, 和对真实收件箱的盲点比分 : 电子邮件. dev/准确度。 。 。 .

为什么是Emailens?

  • 离线第一: 无需账户就在当地运行
  • 统一审计:单一工具检查 CSS、垃圾邮件、无障碍、链接、图像等
  • 框架意识: 使用原始 HTML、 React Email、 MJML 和 Maizzle 工作
  • AI 准备: 任何模型提供者都可以生成结构修正
  • 可编程: 在 CI 、 编辑器、 脚本或自定义工具中使用

支持的电子邮件客户端

每个客户端都会在电子邮件上链接到其支持页面. dev,由此软件包的数据所建. 所有21个客户的每个特点: 电子邮件.dev/电子邮件-css。 。 。 .

客户端身份证
邮件gmail-web
Gmail 安卓尔gmail-android
邮件 iOSgmail-ios
展望365outlook-web
展望(新)outlook-windows
展望经典outlook-windows-legacy
IOS展望outlook-ios
展望 Androidoutlook-android
宏的前景outlook-macos
苹果邮件apple-mail-macos
苹果邮件 iOSapple-mail-ios
雅虎邮件yahoo-mail
雅虎邮件Androidyahoo-mail-android
Yahoo 邮件 iOSyahoo-mail-ios
三星邮件samsung-mail
雷鸟thunderbird
嘿,邮件hey-mail
质子邮件protonmail
AOL 邮件aol
快递fastmail
超级人superhuman

生态系统

软件包用它来
@ emailens/ engine (英语)核心图书馆和分析
@ 电子邮件/ cli当地和CI的林特
@ 电子邮件ens/ mcpAI 代理访问电子邮件QA
电子邮件/行动GitHub 动作质量门
电子邮件/vscodeVS 代码内嵌和预览
电子邮件.dev主机预览和团队工作流程

许可证

MIT,版权2025 Emailens


如果这能让你免于Outlook惊喜, 一颗恒星 帮助其他电子邮件开发者找到它.

版本与发布记录

@emailens/engine 共发布 98 个版本,首次发布于 2026/02/26;过去 12 个月发布了 98 个版本。

版本发布日期距今
0.19.1latest2026/11/121 天前
0.19.02026/11/121 天前
0.18.222026/11/112 天前
0.18.212026/11/094 天前
0.18.202026/11/067 天前
0.18.192026/11/067 天前

关于 @emailens/engine 的常见问题

@emailens/engine 是什么?

HTML,MJML,Maizzle和React Email的电子邮件兼容引擎:每个电子邮件客户端转换CSS,计分兼容,模拟暗模式,建议修正,并运行垃圾邮件,访问,链接和图像质量分析.

如何安装 @emailens/engine?

在项目目录运行 npm install @emailens/engine,或使用 pnpm add / yarn add / bun add。

@emailens/engine 支持 TypeScript 吗?

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

@emailens/engine 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@emailens/engine 需要什么版本的 Node.js?

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

@emailens/engine 可以商用吗?

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

@emailens/engine 的下载量有多少?

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

@emailens/engine 还在维护吗?

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