我刚刚发现(不确定)python 3 支持 starttls 连接但不支持 python 2.7
但是我当前的大 python 代码在 python 2.7 上运行,所以不能立即移动到 3。
那么,我可以使用 imap 和 starttls 安全性连接到 Microsoft Exchange 服务器吗?
需要更多细节?
我刚刚发现(不确定)python 3 支持 starttls 连接但不支持 python 2.7
但是我当前的大 python 代码在 python 2.7 上运行,所以不能立即移动到 3。
那么,我可以使用 imap 和 starttls 安全性连接到 Microsoft Exchange 服务器吗?
需要更多细节?
一段时间过去了,但我希望这对其他人有所帮助。您可以使用带有 Python 3 或 Python 2 的 imaplib 通过 TLS 连接到 Exchange。
Python 3 有 IMAP4.starttls() 方法,Python 2 没有。对于 Python 2,请改用 IMAP4_SSL 子类。以下片段来自通过 TLS 连接到 office365.com 的工作解决方案。
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 . . .
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 . . .