windows - Windows 上的 imapclient 错误

标签 windows python-2.7 ssl imapclient

我遇到问题的环境:Windows10 上的 Python 2.7.11(已修补到最新)。通过 msi 安装 Python。我检查了设置中的 PATH 设置,它设置为 c:\Python27。

这适用于 Mac:

from imapclient import IMAPClient

IMAPClient("imap-mail.outlook.com", use_uid=True, ssl=(True))

但是在 Windows 上,如果 barfs 是这样的:

Traceback (most recent call last):
  File "test_outlook_imap.py", line 3, in <module>
    IMAPClient("imap-mail.outlook.com", use_uid=True, ssl=(True))
  File "C:\Python27\lib\site-packages\imapclient\imapclient.py", line 152, in     __init__
    self._imap = self._create_IMAP4()
  File "C:\Python27\lib\site-packages\imapclient\imapclient.py", line 164, in _create_IMAP4
    self._timeout)
  File "C:\Python27\lib\site-packages\imapclient\tls.py", line 153, in __init__
    imaplib.IMAP4.__init__(self, host, port)
  File "C:\Python27\lib\imaplib.py", line 173, in __init__
    self.open(host, port)
  File "C:\Python27\lib\site-packages\imapclient\tls.py", line 159, in open
    self.sock = wrap_socket(sock, self.ssl_context, host)
  File "C:\Python27\lib\site-packages\imapclient\tls.py", line 126, in wrap_socket
    ssl_context = create_default_context()
  File "C:\Python27\lib\site-packages\imapclient\tls.py", line 109, in     create_default_context
    context.load_verify_locations(cadata=certs)
  File "C:\Python27\lib\site-packages\backports\ssl\core.py", line 654, in     load_verify_locations
    self._ctx.load_verify_locations(cafile, capath)
  File "C:\Python27\lib\site-packages\OpenSSL\SSL.py", line 528, in load_verify_locations
    _raise_current_error()
  File "C:\Python27\lib\site-packages\OpenSSL\_util.py", line 48, in     exception_from_error_queue
    raise exception_type(errors)
OpenSSL.SSL.Error: []

这与 Window 对证书链的处理有关吗?

顺便说一句,它在 Outlook 域的位置对 imap.gmail.com 执行相同的操作。

最佳答案

这不是最终答案,但我发现的解决方法是卸载 imapclient 并安装旧版本。版本 0.13(和 0.11)对我有用,但是在升级到 1.0.1 后,我收到了与您发布的相同的错误消息。

要使用 pip 卸载 imapclient,请运行:

pip 卸载imapclient

要使用 pip 安装旧的 0.13 版本,请运行:

pip install imapclient==0.13

要验证 imapclient 的版本,从交互式 shell 运行:

>>> 导入imapclient >>> imapclient.__version__

关于windows - Windows 上的 imapclient 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34714342/

相关文章:

python - 为什么 "counting sort"不是更广泛使用的算法?

ios - 苹果分发证书导致 14094410 :SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

ssl - 我如何在 ubuntu 的 nagios 核心中配置 ssl experation 监控

c - 即使使用 RPC_C_AUTHN_NONE,Windows RPC 访问也被拒绝

SQLite3.exe shell 没有成功创建数据库?

c# - 如何检索可执行文件的相对路径

python - pandas.tslib.Timestamp 日期匹配

c - Malloc 中不同操作系统的结果不同

python - 连接 pandas 数据框中的两列

python - 尝试使用 websocket-client 建立 https 连接时出现 SSL 错误