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

Python smtplib发送邮件失败,遇SSL证书验证错误求助

问题分析与解决

1. 代码中的语法错误

你的代码存在一处方法调用错误:message.as_string是EmailMessage类的方法,必须加括号调用才能生成邮件内容字符串,否则传递的是方法对象而非有效内容。修改这一行:

server.sendmail(sender_email, receiver_email, message.as_string())

2. SSL证书验证失败的解决

该错误在Mac系统的官方Python版本(从python.org下载的版本)中十分常见,核心原因是Python缺少系统根证书文件。可以通过以下两种方式解决:

方法一:安装根证书(推荐,安全)

找到你Python安装目录下的Install Certificates.command脚本,对应你使用的Python3.10,路径通常为:

/Applications/Python 3.10/Install Certificates.command

双击运行该脚本,或在终端执行以下命令:

/Applications/Python\ 3.10/Install\ Certificates.command

执行完成后重新运行邮件发送代码即可。

方法二:临时禁用证书验证(仅测试用,不安全)

如果只是临时测试需求,可以创建跳过证书验证的SSL上下文,替换原有的上下文代码:

# 替换原来的 context = ssl.create_default_context()
context = ssl._create_unverified_context()

注意:此方法会跳过SSL安全验证,存在数据泄露风险,严禁在生产环境使用。

额外注意事项(针对Gmail)

若完成以上步骤仍无法发送邮件,需检查Gmail账号设置:

  • 若开启了两步验证,必须使用应用专用密码登录,不能直接使用账号密码。
  • 若未开启两步验证,需在账号安全设置中开启不太安全的应用访问(Gmail默认关闭该选项)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:12:24