0

poplib と imaplib を使用してプロキシ サーバー経由で電子メールを収集するコードを書いています。

以下を使用してプロキシ接続をセットアップします:-

import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS4,proxy_ip,port,True)
socket.socket = socks.socksocket

私はstackoverflowの投稿から得たもの:-

http://stackoverflow.com/questions/3386724/python-how-can-i-fetch-emails-via-pop-or-imap-through-a-proxy

次に、メールサーバーに接続します:-

server = poplib.POP3(self.host, self.port)
server.user(self.username)
server.pass_(self.password)

単体テストでコードをテストしていますが、プロキシとの接続が適切に終了しないことに関連すると思われる問題に遭遇しました。

例は次のとおりです。

プロキシ接続をセットアップし、電子メール サーバーとの接続を確立しようとしています。単体テストの一環として、意図的に間違った電子メール サーバーのパスワードを使用しています。poplib ライブラリは、接続できないという例外をスローします。単体テストで例外をキャッチしてから、次の単体テストに進みます。poplib ライブラリが以前の接続を適切に閉じることを信頼します。

私の理解では、これは良いことではなく、電子メールとプロキシ サーバーの接続が適切に閉じられていることを確認する必要があります。

pop3接続を閉じる方法を知っています:-

server.quit()

しかし、プロキシ サーバーとの接続を閉じる方法がわかりません。そうする必要があるかどうかもわかりません。

誰かがこの質問で私を助けてくれますか、それが問題の場所であるかどうかを理解してください:)

4

1 に答える 1

0

特別な操作は必要ありません。POP 接続を閉じると、プロキシ接続は自動的に閉じます。これは、プロキシ経由で何かに接続している間のみ必要になるためです。

于 2012-04-18T05:15:25.143 に答える