質問

アプリケーションで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つは、POP3サーバーに接続している間に多くの処理を行っていることです。アイドルが長すぎると、サーバーは単にリソースを保存するために切断します。あなたがすべきことは、1つの電子メールを取得し、添付ファイルを処理してから再接続して次のメールを取得することです。また、すべての添付ファイルを取得してから、オフラインで処理することもできます。

第二に、Gmailアカウントに接続していると思います。 Gmailには奇妙な特性があります。 スレッド これらの特性を見つけようとします。そのうちの1つは、メールを送信した場合、サーバーとの次のPOP3セッションでは利用できないということです。を使用して接続できます 特別なユーザー名, 、あなたが追加する場所 recent: 通常のユーザー名の前。これにより、以前のPOP3セッションに表示されたにもかかわらず、過去30日間に受け取ったメールが表示されます。

それが役に立てば幸い。

他のヒント

すでに閉じられているストリームを読み込もうとしているように聞こえます。ストリームをまったく処理していますか、それともAPIの完全に内部に行われていますか?あなたがそれらをまったく処理している場合、あなたがストリームを閉じるチャンスがあります(これは誰かが使用する場合にしばしば起こります StreamReader, 、ほとんどの人は、それを閉じることに気付いていません StreamReader 基礎となるストリームも閉じます)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top