OpenPop.Net Исключение - PullRequest
       22

OpenPop.Net Исключение

0 голосов
/ 10 января 2011

Я использую 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.Я считаю, что именно здесь происходит это исключение.

Ответы [ 2 ]

1 голос
/ 15 января 2011

У вас действительно есть две проблемы здесь. Один из них заключается в том, что вы выполняете большую обработку, будучи подключенным к серверу POP3. Когда вы простаиваете слишком долго, сервер просто отключит вас, чтобы сэкономить ресурсы. Что вам нужно сделать, это получить одно письмо, обработать вложения, а затем повторно подключиться, чтобы получить следующее. Вы также можете получить все вложения и затем обработать их в автономном режиме.

Во-вторых, я полагаю, вы подключаетесь к учетной записи Gmail. Gmail имеет некоторые странные характеристики. Поток пытается найти эти характеристики. Одним из них является то, что, когда вы получили письмо, оно не будет доступно в следующем сеансе POP3 с сервером. Вы можете подключиться, используя специальное имя пользователя , где вы добавляете recent: перед вашим обычным именем пользователя. Это покажет вам электронные письма, полученные за последние 30 дней, несмотря на то, что они были показаны на более раннем сеансе POP3.

Надеюсь, это поможет.

0 голосов
/ 10 января 2011

Звучит так, будто кто-то пытается прочитать поток, который уже был закрыт.Вы вообще обрабатываете потоки или это сделано полностью внутри API?Если вы обрабатываете их вообще, есть вероятность, что вы закрываете потоки (это часто случается, если кто-то использует StreamReader, большинство людей не осознают, что закрытие StreamReader также закрывает основной поток).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...