gpt4 book ai didi

python - 使用 Python 连接到 Exchange 邮箱

转载 作者:IT老高 更新时间:2023-10-28 20:29:26 36 4
gpt4 key购买 nike

我需要在 Python 脚本中连接到 Exchange 邮箱,而不使用本地计算机上的任何配置文件设置(包括使用 Outlook)。如果我使用 win32com 创建 MAPI.Session,我可以使用现有配置文件登录(使用 Logon() 方法),但我只想提供用户名和密码。

这可能吗?如果是这样,有人可以提供示例代码吗?如果它只使用标准库和 pywin32 包,我会更喜欢。遗憾的是,无法为 Exchange 服务器启用 IMAP 访问(然后使用 imaplib)。

如果有必要:所有脚本将做的就是连接到邮箱,并运行收件箱中的邮件,检索内容。如果我能首先获得连接,我可以处理为此编写代码!

澄清有关 Outlook:Outlook 将安装在本地计算机上,但它没有任何帐户设置(即所有适当的库都可用,但我需要独立于 Outlook 内部的任何设置进行操作)。

最佳答案

我知道这是一个旧线程,但是...

如果您使用的是 Exchange 2007 或更新版本,或者 Office365,请查看 Exchange Web 服务。它是一个非常全面的基于 SOAP 的 Exchange 界面,您几乎可以做任何 Outlook 能够做的事情,包括委托(delegate)或模拟对其他用户帐户的访问。

https://learn.microsoft.com/en-us/exchange/client-developer/web-service-reference/ews-reference-for-exchange

更新:我发布了 Python EWS client在支持自动发现、日历、收件箱、任务、联系人等的 PyPI 上:

from exchangelib import DELEGATE, Account, Credentials

credentials = Credentials(
username='MYWINDOMAIN\\myusername', # Or myusername@example.com for O365
password='topsecret'
)
a = Account(
primary_smtp_address='john@example.com',
credentials=credentials,
autodiscover=True,
access_type=DELEGATE
)
# Print first 100 inbox messages in reverse order
for item in a.inbox.all().only('subject').order_by('-datetime_received')[:100]:
print(item.subject)

关于python - 使用 Python 连接到 Exchange 邮箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/288546/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com