questo è un estratto dello script
Codice: Seleziona tutto
import smtplib
. . .
smtpSERVER = "ilServerSMTP"
try:
s = smtplib.SMTP_SSL(smtpSERVER)
except smtplib.SMTPConnectError as e:
print("ERRORE durante la connessione: {}".format(e))
. . .
questo l'errore che ho potuto riprodurre una sola volta, aspettando un'eternità
Codice: Seleziona tutto
Traceback (most recent call last):
File "/dati/My_scripts/ProgettoCTU/INIZIO_operazioniCTU.py", line 373, in <module>
s = smtplib.SMTP_SSL(smtpSERVER)
File "/usr/lib/python3.5/smtplib.py", line 1021, in __init__
source_address)
File "/usr/lib/python3.5/smtplib.py", line 251, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python3.5/smtplib.py", line 335, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/usr/lib/python3.5/smtplib.py", line 1029, in _get_socket
server_hostname=self._host)
File "/usr/lib/python3.5/ssl.py", line 377, in wrap_socket
_context=self)
File "/usr/lib/python3.5/ssl.py", line 752, in __init__
self.do_handshake()
File "/usr/lib/python3.5/ssl.py", line 988, in do_handshake
self._sslobj.do_handshake()
File "/usr/lib/python3.5/ssl.py", line 633, in do_handshake
self._sslobj.do_handshake()
TimeoutError[/url]: [Errno 110] Connection timed out
Codice: Seleziona tutto
s = smtplib.SMTP_SSL(smtpSERVER, timeout=1)
Due domande:
1) Se è previsto che l'errore sollevi l'eccezione socket.timeout da dove esce quel TimeoutError che ho postato?
2) Se come dice la documentazione di TimeoutError e di socket.timeout entrambi sono sottoclassi di OSError dovrei potere catturare entrambe le eccezioni con
Codice: Seleziona tutto
except OSError as e:
Scusate la verbosità e grazie