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

使用aiosmtplib发送Yandex邮件遇SSL证书验证失败问题求助

解决Yandex SMTP SSL证书验证失败问题

基于aiogram开发的机器人调用Yandex SMTP发送邮件时,出现SSL: CERTIFICATE_VERIFY_FAILED错误,错误信息显示无法获取本地颁发者证书。以下是具体解决方案:

可能的原因与解决步骤

1. 检查Yandex邮箱的SMTP权限与认证方式

  • 确保你的Yandex邮箱已开启POP3/SMTP服务:登录Yandex邮箱,进入「设置」→「邮件客户端」,开启POP3和SMTP服务。
  • 若开启了两步验证,必须使用应用密码而非邮箱原密码:在Yandex账户设置的「安全」→「应用密码」中生成专用密码,替换代码中的YAMAIL_PASSWORD。

2. 修复Python环境的根证书(macOS专属)

macOS下的Python环境可能默认缺少根证书,导致无法验证Yandex的SSL证书。执行以下步骤:

  • 找到你的Python安装路径(比如用户的Python 3.12路径为/Applications/Python 3.12)。
  • 运行该路径下的证书安装脚本:
    /Applications/Python 3.12/Install Certificates.command
    
    该脚本会自动安装必要的根证书,解决验证问题。

3. 手动指定SSL上下文(备用方案)

如果上述方法无效,可以通过以下两种方式调整SSL配置:

方法A:使用系统默认根证书

import ssl
async def send_mail(to: str, text: str):
    load_dotenv()
    login = os.getenv('YAMAIL_LOGIN')
    password = os.getenv('YAMAIL_PASSWORD')

    email = MIMEText(text, 'plain', 'utf-8')
    email['Subject'] = Header('Поступил запрос на обратную связь!', 'utf-8')
    email['From'] = login
    email['To'] = to

    # 创建SSL上下文,加载系统默认根证书
    ssl_context = ssl.create_default_context()
    con = aiosmtplib.SMTP(hostname='smtp.yandex.ru', port=465, timeout=10, ssl_context=ssl_context)
    await con.connect()
    await con.login(login, password)
    await con.sendmail(email['From'], to, email.as_string())
    await con.quit()

方法B:临时禁用证书验证(仅测试用,不推荐生产环境)

async def send_mail(to: str, text: str):
    load_dotenv()
    login = os.getenv('YAMAIL_LOGIN')
    password = os.getenv('YAMAIL_PASSWORD')

    email = MIMEText(text, 'plain', 'utf-8')
    email['Subject'] = Header('Поступил запрос на обратную связь!', 'utf-8')
    email['From'] = login
    email['To'] = to

    # 禁用证书验证,仅用于测试场景
    con = aiosmtplib.SMTP(hostname='smtp.yandex.ru', port=465, timeout=10, use_tls=True, validate_certs=False)
    await con.connect()
    await con.login(login, password)
    await con.sendmail(email['From'], to, email.as_string())
    await con.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:03:12