Python3 SMTP SSL Cert Renewal - SSL: CERTIFICATE_VERIFY_FAILED 无法获得本地颁发者证书(_ssl.c:1108)

问题描述

我发布此消息是因为我使用相同的错误代码解决了问题。它可能会帮助遇到类似问题的其他人。

我曾经运行 py 脚本来发送电子邮件。另一方面,邮件服务器证书更新了,突然我的脚本无法连接到服务器。

    bash # python3 email_send.py
    Traceback (most recent call last):
      File "emailsend.py",line 143,in <module>
        server.starttls(context=context)
       File "/usr/lib/python3.8/smtplib.py",line 774,in starttls
        self.sock = context.wrap_socket(self.sock,File "/usr/lib/python3.8/ssl.py",line 500,in wrap_socket
        return self.sslsocket_class._create(
      File "/usr/lib/python3.8/ssl.py",line 1040,in _create
        self.do_handshake()
      File "/usr/lib/python3.8/ssl.py",line 1309,in do_handshake
        self._sslobj.do_handshake()
    ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_Failed] certificate verify Failed: certificate has expired (_ssl.c:1108)

我通过添加最后两行解决了这个问题。

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)