一封邮件到底多久才能到?
这个类别里的每一家服务都说「即时」。这个词单独拿出来什么都不说明, 而老实的答案是:大部分延迟并不由我们掌控。下面讲清楚这段等待究竟由什么构成, 以及怎样花大约一分钟自己测一次。
延迟由哪几段构成
从你在对方网站上按下「发送」,到邮件出现在这里,中间会发生四件互不相同的事—— 而且它们慢的程度天差地别。
| 环节 | 由谁掌控 | 通常占等待时间的多少 |
|---|---|---|
| 发信方的队列 | 你注册的那个网站 | 通常是绝大部分 |
| 域名的 DNS 解析 | 你域名的名称服务器 | 毫秒级,除非配置有误 |
| SMTP 投递 | 两端的邮件服务器 | 链路正常时不到一秒 |
| 出现在这个页面上 | 我们 | 大约一秒,不需要刷新 |
ℹ️
由此得出的结论值得直说:如果一个验证码花了 40 秒, 那么其中 39 秒多半是耗在发信方的队列里。 没有任何邮件服务能让别人家的队列变短。
自己动手测一次
你不必去相信别人发布的某张表格。这个测量很简单,一分钟就够:
- 在这里打开一个邮箱,让标签页保持可见。
- 用你已有的任意一个邮箱,往那个地址发一封信——记下你按下发送的时间。
- 盯着看。邮件会自己出现,什么都不用刷新。
重复两三次。单次测量只说明某一个瞬间,测三次才知道那个瞬间是不是常态。 然后对你想比较的其他服务做同样的事,用同一个发信邮箱,在同样的这几分钟之内—— 否则你比较的是两个不同时刻的两张不同网络,却把差异当成了结论。
如果确实慢,通常是这几个原因
- 发信方在限流。大型发信方会把确认邮件打包批量发出。收信这一端做什么都改变不了。
- 域名配置有误。MX 记录缺失或写错,会让投递「慢慢地失败」而不是干脆地失败,因为发信方会不断重试。 域名检测工具 几秒钟就能回答这个问题。
- 发信方直接拒绝了这个域名。那样的话根本不会有邮件过来,继续等就是白等—— 怎么分辨这两种情况。
- 灰名单机制。有些链路会故意拒绝第一次投递,几分钟后接受重试。 它看上去和「慢」一模一样,而且会自己恢复。
我们为什么不发布速度排行榜
这一页从前有过一张,测于 2017 年,此后再没重测过。它已经被删掉了,而删掉的理由值得留下:
一张速度表,只在它被做出来的那一小时里是真的。各家服务会换主机、加队列、加验证码; 而那个数字留在页面上,被一读再读,还被当成当前情况。更糟的是, 它在引导读者去相信一个自己无法核实的测量结果, 而被测的服务,读者本可以在一分钟内亲手测一遍。 上面那套步骤比我们能印出来的任何数字都有用,因为它产出的是你的数字, 今天的,在你的网络上。
⚠️
同样的提醒也适用于别处的速度宣称,包括我们自己的。 如果一个页面告诉你某个东西有多快,却不告诉你那是什么时候测的,那个数字只是装饰。