Python SMTP 错误 10060

Mic*_*bes 6 python smtp

有人能给我一些关于为什么这两者的见解:

mailServer = smtplib.SMTP("smtp.gmail.com", 587)
Run Code Online (Sandbox Code Playgroud)

和这个:

mailServer = smtplib.SMTP('smtp.gmail.com:587')
Run Code Online (Sandbox Code Playgroud)

是这样说的:

Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
mailServer = smtplib.SMTP("smtp.gmail.com", 587)
File "C:\Users\user\Documents\Shuttlecock_new\python\lib\smtplib.py", line 242, in __init__
(code, msg) = self.connect(host, port)
File "C:\Users\user\Documents\Shuttlecock_new\python\lib\smtplib.py", line 302, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "C:\Users\user\Documents\Shuttlecock_new\python\lib\smtplib.py", line 277, in _get_socket
return socket.create_connection((port, host), timeout)
File "C:\Users\user\Documents\Shuttlecock_new\python\lib\socket.py", line 571, in create_connection
raise err
error: [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Run Code Online (Sandbox Code Playgroud)
  • 我在中国。
  • 我有一个 VPN。我在有和没有 VPN 的情况下都尝试过。
  • 我曾多次使用此代码从我的 g-mail 帐户发送电子邮件。今天突然,我得到了这个错误。
  • 如果通过我的 chrome 浏览器访问 Gmail,则工作正常。尽管如此,发送简单的电子邮件需要花费非常长的时间......嗯

pla*_*aes 8

尝试指定超时(需要 Python 2.6+):

smtplib.SMTP("smtp.gmail.com", 587, timeout=120)
Run Code Online (Sandbox Code Playgroud)

或尝试通过 SSL 而不是 TLS/STARTTLS 连接(有和没有timeout):

smtplib.SMTP_SSL("smtp.gmail.com", 465)
Run Code Online (Sandbox Code Playgroud)