我刚刚发现(不确定)Python3支持starttls connect,但不支持Python2.7
但我当前的大python代码运行在python 2.7上,因此不能立即移到3。
那么,我可以用imap和starttls安全性连接到microsoft exchange服务器吗?
需要更多细节吗?

最佳答案

一段时间过去了,但我希望这能帮助其他人。您可以使用imaplib与Python 3或Python 2通过TLS连接到Exchange。
Python3有IMAP4.starttls()方法,而Python2没有。对于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 . . .

关于python - 使用python 2.7(而非3)中的starttls连接到IMAP Exchange,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28214673/

10-09 20:26