IMAP IDLE 是 IMAP 协议的一项扩展,能够在无需不断轮询的情况下实现实时邮件通知。启用后,邮件客户端会与服务器保持持久连接,并在新邮件到达时立即接收推送通知。这消除了手动刷新或按固定间隔轮询的需求,在确保即时感知邮件到达的同时,降低了服务器负载和电池消耗。
IMAP IDLE 将邮件系统从“拉取型”转变为“推送型”。如果没有 IDLE,邮件客户端必须定期(每 5-15 分钟)轮询服务器,这会产生不必要的网络流量和服务器负载。有了 IDLE,您可以像使用即时通讯应用一样即时收到邮件,从而提升响应速度和用户体验。对于移动设备,与频繁轮询相比,IDLE 显著降低了耗电量,是现代邮件应用不可或缺的功能。
当邮件客户端支持 IMAP IDLE 时,它会在选择邮箱后向邮件服务器发送 IDLE 命令。服务器保持连接开启,并在发生更改(新邮件、删除或标记更改)时立即通知客户端。客户端在执行其他操作前必须发送 DONE 命令以退出 IDLE 模式。大多数实现会每 29 分钟重新建立一次 IDLE 连接以防止超时,因为 RFC 2177 建议服务器允许至少 30 分钟的空闲时间。
常规轮询按固定间隔(如每 5 分钟)检查新邮件,无论是否有新消息。IMAP IDLE 维持持久连接,仅在发生更改时接收即时通知。这带来了更快的邮件送达和更低的资源占用。
大多数现代邮件服务器都支持 IMAP IDLE,包括 Gmail、Outlook、Yahoo 以及 Dovecot、Cyrus 等流行的自托管方案。您可以通过查看 CAPABILITY 响应中的 IDLE 字符来检查服务器功能。某些旧版或基础 IMAP 服务器可能不支持。
延迟可能是由于网络问题、NAT 超时导致 IDLE 会话断开、服务器端频率限制,或者邮件客户端在连接断开后未能正确重连造成的。移动网络尤其容易静默断开空闲连接。
标准的 IMAP IDLE 每次连接只能作用于一个文件夹。要监控多个文件夹,您需要多个并发连接。由于某些客户端和服务器会限制并发 IDLE 连接数,请优先监控最重要的文件夹。