使用 Python 和 exchangelib 连接到内部 SMTP 服务器的正确方法是什么

What is the correct way to connect to an internal SMTP server using Python and exchangelib

我正在尝试使用 Python 和 exchangelib 库连接到 Microsoft Exchange 网络服务器。 这是我的代码(包含已编辑的域、用户名、密码和 SMTP 服务器):

from exchangelib import DELEGATE, Configuration, Credentials, Account

credentials = Credentials('MyDomain\me@somewhere.co.uk', 'password')

config = Configuration(server='10.10.10.10', credentials=credentials)

account = Account('me@somewhere.co.uk', credentials=credentials, config=config, autodiscover=False, access_type=DELEGATE)

尝试启动帐户对象引发此错误:

Failed to create cached protocol with key ('https://10.10.10.10/EWS/Exchange.asmx', 

Credentials('MyDomain\me@somewhere.co.uk', '********')): HTTPSConnectionPool(host='10.10.10.10', port=443): Max retries exceeded with url: /EWS/Exchange.asmx (Caused by SSLError(SSLError("bad handshake: SysCallError(10054, 'WSAECONNRESET')")))
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\cached_property.py", line 69, in __get__
    return obj_dict[name]
KeyError: 'protocol'

导致此错误的原因是什么,我该如何解决? 谢谢。

exchangelib 无法使用 SMTP 协议。它使用 EWS(Exchange Web 服务)。

您可以向您的 Exchange 管理员询问 EWS 端点,或者使用自动发现自动获取它(如果已为您的域设置了自动发现)。