我正在处理IMAP客户端的实现(更确切地说,是使用JavaMail),该客户端使用IMAP idle()命令直接从服务器获取新的电子邮件通知,而不必进行轮询。

这是我的问题:在发送此空闲命令(即再次发送IMAP idle(),仅询问消息数)之后,我是否应该做其他事情以保持连接有效?

换句话说,即使我之前发送过idle()命令,该服务器也可以关闭当前的IMAP连接吗?

我在Stackoverflow和其他站点中发现了很多问题/一些代码,但我仍然不满意。希望那里有IMAP协议方面的专家。

谢谢!

最佳答案

服务器可能不会断开您的连接,但是永远不会依赖套接字的稳定性,由于多种不同的原因,连接可能会断开,并且您需要优雅地拦截该异常并尝试重新连接,可能是在超时之后。

例如,KMail认为连接是金字塔之后世界上最永久的东西,因此在挂起笔记本电脑并将其移动到其他地方之后,我必须重新启动它才能使其再次连接到IMAP服务器。

09-30 17:50
查看更多