You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python的smtplib发送邮件时出现TimeoutError问题求助

解决SMTP连接超时(WinError 10060)问题

针对你遇到的连接超时错误,以下是几个关键修复方案:

1. 补充SMTP端口参数

Gmail的SMTP服务必须指定端口,默认TLS端口为587,SSL端口为465。你的代码未指定端口,导致连接失败。修改后的代码示例:

import smtplib

my_email = "someemail@gmail.com"
password = "krwznillogwscftw"

# 使用TLS端口587
connection = smtplib.SMTP("smtp.gmail.com", 587)
connection.starttls()
connection.login(user=my_email, password=password)
# 规范邮件格式(必须包含主题等头信息)
msg = """Subject: 测试邮件

Hello
"""
connection.sendmail(from_addr=my_email, to_addrs="anotheremail@gmail.com", msg=msg)
connection.close()

如果想用SSL加密连接,可改用SMTP_SSL:

import smtplib
from smtplib import SMTP_SSL

connection = SMTP_SSL("smtp.gmail.com", 465)
# 无需再调用starttls()
connection.login(my_email, password)
# 发送邮件逻辑同上

2. 排查网络与防火墙限制

  • 检查本地防火墙、杀毒软件是否拦截了Python的网络请求,可临时关闭后测试
  • 验证网络能否访问Gmail的SMTP服务器,用命令行测试:
    telnet smtp.gmail.com 587
    
    若无法连通,可能是运营商屏蔽端口,尝试切换网络(如手机热点)

3. 确认Gmail应用密码有效性

你使用的应用密码需满足:

  • 账号已开启两步验证
  • 应用密码是针对邮件客户端生成的有效密码
  • 若未开启两步验证,需开启"低安全性应用访问"(不推荐,优先用应用密码)

4. 规范邮件格式

sendmail的msg参数必须符合邮件标准格式,缺少主题、发件人等头信息可能导致发送失败,务必补充相关内容。

内容的提问来源于stack exchange,提问作者abdo1rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 04:57:10