我疯了。我尝试了一种解决方案来通过代理:
class SocksIMAP4(IMAP4_SSL):
def open(self, host, port):
self.host = host
self.port = port
self.sock = socksocket()
self.sock.set_proxy(PROXY_TYPE_SOCKS5, 'tmg-array.co.vectis.local', 8080, True, 'login',
'pass~')
self.sock.connect((host, port))
self.file = self.sock.makefile('rb')
然后
imap_server = SocksIMAP4('imap.gmail.com', 993)
但没有任何反应。过程似乎是永恒的。
它不会抛出错误,程序就像在连接阶段被冻结一样。
有什么建议吗?
编辑
我的导入是
import email
from imaplib import IMAP4_SSL, IMAP4_SSL_PORT, IMAP4, IMAP4_PORT
import re
import socks
import socket
from socks import socksocket, PROXY_TYPE_SOCKS4, PROXY_TYPE_SOCKS5, PROXY_TYPE_HTTP
import smtplib
答案 0 :(得分:1)
我知道已经晚了但我只想发一个不知道的答案。
用这些行替换函数open
的最后三行
self.sock = socket.create_connection((host, port), PROXY_TYPE_HTTP, "127.0.0.1", 8118)
self.sslobj = ssl.wrap_socket(self.sock, self.keyfile, self.certfile)
self.file = self.sslobj.makefile('rb')