我刚刚发现(不确定)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/