我正在使用performFetchWithCompletionHandler从IMAP服务器上获取背景信息。 我在方法实现上做的第一件事是检查网络可达性,如果没有可用则丢弃操作。 然后我开始刷新进程在IMAP会话上执行fetchMessagesOperationWithFolder。
作为此操作的结果,我通常不会收到错误,但有时我会收到MCOErrorParse(无法解析来自服务器的响应),MCOErrorConnection(无法建立到服务器的稳定连接)或MCOErrorAuthentication(无法通过当前会议的凭据)。
是否会因连接失败而产生所有这些错误?
我想处理MCOErrorAuthentication以通知用户凭据错误,但在这种情况下凭据是可以的,因此当我再次使用网络可访问性在前台执行任何操作时,它将成功。
在继续处理这些错误之前,我是否应该进行额外的网络连接检查?我应该在每次操作中创建一个新的IMAP会话吗?
谢谢!
修改
我正在添加ConnectionLog,重复错误需要很长时间。很清楚为什么我收到MCOErrorAuthentation:我没有很好地加载密码。
2014-12-18 21:00:41.212 * OK Gimap ready for requests from 85.58.177.133 et58mb78762219web
2014-12-18 21:00:41.222 1 CAPABILITY
2014-12-18 21:00:41.302 * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
1 OK Thats all she wrote! et58mb78762219web
2014-12-18 21:00:41.304 2 LOGIN “polferresamon@gmail.com" ""
2014-12-18 21:00:41.378 2 NO Empty username or password. et58mb78762219web
2014-12-18 21:00:41.380 Error fetching messages: Unable to authenticate with the current session's credentials.
因此,要真正解决MCOErrorAuthentication,我必须检查IMAP会话初始化,以及从后台返回时我正在加载电子邮件和密码的过程。
我猜解析和连接错误是由连接问题引起的。
感谢您的帮助。