gpt4 book ai didi

python - 尝试连接到 imap 时获取 "sslv3 alert handshake failure"

转载 作者:行者123 更新时间:2023-12-01 23:05:25 25 4
gpt4 key购买 nike

我需要为 imap 备份做一个脚本,但是当我试图用我的脚本连接到 imap 服务器时,我得到了那个错误:

  File "c:\Users\Lenovo\Desktop\python\progettoscuola.py", line 5, in <module>  
imapSrc = imaplib.IMAP4_SSL('mail.safemail.it')
File "C:\Program Files\Python310\lib\imaplib.py", line 1323, in __init__
IMAP4.__init__(self, host, port, timeout)
File "C:\Program Files\Python310\lib\imaplib.py", line 202, in __init__
self.open(host, port, timeout)
File "C:\Program Files\Python310\lib\imaplib.py", line 1336, in open
IMAP4.open(self, host, port, timeout)
File "C:\Program Files\Python310\lib\imaplib.py", line 312, in open
self.sock = self._create_socket(timeout)
File "C:\Program Files\Python310\lib\imaplib.py", line 1327, in _create_socket
return self.ssl_context.wrap_socket(sock,
File "C:\Program Files\Python310\lib\ssl.py", line 512, in wrap_socket
return self.sslsocket_class._create(
File "C:\Program Files\Python310\lib\ssl.py", line 1070, in _create
self.do_handshake()
File "C:\Program Files\Python310\lib\ssl.py", line 1341, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:997)```

最佳答案

Python 3.10 increased the default security settings of the TLS stack除其他事项外,禁止任何仍然使用 RSA key 交换的密码。 RSA key 交换长期以来被认为是次等的,因为它不提供前向保密性,因此在 TLS 1.3 中也不再可用。所以总的来说,Python 3.10 的变化可以被认为是一种改进。

但是,一些服务器仍然需要这种过时的 key 交换,而 mail.safemail.it 似乎也在其中。使用新强化的 TLS 设置连接到此类服务器现在将失败,即使它使用旧版本的 Python 成功也是如此。

要再次建立连接,必须使用较弱的安全设置。对于这个特定的服务器,可以通过回退到 OpenSSL 使用的默认密码来完成。以下代码将创建一个新的 SSL 上下文并将其用于连接到主机。这里的重要部分是使用 ctx.set_ciphers('DEFAULT') 使用较弱的设置。

import imaplib
import ssl
ctx = ssl.create_default_context()
ctx.set_ciphers('DEFAULT')
imapSrc = imaplib.IMAP4_SSL('mail.safemail.it', ssl_context = ctx)

关于python - 尝试连接到 imap 时获取 "sslv3 alert handshake failure",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71006708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com