Я создаю программу захвата почты python. У меня проблема с конкретным почтовым ящиком. Вот аргументы, которые работают с использованием PHP imap_open:
'hostname' => "{XXX.XX.X.XX:143/imap/tls/novalidate-cert}",
'login' => "XXXXX",
'password' => "XXXXX",
Я пытаюсь сделать следующее с python, но у меня возникает следующая ошибка:
Traceback (most recent call last):
File "scripts/MailCapture/check_folders.py", line 35, in <module>
conn.starttls()
File "/usr/lib/python3.7/imaplib.py", line 812, in starttls
server_hostname=self.host)
File "/usr/lib/python3.7/ssl.py", line 412, in wrap_socket
session=session
File "/usr/lib/python3.7/ssl.py", line 853, in _create
self.do_handshake()
File "/usr/lib/python3.7/ssl.py", line 1117, in do_handshake
self._sslobj.do_handshake()
OSError: [Errno 0] Error
hostname = 'XXX.XX.X.X'
port = 143
isSSL = False
login = 'XXXXX'
password = 'XXXXX'
tls = ssl.create_default_context()
try:
conn = IMAP4(hostname, port)
conn.starttls(ssl_context=tls)
except (gaierror, IMAP4_SSL.error) as e:
sys.exit('Error while connecting to ' + hostname + ' on port ' + str(port) + ' : ' + str(e))
try:
conn.login(login, password)
except (gaierror, IMAP4_SSL.error) as e:
sys.exit('Error while login to ' + hostname + ' on port ' + str(port) + ' : ' + str(e))
Я пытался без conn.starttls()
и у меня появляется следующая ошибка Error while login to XXX.XX.X.XX on port 143 : LOGIN command error: BAD [b'Command received in Invalid state.']
Любые идеи, может быть, это работает в PHP из-за novalidate-cert
, есть ли такая опция в Python?
Спасибо