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

Python发送邮件遇SSL错误:WRONG_VERSION_NUMBER与CERTIFICATE_VERIFY_FAILED

SMTP发送邮件报错:WRONG_VERSION_NUMBER与CERTIFICATE_VERIFY_FAILED解决方法

错误原因分析

1. SMTP_SSL() 报 WRONG_VERSION_NUMBER

端口25是明文SMTP端口,并非SSL加密端口。SMTP_SSL要求连接建立时直接启动SSL加密通道,而端口25默认是明文通信,强制SSL握手会出现版本不匹配错误。

2. starttls() 报 CERTIFICATE_VERIFY_FAILED

邮件服务器的SSL证书不被本地Python环境信任,可能是服务器使用自签名证书、证书链不完整,导致SSL握手时验证失败。


解决方案

步骤1:修正SMTP端口配置

  • 使用SMTP_SSL()时,改用465端口(标准SMTP SSL端口)
  • 使用starttls()时,改用587端口(标准STARTTLS端口),25端口可能被服务器限制或不支持STARTTLS

步骤2:处理证书验证问题

方案A:导入服务器CA证书(安全推荐)

获取邮件服务器的根CA证书(如server_ca.pem),修改context配置:

context = ssl.create_default_context(cafile="/path/to/server_ca.pem")

方案B:临时关闭证书验证(仅测试环境使用,不安全)

测试场景下可临时禁用证书验证:

context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE

修改后的测试代码示例

示例1:SMTP_SSL(465端口)+ 自定义CA证书

import smtplib, ssl

smtp_server = "1.2.3.4"
smtp_port = 465  # 改用SMTP_SSL标准端口
smtp_password = "1234"
sender_address = "abcd@def.com"
receiver_address = "xyz@gmail.com"

message = """\
Subject: Hi there

This message is sent from Python."""

# 导入服务器CA证书
context = ssl.create_default_context(cafile="/path/to/server_ca.pem")
with smtplib.SMTP_SSL(smtp_server, smtp_port, context=context) as server:
    server.login(sender_address, smtp_password)
    server.sendmail(sender_address, receiver_address, message)

示例2:starttls(587端口)+ 临时关闭证书验证(测试用)

import smtplib, ssl

smtp_server = "1.2.3.4"
smtp_port = 587  # 改用STARTTLS标准端口
smtp_password = "1234"
sender_address = "abcd@def.com"
receiver_address = "xyz@gmail.com"

message = """\
Subject: Hi there

This message is sent from Python."""

# 临时禁用证书验证(仅测试)
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE

with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.ehlo()
    server.starttls(context=context)
    server.ehlo()
    server.login(sender_address, smtp_password)
    server.sendmail(sender_address, receiver_address, message)

内容的提问来源于stack exchange,提问作者Akram Hossain Rahat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 12:55:12