尝试发送电子邮件时出现 ssl.SSLError: [X509V3: INVALID_CERTIFICATE]

问题描述 投票:0回答:1

我运行 Windows 10 和 python 3.11。当我运行一个非常标准的电子邮件发送脚本时,我收到 SSL 错误 ssl.SSLError:[X509V3:INVALID_CERTIFICATE]无效证书(_ssl.c:4035)

我可以从另一台计算机运行完全相同的代码,没有任何问题,我已经重新安装了 certifi

python -m pip install --upgrade --force-reinstall certifi

重启了好几次。我可以在同一台计算机上运行没有 SSL 的电子邮件连接代码。

我在网上能找到的唯一文章似乎与 MAC OS 上的 SSL 证书相关。

我应该在 MMC 中寻找一些东西吗?

Traceback (most recent call last):
  File "D:\Python\Projects\webscraping_tours\send_email.py", line 10, in <module>
    context = ssl.create_default_context()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Python 3.11.7\Lib\ssl.py", line 775, in create_default_context
    context.load_default_certs(purpose)
  File "D:\Python 3.11.7\Lib\ssl.py", line 596, in load_default_certs
    self._load_windows_store_certs(storename, purpose)
  File "D:\Python 3.11.7\Lib\ssl.py", line 588, in _load_windows_store_certs
    self.load_verify_locations(cadata=certs)
ssl.SSLError: [X509V3: INVALID_CERTIFICATE] invalid certificate (_ssl.c:4035)
python-3.x ssl-certificate smtplib
1个回答
0
投票

我在这里找到了解决方案: https://github.com/python/cpython/issues/108721

在 certmgr.msc > 中间证书颁发机构>(文件名)“TPS 自签名 OAUTH 签名证书(PC 名称)”中。我有该文件的 4 个副本,其中一些具有较旧的 PC 名称。显然,当电脑重命名时,它们会重复。这很可能就是腐败的根源。我删除了 4 个文件的 3 个副本并重新启动。直到我删除了最旧的 3 个副本后它才起作用。

© www.soinside.com 2019 - 2024. All rights reserved.