我快疯了。我尝试了一种解决方案来通过代理:
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
最佳答案
我知道已经晚了,但我只想为不知道的人发布答案。
用这些行替换函数 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')
关于python - 通过带有代理身份验证的 imaplib 访问 gmail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34766372/