1

私はpythonpoplibを使用しています。

非アクティブな期間が経過すると、POP3接続はタイムアウトしますか?このタイムアウトを設定する方法はありますか?このようなタイムアウトにより、quit()が呼び出されたかのように、削除のフラグが設定された電子メールが削除されますか?

私が言及した唯一のタイムアウトは、接続試行タイムアウトを指します

class poplib.POP3(host[, port[, timeout]])

POP3.quit()呼び出しで、「タイムアウト」というメッセージが表示されたpoplib.error_proto例外がスローされ、接続が自動的にタイムアウトするかどうか疑問に思っています。

4

3 に答える 3

2

非アクティブな期間が経過すると、POP3接続はタイムアウトしますか?

これは主に、もう一方のサーバーソフトウェアに依存します。一部のソケットライブラリでは、ローカルタイムアウトを指定できる場合があります。接続は、ローカルタイムアウトとリモートタイムアウトの間の最短時間でタイムアウトします。

このタイムアウトを設定する方法はありますか?

サーバーソフトウェアの設定を制御しない限り(たとえば、独自のサーバーを実行している場合)、リモートタイムアウトを変更することはできません。

このようなタイムアウトにより、quit()が呼び出されたかのように、削除のフラグが設定された電子メールが削除されますか?

タイムアウトの動作は通常、手動でソケットを閉じるのと同じです(シャットダウンの有無にかかわらず)。quitコマンドを送信しない場合、メッセージはサーバーから削除されません。

于 2012-04-10T21:46:20.787 に答える
0

POP3は一種のトランザクションです。したがって、サーバーからメッセージをダウンロードして削除した場合、接続を正常に閉じるまでメッセージは有効になりません。POP3.quit ()メソッドには、それに関する洞察に満ちた説明があります。魔法の言葉はcommitです。

接続タイムアウトは通常サーバー設定であり、もちろん、サーバーが接続をタイムアウトすると、ロールバックと見なされます。

于 2012-04-10T21:50:43.600 に答える
-2

はい、POP3ソケットは最終的にタイムアウトします。ここを見ると、コンストラクターでタイムアウトを渡します。

http://docs.python.org/library/poplib.html

class poplib.POP3(host[, port[, timeout]])
于 2012-04-10T21:45:11.283 に答える