python - 在exchangelib中访问 "Other Calendars"

标签 python office365 exchange-server exchangewebservices outlook.com

我目前正在使用 Exchangelib 连接到 Office365 EWS。我当前的情况是我想访问我们 session 室的日历。当我在 Outlook 中单击“添加房间”选项时,他们的日历就会显示。当我将它们添加到日历 View 的“其他日历”部分时,它们也会出现。

当我尝试使用 session 室的电子邮件地址作为帐户,然后检查日历时,出现以下错误:

exchangelib.errors.ErrorFolderNotFound: No useable default Calendar folders

所以我想我应该通过登录来访问日历;就像我正在查看 Outlook 中的“其他日历”部分一样。问题是我似乎不知道如何访问这些日历。我可以毫无问题地访问我自己的。

当我查看 EWS 的 C# 实现时,有一种搜索文件夹的方法,您可以在其中找到其他日历。我在 Exchangelib 中没有看到类似的东西。

举个例子:

credentials = Credentials(username='My email address', password='My password')
config = Configuration(credentials=credentials, server='outlook.office365.com', has_ssl=True)
email = # My e-mail address (I also attempted with the room's e-mail address)

account = Account(primary_smtp_address=email, credentials=credentials,
                  autodiscover=False, config=config)

for f in account.folders:
    print f

结果:

<class 'exchangelib.folders.Calendar'>
<class 'exchangelib.folders.Contacts'>
<class 'exchangelib.folders.Tasks'>
<class 'exchangelib.folders.Messages'>
<class 'exchangelib.folders.Folder'>

“日历”选项无法迭代,但“文件夹”选项可以。

for f in account.folders[Folder]:
    print f

结果:

Folder (Conversation Action Settings)
Folder (Conversation History)
Folder (Files)
Folder (Journal)
Folder (Notes)
Folder (Quick Step Settings)
Folder (RSS Feeds)
Folder (Social Activity Notifications)
Folder (Yammer Root)

这些选项似乎都无法满足我的需求。

任何帮助将不胜感激!

提前谢谢

编辑

我发现了 account.root.get_folders() 的魔力。我现在可以看到一个非常大的文件夹列表。但是,我仍然没有看到可用于其他日历的日历。

我一直在阅读其他人在 C# 中使用的解决方案,并遇到了这个线程:

EWS - Access All Shared Calendars

他们似乎有某种搜索过滤器,但我无法在 exchangelib 库中找到它。

然后我发现了另一个线程:

https://social.msdn.microsoft.com/Forums/en-US/2bfe798e-501f-421e-9a9a-76ae7eaf57c8/other-calendars-in-ews?forum=exchangesvrdevelopment

此人谈到了“其他日历”如何成为“日历”对象下的一个文件夹。但是,当我查询 account.calendar.get_folders() 时,我返回 0 个结果。

最佳答案

没有可用的默认日历文件夹错误意味着 Exchangelib 无法在帐户的文件夹中找到默认日历文件夹。造成这种情况的原因可能有很多。您仍然可以在 Account.folders 中找到日历文件夹。

关于python - 在exchangelib中访问 "Other Calendars",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42596672/

相关文章:

IMAP、POP、Exchange 的统计数据?

powershell - 获取联系人通讯组

python - 将 matplotlib 图表嵌入到 Qt/C++ 应用程序中

python - tkinter 选项卡中的滚动条无法正常工作。滚动条位于我的 gui 应用程序的底部,而不是覆盖整个选项卡

excel - 查找日期范围内季度中的天数

python - Azure AD : "scope" Property Missing from Access Token Response Body

vb.net - 如何在 VB.Net 中运行 Powershell 脚本

python - Django嵌套表单集动态添加表单

python - 如何在ubuntu中设置crontab的路径

java - 微软outlook认证oAuth2.0