# @emailens/engine 中文文档

规范地址：https://npmcn.com/package/%40emailens/engine/

版本：0\.19\.1
npm 元数据更新时间：2026-11-12T04:30:45.210Z
中文译文更新时间：2026-11-13T14:30:55.120Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：7.8 MB，49 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：2 个
- peer 依赖：mjml \>=4\.0\.0，react ^18\.0\.0 \|\| ^19\.0\.0，sharp \>=0\.33\.0，sucrase ^3\.35\.0，isolated-vm \>=5\.0\.0，playwright-core \>=1\.40\.0，@maizzle/framework \>=5\.0\.0 \<7\.0\.0，@react-email/render \>=1\.0\.0，@react-email/components \>=0\.0\.36
- 首次发布：2026-02-25T18:00:14.701Z
- 最新版本发布：2026-11-12T04:30:45.040Z
- 近 30 天下载量：32353（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：98（近 12 个月 98 个）

## 中文简介

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

## 安装

```sh
npm install @emailens/engine
```

也可以使用：`pnpm add @emailens/engine`、`yarn add @emailens/engine`、`bun add @emailens/engine`

## README

![emailens / engine](https://npmcn.com/package/%40emailens/engine/docs/wordmark-light.svg)

**电子邮件的渲染插件**

[![CI](https://github.com/emailens/engine/actions/workflows/ci.yml/badge.svg)](https://github.com/emailens/engine/actions/workflows/ci.yml) [![npm](https://badgen.net/npm/v/@emailens/engine)](https://www.npmjs.com/package/@emailens/engine) [![license](https://badgen.net/badge/license/MIT/green)](https://npmcn.com/package/%40emailens/engine/LICENSE) ![tests](https://badgen.net/badge/tests/2215%20passing/brightgreen) [![node](https://badgen.net/badge/node/%3E%3D18/brightgreen)](https://nodejs.org/) [![MCP](https://badgen.net/badge/MCP/Server/blue)](https://github.com/emailens/mcp) [![GitHub stars](https://badgen.net/github/stars/emailens/engine)](https://github.com/emailens/engine/stargazers)

[快速启动](https://npmcn.com/package/%40emailens/engine/#readme-quick-start) • 妇女 [捕捉到的东西](https://npmcn.com/package/%40emailens/engine/#readme-what-it-catches) • 妇女 [为什么是电子邮件](https://npmcn.com/package/%40emailens/engine/#readme-why-emailens) • 妇女 [支持客户端](https://npmcn.com/package/%40emailens/engine/#readme-supported-email-clients) • 妇女 [API 文档](https://npmcn.com/package/%40emailens/engine/docs/API.md)

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

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

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

```bash
npx @emailens/cli lint email.html
```

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

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

## 快速启动

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

```bash
npx @emailens/cli lint email.html
```

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

```bash
npm install @emailens/engine
```

```typescript
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 垃圾堆( 邮件按设计和客户端绘制) 说明客户是否保留、更改或打破了设计,以及为什么 直说吧 它也发现每个读者都死了的图像链接. 你个 提供渲染和网络; 它提供规则.

```typescript
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`](https://npmcn.com/package/%40emailens/engine/src/__tests__/gmail-android-dark.test.ts) |
| 对 Mac 的展望, 暗模式 | 一张由223个颜色细胞组成的平板,光和暗;规则被安装在一半的随机颜色上而分级到另一半:在4/255(未释放)内的42个被搁置的细胞中,有42个(未释放) | [`outlook-macos-dark.test.ts`](https://npmcn.com/package/%40emailens/engine/src/__tests__/outlook-macos-dark.test.ts) |
| 雅虎、质子和前景怪异 | 每个行为一个小探测器,如雅虎放下引出字体或射线梯度,或质子崩溃 nbsp 空间器 | `yahoo-*.test.ts`, (中文(简体) ), `protonmail-*.test.ts`, (中文(简体) ), `outlook-*.test.ts` |
| 支持表更正 | 每个牢房都有一个真正的收件箱 和看到的日期相矛盾 | [`scripts/observed-overrides.ts`](https://npmcn.com/package/%40emailens/engine/scripts/observed-overrides.ts) |

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

## 为什么是Emailens?

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

## 支持的电子邮件客户端

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

| 客户端 | 身份证 |
| --- | --- |
| [邮件](https://emailens.dev/email-css/clients/gmail-web) | `gmail-web` |
| [Gmail 安卓尔](https://emailens.dev/email-css/clients/gmail-android) | `gmail-android` |
| [邮件 iOS](https://emailens.dev/email-css/clients/gmail-ios) | `gmail-ios` |
| [展望365](https://emailens.dev/email-css/clients/outlook-web) | `outlook-web` |
| [展望(新)](https://emailens.dev/email-css/clients/outlook-windows) | `outlook-windows` |
| [展望经典](https://emailens.dev/email-css/clients/outlook-windows-legacy) | `outlook-windows-legacy` |
| [IOS展望](https://emailens.dev/email-css/clients/outlook-ios) | `outlook-ios` |
| [展望 Android](https://emailens.dev/email-css/clients/outlook-android) | `outlook-android` |
| [宏的前景](https://emailens.dev/email-css/clients/outlook-macos) | `outlook-macos` |
| [苹果邮件](https://emailens.dev/email-css/clients/apple-mail-macos) | `apple-mail-macos` |
| [苹果邮件 iOS](https://emailens.dev/email-css/clients/apple-mail-ios) | `apple-mail-ios` |
| [雅虎邮件](https://emailens.dev/email-css/clients/yahoo-mail) | `yahoo-mail` |
| [雅虎邮件Android](https://emailens.dev/email-css/clients/yahoo-mail-android) | `yahoo-mail-android` |
| [Yahoo 邮件 iOS](https://emailens.dev/email-css/clients/yahoo-mail-ios) | `yahoo-mail-ios` |
| [三星邮件](https://emailens.dev/email-css/clients/samsung-mail) | `samsung-mail` |
| [雷鸟](https://emailens.dev/email-css/clients/thunderbird) | `thunderbird` |
| [嘿,邮件](https://emailens.dev/email-css/clients/hey-mail) | `hey-mail` |
| [质子邮件](https://emailens.dev/email-css/clients/protonmail) | `protonmail` |
| [AOL 邮件](https://emailens.dev/email-css/clients/aol) | `aol` |
| [快递](https://emailens.dev/email-css/clients/fastmail) | `fastmail` |
| [超级人](https://emailens.dev/email-css/clients/superhuman) | `superhuman` |

## 生态系统

| 软件包 | 用它来 |
| --- | --- |
| [@ emailens/ engine (英语)](https://github.com/emailens/engine) | 核心图书馆和分析 |
| [@ 电子邮件/ cli](https://github.com/emailens/cli) | 当地和CI的林特 |
| [@ 电子邮件ens/ mcp](https://github.com/emailens/mcp) | AI 代理访问电子邮件QA |
| [电子邮件/行动](https://github.com/emailens/action) | GitHub 动作质量门 |
| [电子邮件/vscode](https://github.com/emailens/vscode) | VS 代码内嵌和预览 |
| [电子邮件.dev](https://emailens.dev/) | 主机预览和团队工作流程 |

## 许可证

MIT,版权2025 Emailens

* * *

如果这能让你免于Outlook惊喜, [一颗恒星](https://github.com/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 和提交记录判断。

