2

我刚刚发现(不确定)python 3 支持 starttls 连接但不支持 python 2.7

但是我当前的大 python 代码在 python 2.7 上运行,所以不能立即移动到 3。

那么,我可以使用 imap 和 starttls 安全性连接到 Microsoft Exchange 服务器吗?

需要更多细节?

4

1 回答 1

4

一段时间过去了,但我希望这对其他人有所帮助。您可以使用带有 Python 3 或 Python 2 的 imaplib 通过 TLS 连接到 Exchange。

Python 3 有 IMAP4.starttls() 方法,Python 2 没有。对于 Python 2,请改用 IMAP4_SSL 子类。以下片段来自通过 TLS 连接到 office365.com 的工作解决方案。

蟒蛇 3

from imaplib import IMAP4
. . .

    def _connect(self, host, username, password, use_tls=False):
        """Establishes an IMAP connection, optionally over TLS."""
        try:
            src = IMAP4(host)
            if use_tls:
                src.starttls()
            src.login(username, password)
        except . . .

蟒蛇2

from imaplib import IMAP4, IMAP4_SSL
. . .

    def _connect(self, host, username, password, use_tls=False):
        """Establishes the IMAP connection, optionally over TLS."""
        try:
            src = IMAP4_SSL(host) if use_tls else IMAP4(host)
            src.login(username, password)
        except . . .
于 2016-03-09T02:01:44.257 回答