Python IMAP 代理
- IMAP设置代理
- IMAP socket error: EOF
IMAP设置代理
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63from imaplib import IMAP4 from imaplib import IMAP4_PORT from imaplib import IMAP4_SSL_PORT class SocksIMAP4(IMAP4): """ IMAP service trough SOCKS proxy. PySocks module required. """ PROXY_TYPES = {"socks4": PROXY_TYPE_SOCKS4, "socks5": PROXY_TYPE_SOCKS5, "http": PROXY_TYPE_HTTP} def __init__(self, host, port=IMAP4_PORT, proxy_addr=None, proxy_port=None, rdns=True, username=None, password=None, proxy_type="socks5"): self.proxy_addr = proxy_addr self.proxy_port = proxy_port self.rdns = rdns self.username = username self.password = password self.proxy_type = SocksIMAP4.PROXY_TYPES[proxy_type.lower()] IMAP4.__init__(self, host, port) def _create_socket(self): return create_connection((self.host, self.port), proxy_type=self.proxy_type, proxy_addr=self.proxy_addr, proxy_port=self.proxy_port, proxy_rdns=self.rdns, proxy_username=self.username, proxy_password=self.password) class SocksIMAP4SSL(SocksIMAP4): def __init__(self, host='', port=IMAP4_SSL_PORT, keyfile=None, certfile=None, ssl_context=None, proxy_addr=None, proxy_port=None, rdns=True, username=None, password=None, proxy_type="socks5"): if ssl_context is not None and keyfile is not None: raise ValueError("ssl_context and keyfile arguments are mutually " "exclusive") if ssl_context is not None and certfile is not None: raise ValueError("ssl_context and certfile arguments are mutually " "exclusive") self.keyfile = keyfile self.certfile = certfile if ssl_context is None: ssl_context = ssl._create_stdlib_context(certfile=certfile, keyfile=keyfile) self.ssl_context = ssl_context SocksIMAP4.__init__(self, host, port, proxy_addr=proxy_addr, proxy_port=proxy_port, rdns=rdns, username=username, password=password, proxy_type=proxy_type) def _create_socket(self): sock = SocksIMAP4._create_socket(self) server_hostname = self.host if ssl.HAS_SNI else None return self.ssl_context.wrap_socket(sock, server_hostname=server_hostname) def open(self, host='', port=IMAP4_PORT): SocksIMAP4.open(self, host, port)
使用得时候:
复制代码
1
2server = SocksIMAP4SSL(host=xxx, port=xxx,proxy_addr=xxx, proxy_port=xxx, proxy_type=xxx)
IMAP socket error: EOF
具体错误为:imaplib.abort: command: STATUS => socket error: EOF
解决方案是重新实例化类,再重新登录
最后
以上就是壮观招牌最近收集整理的关于Python IMAP 设置代理IMAP设置代理IMAP socket error: EOF的全部内容,更多相关Python内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复