Python - 如何通过代理通过POP或IMAP获取电子邮件?
poplib或imaplib似乎都不提供代理支持,尽管我尝试了google-fu,但无法找到关于它的更多信息。Python - 如何通过代理通过POP或IMAP获取电子邮件?
我使用python从各种支持imap/pop的服务器获取电子邮件,并且需要能够通过代理来完成。
理想情况下,我希望能够直接在python中完成,但使用包装(外部程序/脚本,基于OSX)强制所有流量通过代理可能就足够了,如果我找不到更好的东西。
任何人都可以帮我一把吗?我无法想象我是唯一一个需要通过python代理获取电子邮件的人...
**编辑标题编辑删除HTTP,因为我不应该输入这么快,当我累了,对不起那家伙**
我打算使用的代理服务器允许袜子除了http。
流行或Imap通过http工作没有多大意义(有状态vs无状态),但我的理解是,袜子可以让我做我想做的事。
到目前为止,实现我想要的唯一方法似乎是imaplib的肮脏的黑客攻击......如果可以的话,宁可避免它。
如果我正确理解你的话,你正在试图把一个方形的钉子放在一个圆形的洞里。
HTTP代理只知道如何“说话”HTTP,因此无法直接连接到POP或IMAP服务器。
如果你想要做到这一点,你需要在某个地方实现你自己的服务器来与邮件服务器交谈。它会收到HTTP请求,然后对邮件服务器进行相应的调用。例如: -
如何实践,这将是我不知道,因为你必须有状态的协议转换成stateless之一。
答包装成一个SSL套接字我自己的问题...... 有一个快速和肮脏的方式来强制TRAFIC从python脚本使用Socksipy去通过代理毫不费力(感谢MattH指着我这样)
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS4,proxy_ip,port,True)
socket.socket = socks.socksocket
这全球插座覆盖显然有点残酷,但是直到我找到时间来正确子IMAP4和IMAP4_SSL可以作为一个快速解决。
+1它也适用于SMTP_SSL:D – alexandrul 2012-01-23 11:30:02
没有为我工作,我得到了“IOError:[Errno套接字错误]('超时'),任何建议? – ImadOS 2014-11-26 17:00:29
我很好奇:你如何通过一个http代理隧道即使没有python imap? – hop 2010-08-02 10:20:15
从标题中删除了http,我的错误,意味着袜子... – Vermillon 2010-08-02 10:47:49