【发布时间】:2018-02-21 18:01:43
【问题描述】:
我有看不见的电子邮件的唯一键列表,我当前的逻辑是在一个会话/连接中处理它。但是,有时 server[rebex] 崩溃并发送错误 *
Rebex.Net.ImapException: 服务器已关闭连接。
在下方。
- client.GetMailMessage(unique_key); //从唯一键获取特定邮件的信息
在这里,它会标记特定电子邮件的状态,尽管它会产生错误。因此,下次如果我尝试获取未见电子邮件的信息,则此特定的唯一密钥电子邮件将被遗漏。
在这里,我探索了一些可能的方法
- 将该错误电子邮件标记为不可见。
- 再次为该特定电子邮件创建连接并从中获取信息。
- 将 IMAP 客户端设为单例,当它崩溃时,创建一个新的。
还有更优化的解决方案吗?谢谢
【问题讨论】:
-
(3) - 使用 Imap 对象作为单例 - 根本没有帮助。 IMAP 协议是基于会话的,一旦会话结束或失败,就无法恢复它。即使您重新连接 Imap 对象的同一实例,新会话也将独立于前一个会话。
-
没错,这就是我使用唯一键的原因,以便我可以在不同的会话中使用它。我会在会话到期时处理这种情况,但实际的会话超时是多少?