读懂一封邮件的头字段

每封邮件都带着看不见的头字段:记录着它经过的每一台服务器,最新的写在最前面。这个工具把它们整理成一条带时间的路径,这样“这封邮件为什么花了四个小时”就有了一个能指出来的答案。

正在加载工具……

工作原理

  1. 复制头字段:Gmail 里是“显示原始邮件”,Outlook 里是“文件 → 属性 → Internet 标头”,Thunderbird 里按 Ctrl+U。
  2. 粘贴到上面,按“Analyse”(分析)。
  3. 从上到下读这条路径 —— 第一行就是最先处理这封邮件的服务器 —— 找到延迟突然变大的那一跳(hop,从一台服务器到下一台服务器的一步)。

为什么什么都不用上传

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

自己动手验证

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

文件不外传的证明 →

常见问题

这条路径是倒着写的,为什么?

因为每台服务器都会把自己的 Received 行加在最上面,所以文件里最新的记录排在最前面。这个页面帮你把顺序倒过来:第一行是最先处理这封邮件的服务器,最后一行是把它投递进邮箱的那一台。

有一跳花了九分钟,这说明什么?

邮件在队列里等待过。最常见的原因是“灰名单”(greylisting):收件服务器故意拒绝一个陌生发件人的第一次尝试,等它重试时才接受。这会花掉五分钟到一小时,而且除了这里,没有别的地方能看到这个过程。如果同一跳每次都有很长的延迟,通常说明收件方负载过高,或者故意在放慢收信速度。

为什么延迟会是负数?

因为两台服务器上的时间对不上。邮件服务器的时钟稍微不准是很常见的事,本身无害;只有当差值大到让时间失去意义,或者让签名过期时,它才真正要紧。

这个工具和完整的邮件测试工具有什么区别?

这个页面完全离线,只读取头字段里已经写好的内容,包括收件服务器自己算出的 SPF、DKIM、DMARC 结果。要亲自重新核对这些签名,需要用到 DNS 里的公钥 —— 这正是在线的邮件测试工具做的事:同样的读取,再加上实际核对。