我正在写一些代码,使用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()但是不知道如何关闭与代理服务器的连接,或者是否必须这样做。
如果这就是问题所在,有人能帮我解决这个问题或帮助我理解一下吗?)
发布于 2012-04-18 13:15:25
不需要特殊操作。当您关闭POP连接时,代理连接将自动关闭,因为只有当您通过代理连接到某物时才需要它。
https://stackoverflow.com/questions/10202851
复制相似问题