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()
しかし、プロキシ サーバーとの接続を閉じる方法がわかりません。そうする必要があるかどうかもわかりません。
誰かがこの質問で私を助けてくれますか、それが問題の場所であるかどうかを理解してください:)