0

アプリケーションで 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 アカウントから削除されます。これが、この例外が発生している場所だと思います。

4

2 に答える 2

1

あなたは本当にここで2つの問題を抱えています。1 つは、POP3 サーバーに接続しながら多くの処理を行っていることです。アイドル状態が長すぎると、サーバーは単に切断してリソースを節約します。すべきことは、1 つのメールを取得し、添付ファイルを処理してから、再接続して次のメールを取得することです。すべての添付ファイルを取得して、オフラインで処理することもできます。

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

それが役に立てば幸い。

于 2011-01-15T10:10:37.927 に答える
0

何かがすでに閉じられているストリームを読み込もうとしているようです。ストリームをまったく処理していますか、またはこれは完全に API の内部で行われていますか? それらを処理している場合は、ストリームを閉じている可能性があります (これは、誰かが を使用している場合によく発生します。ほとんどの人は、を閉じると基になるストリームも閉じStreamReaderられることに気づいていません)。StreamReader

于 2011-01-10T14:16:51.763 に答える