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 回答