6.3.13 IDLE 命令
参数 (Arguments): 无
响应 (Responses): 将请求延续数据;客户端发送延续数据 "DONE" 以结束命令
结果 (Result):
- OK - 客户端发送 "DONE" 后 IDLE 完成
- NO - 失败:服务器此时不允许 IDLE 命令
- BAD - 命令未知或参数无效
没有 IDLE 命令,客户端需要轮询服务器以获取所选邮箱的更改 (新邮件、删除和标志更改)。通常更希望服务器实时向客户端传输更新。这允许用户立即看到新邮件。IDLE 命令允许客户端告诉服务器它已准备好接受此类实时更新。
当客户端准备好接受未经请求的更新消息时,IDLE 命令从客户端发送到服务器。服务器使用延续 ("+") 响应请求对 IDLE 命令的响应。IDLE 命令保持活动状态,直到客户端响应延续,只要 IDLE 命令处于活动状态,服务器现在就可以随时发送无标记的 EXISTS、EXPUNGE、FETCH 和其他响应。
IDLE 命令通过从客户端接收 "DONE" 延续来终止。此时,服务器可以 (MAY) 发送任何剩余的排队无标记响应,然后必须 (MUST) 立即发送对 IDLE 命令的标记响应并准备处理其他命令。
服务器可以 (MAY) 将运行 IDLE 命令的客户端视为不活动,如果此类服务器具有不活动超时,它可以 (MAY) 在超时期限结束时隐式注销客户端。因此,建议使用 IDLE 的客户端至少每 29 分钟终止 IDLE 并重新发出它,以避免被注销。
示例:
C: A002 IDLE
S: + idling
...时间流逝;新邮件到达...
S: * 4 EXISTS
C: DONE
S: A002 OK IDLE terminated