我已将 Outlook 2013 中的 Outlook.com 帐户配置为 Exchange Active Sync (EAS) 帐户。
在一个您提到,与按计划同步的 Outlook Hotmail Connector 帐户不同,Outlook 2013 中 EAS 帐户的邮件几乎应立即到达(直接推送)。
确实有一段时间是这种情况,但当我打开 Outlook 较长时间时,我的 Outlook.com 帐户会停止与 Outlook 同步,我必须按“发送/接收”按钮才能获取新邮件或重新启动 Outlook
如何防止 Outlook 中断此同步并在电子邮件到达时继续直接从服务器收集电子邮件?
EAS 协议确实应该为您提供近乎即时的新电子邮件发送体验。
这是通过创建一个会话来实现的,该会话在特定时间间隔(也称为心跳)内保持与服务器的空闲连接。
不幸的是,在某些情况下这种心跳可能会停止。 幸运的是,恢复它也很容易。
心跳和超时
由于网络空闲连接超时(通常在防火墙上配置),此心跳以及与服务器的活动会话可能会提前关闭。 在这种情况下,会发生以下情况:
- Outlook 不知道这种断开连接,因为在新邮件到达或检测信号间隔到期之前,它不会期望服务器返回响应。
- 服务器认为客户端处于离线状态,不会尝试将这些电子邮件推送到客户端,直到客户端自行重新连接(Outlook 默认情况下每 59 分钟执行一次)。
Pushduration 注册表值
如果您处于 Direct Push 会话被防火墙提前终止的环境中,您可以通过修改“pushduration”将 Outlook 配置为创建具有较短检测信号间隔的会话核心价值。
钥匙:HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\EAS
值名称:pushduration
值类型:REG_DWORD
价值:<time in minutes>
此键名称的最佳值比防火墙上配置的会话超时短 1 分钟(这解释了默认值 59 分钟,因为 60 分钟是防火墙上常见的会话超时值,甚至更长的心跳间隔也不会)无论如何,没有多大意义)。
笔记:您可以联系您的网络管理员来找出该值,而不是通过如下所示的反复试验。
将“基数”设置为“十进制”以查看以分钟为单位的时间。
反复试验
一个好的试错方法是每次减少 5 分钟的值,直到您不再遇到任何断开连接的情况。 请务必在更改值后重新启动 Outlook。
另一种方法是将其设置为 29 分钟(因为 30 分钟是另一个常见的超时值),如果您没有遇到任何断开连接,则每次增加该值 5 分钟,直到您不再遇到任何断开连接。
警告! 不要设置得太低!
不建议将此值设置为低于 5 分钟或任何其他远低于防火墙超时的值,因为这不会提高 Outlook 性能。
事实上,这样做实际上会增加网络带宽消耗,缩短电池寿命,并且可能会因为在特定时间范围内发出过多请求而禁止您访问服务器。