VPN 切换后 Mail 一直转圈:重新同步还是重新下载?
网络变化后繁忙的 Mail 窗口并不能证明发生了重新下载。先读取账户状态,再在重新同步、登录故障和 VPN 路径之间做判断。
当网络变化唤醒 Mail,进度指示器开始移动时,人们往往正是在这一刻断定 VPN 强制触发了完整重新下载。通常并非如此。重新连接会触发一轮同步,而一轮同步会先覆盖邮箱状态、标记和邮件元数据,很久之后才涉及邮件正文。真正有用的判断是:你处在三种情形中的哪一种,而只有账户自身的状态能告诉你答案。
一个繁忙的指示器,三种不同的情形
三种可能分别是正常的重新同步、不断重试的登录或身份验证失败,以及 Mail 通过新网络根本连不上服务器的路径问题。从远处看它们很像,因为三者都在让同一个窗口动起来,但它们需要三种不同的处理。
| What you observe | Most likely story | Where to look next |
|---|---|---|
| Brief activity that settles, mail arrives | Normal resync | Nothing to fix |
| Status says login failed | Mail account or provider authentication | The account and its provider settings |
| Status says offline or cannot contact server | Path through the new network | The VPN, proxy or filter in the way |
| Activity never settles, no new mail | Retry loop against a blocked or wrong endpoint | The exact status text and the destination |
那张表就是全部判断。它也说明了为什么「它又在下载了」只是对窗口的描述、而非对故障的诊断,以及为什么因为登录失败就去改 VPN 设置很少有用。
在解释任何东西之前,先读账户状态
在受影响账户旁边或 Mail 窗口内找到状态指示器,并打开它以便看到确切的信息。Apple 关于收发邮件的指引会区分连接问题、登录失败、服务可用性和账户额度,这四类分别对应四位不同的负责人。因为一条服务可用性的提示就重新输入密码,等于把同一个下午浪费两次。
把测试范围收窄:一个账户、一次不涉及任何敏感内容的新操作,而且全部走你希望它使用的那条路径。缓存的收件箱可能完全可见,而当前同步却在失败;因此「我能看到我的邮件」并不是判断是否有新邮件到达的好测试。在更改设置之前,把状态的原文记下来,因为事后你只剩这句话作为证据。五分钟后你记得的版本,永远比屏幕上的版本更模糊。
Mac 能上网,但 Mail 说处于离线状态
当机器上其他一切都正常、而 Mail 报告离线时,真正有意思的问题是:连接被要求走哪条路径。代理设置、网络过滤器或只承载部分流量的隧道,都可能让 Mail 停留在服务器不会响应的路由上。在修改账户之前,先看看系统级代理配置说了什么。
scutil --proxy
然后把账户与路径分开。网页邮箱证明账户在服务商那边是好的,但它无法证明 Mail 应用的配置,也无法证明应用所走的路由,因为浏览器可能采用完全不同的路径和不同的代理处理方式。发送和接收也可能依赖不同的服务,所以一次操作成功并不能完整检验另一次。
重复邮件是另一回事
正在进行的同步并不能证明已经产生了可见的重复邮件,而已经存在的重复邮件也不能证明是 VPN 造成的。如果你确实看到重复副本,把它作为独立发现记录下来,并与服务商一起核对服务器端的邮箱。这样你才能知道:副本是只存在一份却显示两次,还是确实存在两份。
无论如何,删除本地邮件、重建所有邮箱或移除账户,都是对一个进度计数器过度激烈的第一反应。这些操作会破坏你诊断原始问题所需要的状态,而且在存有「别处不存在」的邮件的机器上很难撤销。
在移除账户之前先做判断
如果一份已获批准的恢复流程确实要求移除并重新添加账户,请保留两样无法再取回的东西:未发送的工作,以及只存在于这台机器上的邮件。把必须提交的内容在网络变更安排之前完成,而不是之后,然后通过 VPN 归属方的常规控制断开连接。
最后,记住活动显示到底是什么。它只是应用对 Mail 自身工作的观察,并不能证明 VPN 无法停止,也不能证明隧道就是原因。判断的顺序是:读状态、对照那张表分类、用预期路径测试一次操作,然后才去动账户。