测试你的邮件:粘贴源码,看结论

那些知名的垃圾邮件测试网站要你把一封真实邮件发给它们,因为它们需要一台邮件服务器来接收。这个网站没有服务器可以接收任何东西 —— 所以你要做的是粘贴邮件内容,让浏览器当着你的面完成整个分析。

正在加载工具……

工作原理

  1. 在你的邮件程序里打开这封邮件,取出它的源码:Gmail 里是“显示原始邮件”,Thunderbird 里按 Ctrl+U,网页版 Outlook 里是“查看邮件源”。如果可以,直接下载 .eml 文件 —— 复制粘贴可能会改变空格和换行,这样一来逐字符比对邮件内容的 DKIM 检查就会失败。
  2. 把它粘贴到上面,或者把 .eml 文件拖进框里。
  3. 按“Analyse”(分析)。先看“Authentication”(身份验证)这一块 —— 它显示邮件有没有证明自己的发件人身份,这是收件服务器最看重的东西 —— 然后再看内容规则,每一条都标着自己的分数。

为什么什么都不用上传

这个页面上的每一步操作,都由运行在你浏览器标签页里的代码完成,用的就是渲染网页的那套引擎。文件从磁盘读进标签页的内存,在那里被处理,再作为下载写回去。它不会被送到任何地方 —— 不会送给我们,也不会送给第三方。

自己动手验证

  1. 打开浏览器的开发者工具(F12),选择“网络”(Network)面板。
  2. 载入你的文件,运行这个工具。
  3. 你能看到的请求只有这些:工具自己的代码 —— 少数几个重型工具还会从公共 CDN 取它们的开源引擎 —— 外加一条发往 loreatec.jp 的小小访问记录(页面地址和标题,仅此而已)。没有一条带着你的文件。

文件不外传的证明 →

常见问题

为什么要粘贴源码,而不是直接发一封测试邮件?

因为接收邮件需要一台邮件服务器,而这个网站没有 —— 这里的一切都在你的浏览器里运行。这个取舍是公平的:一个能接收你邮件的测试工具可以读到内容,还会保存好几天;在这里,邮件从来不会离开你的电脑。代价是拿不到收件服务器眼中看到的发件服务器地址,所以工具改为从邮件自身的投递头字段里读取这个地址,并让你自己修正它。

没有服务器,它怎么验证 DKIM?

DKIM 是一种数字签名,用来证明邮件确实来自发件人的域名,并且在传输途中没有被改动。验证它只需要浏览器早就内置的两样东西:一种给邮件计算指纹的方法,以及一种用公钥核对签名的方法。工具会按标准(RFC 6376)的要求准备好邮件内容,按域名从 DNS 里取出公钥,然后核对。它已经用 RFC 8463 里的官方示例测试过,RSA 和 Ed25519 两种密钥都验证过。

DKIM 提示正文不匹配,但这封邮件其实收到了,内容也没问题。

几乎总是粘贴过程惹的祸。通过浏览器复制一封邮件,可能会改变制表符、行尾空格和换行方式,而 DKIM 签名是逐字符覆盖正文的。改成下载原始的 .eml 文件,拖到这里来。如果换成 .eml 还是失败,那就是签名之后真的有什么东西改动了正文 —— 邮件列表加的页脚、杀毒软件加的提示条,或者转发服务器。

这个分数和外面那个满分十分的知名评分是一回事吗?

不是,它也没打算冒充。这是我们自己的一套规则,每一条都列在页面上并标着分数,所以这个数字从哪来,你看得清清楚楚。任何评分都无法预测一封邮件最终会落在哪里:最大的因素是你作为发件人在每个收件方那里积累的信誉,这一点从外部根本看不到 —— 谁都看不到,包括那些收费工具。

为什么有些黑名单显示“无法检测”?

黑名单是一份公开的、记录着已知发送垃圾邮件地址的名单。其中一些拒绝回答通过公共 DNS 服务发来的查询,而浏览器只能通过公共 DNS 服务发问。Spamhaus、URIBL 和 SURBL 给出的应答代码,意思是“我不会告诉你”。把这种情况报告成“干净”会是最危险的一种错误,所以工具把它们如实列出来,并附上它们各自查询页面的链接。真正会回答的那十五份名单,则按正常方式检测。

能不能完全不联网检测一封邮件?

可以 —— 取消勾选 DNS 那个选项。所有单凭邮件本身就能检测的部分照常运行:邮件头、投递路径、结构、HTML、链接、法律要求项,以及 DKIM 的正文校验。只有真正需要 DNS 的那部分会被标成“未检测”。