Poplib, завернутый в PySocks, не может подключиться к office365 через порт 995
Когда я пытаюсь подключиться к своей электронной почте с поплибом, завернутым в писоки (для подключения через мой прокси), он зависает навсегда. Когда я нажимаю ctrl + ci, получаю такой результат:
Traceback (most recent call last):
File "/XXXXXXXXXXXXXXXXX/pop3test.py", line 64, in <module>
pop3server = poplib.POP3_SSL(pop3server,"995") # open connection
File "/usr/lib64/python2.7/poplib.py", line 360, in __init__
self.sslobj = ssl.wrap_socket(self.sock, self.keyfile, self.certfile)
File "/usr/lib64/python2.7/ssl.py", line 931, in wrap_socket
ciphers=ciphers)
File "/usr/lib64/python2.7/ssl.py", line 599, in __init__
self.do_handshake()
File "/usr/lib64/python2.7/ssl.py", line 828, in do_handshake
self._sslobj.do_handshake()
KeyboardInterrupt
Как я обернул свой сценарий:
import socks
socks.setdefaultproxy(socks.PROXY_TYPE_HTTP, "<SOME HIDDEN IP>", <THE PORT>)
socks.wrapmodule(poplib)
и часть скрипта, которая подключается к электронной почте:
# I NEVER get past this point? :(
pop3server = poplib.POP3_SSL(pop3server,"995")
print (pop3server.getwelcome())
pop3server.user(username)
pop3server.pass_(password)
pop3info = pop3server.stat()
mailcount = pop3info[0]
print("Total no. of Email : " , mailcount)
print ("\n\nStart Reading Messages\n\n")
time.sleep(2)
parser = email.parser.FeedParser()
for msg in pop3server.retr(mailcount)[1]:
parser.feed(msg+'\n')
message = parser.close()
payload = message.get_payload(decode=True)
print "".join(payload.split("\n\r"))
Действительно интересно, что не так. Раньше мне приходилось использовать прокси, все работало нормально, но теперь я вообще не могу подключиться.
редактировать
Tcpdump показывает, что клиентский трафик туннелируется через прокси, и я вижу, что он передает клиенту привет.
любая помощь приветствуется