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

Windows下使用Python smtplib通过Gmail SMTP发信报SSL证书验证错误

这个报错是因为Python的SSL模块没有正确加载到Gmail SMTP服务器证书对应的根颁发机构证书,Windows环境下通常是默认SSL上下文没有正确关联可信证书库导致的。

可行解决方案

方案1(推荐,无安全风险)

显式指定SSL上下文加载certifi提供的可信证书包,修改代码如下:

import ssl
import smtplib
import certifi

# 显式传入certifi的证书路径创建上下文
context = ssl.create_default_context(cafile=certifi.where())
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls(context=context)

如果运行提示找不到certifi模块,先执行pip install certifi安装即可。

方案2(方案1无效时使用)

同步更新Windows系统的受信任根证书:

  • 按下Win+X选择「Windows终端(管理员)」或者「命令提示符(管理员)」
  • 执行命令:certutil -syncwithWU root
  • 等待命令执行完成后重启Python脚本再测试

方案3(仅临时测试使用,生产环境禁止使用)

如果只是临时调试,可以跳过SSL证书验证,修改代码如下:

import ssl
import smtplib

# 跳过证书验证,存在中间人攻击风险,仅可用于测试
context = ssl._create_unverified_context()
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls(context=context)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:06:07