您的电子邮件在苹果邮件中看起来很完美 。 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 |
| 邮件 iOS | gmail-ios |
| 展望365 | outlook-web |
| 展望(新) | outlook-windows |
| 展望经典 | outlook-windows-legacy |
| IOS展望 | outlook-ios |
| 展望 Android | outlook-android |
| 宏的前景 | outlook-macos |
| 苹果邮件 | apple-mail-macos |
| 苹果邮件 iOS | apple-mail-ios |
| 雅虎邮件 | yahoo-mail |
| 雅虎邮件Android | yahoo-mail-android |
| Yahoo 邮件 iOS | yahoo-mail-ios |
| 三星邮件 | samsung-mail |
| 雷鸟 | thunderbird |
| 嘿,邮件 | hey-mail |
| 质子邮件 | protonmail |
| AOL 邮件 | aol |
| 快递 | fastmail |
| 超级人 | superhuman |
生态系统
| 软件包 | 用它来 |
|---|---|
| @ emailens/ engine (英语) | 核心图书馆和分析 |
| @ 电子邮件/ cli | 当地和CI的林特 |
| @ 电子邮件ens/ mcp | AI 代理访问电子邮件QA |
| 电子邮件/行动 | GitHub 动作质量门 |
| 电子邮件/vscode | VS 代码内嵌和预览 |
| 电子邮件.dev | 主机预览和团队工作流程 |
许可证
MIT,版权2025 Emailens
如果这能让你免于Outlook惊喜, 一颗恒星 帮助其他电子邮件开发者找到它.