使用SMTP和Gmail发送电子邮件时出错.证书验证失败:无法获取本地颁发者证书(_ssl.c:1108)



我使用Pythonsmtplib通过gmail发送电子邮件。然而,当我运行以下代码时:

import ssl
import smtplib
context = ssl.create_default_context()
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls(context=context)

我在线路server.starttls(context=context)上收到一个错误。我收到的错误如下:

ssl.SSLCertVerificationError: [SSL : CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)

我使用的是Windows系统。通过浏览各种论坛帖子,我尝试了一些不同的方法。然而,一切都没有奏效。我也试过

pip uninstall certifi
pip install certifi

论坛上常见的反应是运行Certificates.command或类似的东西。但是,我在Windows上找不到该文件。我正在运行python 3.8.2

  1. 将pip升级至最新版本:

    python -m pip install --upgrade pip
    
  2. 升级certifi包:

    pip install certifi --upgrade
    

我确实尝试过升级certifi,但升级pip是必要的先决条件。

最新更新