我在我的应用程序中使用了OpenPop.net。这个应用程序的作用是从一个pop3帐户下载邮件,保存所有附件(CSV文件)并对其进行处理。这个过程需要很长时间。我得到了一个我不能弄清楚的异常:
Exception message: OpenPop.Pop3.Exceptions.PopServerException: The stream used to retrieve responses from was closed
at OpenPop.Pop3.Pop3Client.IsOkResponse(String response)
at OpenPop.Pop3.Pop3Client.SendCommand(String command)
at OpenPop.Pop3.Pop3Client.DeleteMessage(Int32 messageNumber)在处理CSV结束时,邮件将从pop3帐户中删除。我相信这就是这个例外发生的地方。
发布于 2011-01-15 18:10:38
你在这里真的有两个问题。其一是您在连接到POP3服务器时进行了大量处理。当您空闲时间过长时,服务器会简单地断开您的连接以节省资源。你应该做的是获取一封电子邮件,处理附件,然后重新连接以获取下一封邮件。您还可以获取所有附件,然后脱机处理它们。
其次,我猜你正在连接一个gmail帐户。Gmail有一些奇怪的特征。A thread试图找到这些特征。其中之一是,当您获取了一封电子邮件后,该邮件在与服务器的下一次POP3会话中将不可用。您可以使用special username进行连接,在该your中,您可以在普通用户名前面附加recent:。这将显示您在过去30天内收到的电子邮件,尽管之前曾显示过POP3会话。
希望能有所帮助。
发布于 2011-01-10 22:16:52
听起来好像有什么东西正在尝试读取一个已经关闭的流。您是否正在处理流,或者这是否完全在API内部完成?如果您正在处理它们,则有可能关闭了流(如果有人使用StreamReader,则通常会发生这种情况,大多数人没有意识到关闭StreamReader也会关闭底层流)。
https://stackoverflow.com/questions/4647629
复制相似问题