Poplib, завернутый в PySocks, не может подключиться к office365 через порт 995 - PullRequest
0 голосов
/ 13 февраля 2020

Когда я пытаюсь подключиться к своей электронной почте с помощью poplib, завернутого в pysocks (для подключения через мой прокси), он зависает навсегда. Когда я делаю Ctrl + c, я получаю следующие выходные данные:

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"))

Действительно интересно, что не так. Раньше мне приходилось использовать прокси, все работало нормально, но теперь я вообще не могу подключиться.

Edit

Tcpdump показывает, что клиентский трафик c туннелируется через прокси, и я можно увидеть, что посылает клиенту привет.

любая помощь приветствуется

...