0

我正在尝试在 Exchange 2010 中检索 DL 的电子邮件地址。我尝试了此 url 中的代码,但出现错误。

https://github.com/ecederstrand/exchangelib

# primary_smtp_address: what should be provided here?
# cred: do we need to provide admin users to retrieve data?

from exchangelib import DELEGATE, Account, Credentials, Configuration
cred = Credentials(username='domain\username',password='xxxx')
config = Configuration(server='exchangeserver.com', credentials=cred)
account = Account(primary_smtp_address='def@xyz.com', config=config, autodiscover=False, access_type=DELEGATE)
for mailbox in account.protocol.epxand_dl('abc@xyz.com'):
    print(mailbox.email_address)

而不是结果低于错误。

Traceback(最近一次通话最后):文件“E:\Sheik-Backup\Sheik-Backup\Workspace\FlaskProject\maillist.py”,第 11 行,在 a=Account(...) 文件“E:\Python Virtual- Env\Development\lib\site-packages\exchangelib\account.py",第 57 行, 如果 '@' 不在 primary_smtp_address中,则在init中:TypeError:'ellipsis' 类型的参数不可迭代

4

1 回答 1

0

Python省略号( ...) 有时用作冗长代码的占位符,这会降低示例的可读性。但它恰好也是有效的 Python 语法。

为了简洁起见,您可能在某处阅读了一个示例a = Account(...),但这不是您设置帐户的方式。您需要将...参数替换为您的帐户,如https://github.com/ecederstrand/exchangelib#setup-and-connecting中所述

最后,回答您的问题:您需要以任何有权在给定 DL 上调用 ExpandDL 服务的用户身份进行连接。这可能是普通用户或特殊系统帐户,具体取决于您对 Exchange 服务器的访问限制。primary_smtp_address是您要连接的帐户的电子邮件地址。

于 2019-05-09T05:35:43.760 回答