Python使用SMTP发送Gmail邮件时遇TimeoutError[WinError10060]求助
Gmail SMTP发送邮件超时错误(WinError 10060)排查方案
问题描述
我是Python新手,编写了一段使用SMTP发送Gmail邮件的脚本,但运行时出现超时错误。已尝试生成新的Gmail应用密码、修改端口号,问题仍未解决,特此求助。
错误信息
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\socket.py", line 832, in create_connection sock.connect(sa) TimeoutError: [WinError 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
我的代码
import smtplib my_email = "myemail@gmail.com" password = "mypassword" with smtplib.SMTP("smtp.gmail.com") as connection: connection.starttls() connection.login(user=my_email, password=password) print("logged in") connection.sendmail(from_addr=my_email, to_addrs="myanotheremail@gmail.com", msg="Hello")
解决步骤
- 指定正确端口与协议:Gmail SMTP推荐两种配置,选其一即可:
- 用465端口配合SMTP_SSL:
import smtplib my_email = "myemail@gmail.com" password = "mypassword" with smtplib.SMTP_SSL("smtp.gmail.com", 465) as connection: connection.login(user=my_email, password=password) # 构造符合标准的邮件内容,必须包含头信息 msg = """From: {sender}
To: {receiver}
Subject: 测试邮件
Hello
""".format(sender=my_email, receiver="myanotheremail@gmail.com")
connection.sendmail(from_addr=my_email, to_addrs="myanotheremail@gmail.com", msg=msg)
2. 用587端口配合STARTTLS: ```python import smtplib my_email = "myemail@gmail.com" password = "mypassword" with smtplib.SMTP("smtp.gmail.com", 587) as connection: connection.starttls() connection.login(user=my_email, password=password) # 构造符合标准的邮件内容,必须包含头信息 msg = """From: {sender} To: {receiver} Subject: 测试邮件 Hello """.format(sender=my_email, receiver="myanotheremail@gmail.com") connection.sendmail(from_addr=my_email, to_addrs="myanotheremail@gmail.com", msg=msg)
- 排查网络拦截:WinError 10060多由网络问题导致,比如本地防火墙/杀毒软件拦截SMTP连接,或所在网络(公司/校园网)屏蔽了Gmail的SMTP端口。可暂时关闭防火墙测试,或切换手机热点尝试。
- 验证应用密码有效性:确保Google账号已开启2步验证,应用密码是针对"邮件"类应用生成的,复制时无多余空格。
- 完善邮件格式:原代码中
msg仅为"Hello",不符合SMTP邮件标准格式,缺少From、To、Subject等头信息,这会导致服务器拒绝接收,必须按标准格式构造邮件内容。
内容的提问来源于stack exchange,提问作者Umar Arshad
相关产品推荐
相关产品推荐

