因此,我正在尝试实现一个简单的Python Outlook客户端检索器,以便稍后在Node.JS API中使用它。这是我的实际代码:
import win32com.client
import requests
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
folder = outlook.Folders[0]
i = folder.Count()
print(i)
但是我收到此错误:
File ".MAPI_scriptoutlook2013_retrieveInbox.py", line 6, in <module>
i = folder.Count()
File "C:UserszehavAppDataLocalProgramsPythonPython36-32libsite-packageswin32comclientdynamic.py", line 527, in __getattr__
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.Count
每次我尝试获取Outlook文件夹时都会出现此错误。我也在上一篇文章中尝试了代码:通过 MAPI 从 Outlook 使用 Python 阅读电子邮件
还有这个:清晰记录的电子邮件阅读功能与python win32com outlook
在所有这些情况下,我都遇到了类似的错误,其中COM对象似乎无法到达Outlook中的任何内容。
如果有人知道会发生什么... ?
尝试正确的文件夹索引:
文件夹 = 展望。收件箱文件夹[6]
其他文件夹:
3 已删除的项目
4 发件箱
5 已发送邮件
6 收件箱
9 日历
10 联系人
11 期刊
12 注释
13 任务
14 草稿
这个递归函数帮助我在 Python 中查看了文件夹名称。
import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
def see_folders(outlook_object, level=0, trail=''):
level += 1
for i in range(outlook_object.Folders.Count):
if trail == '':
trail = outlook_object.Folders[i].Name
elif i == 0:
trail = trail + '>' + outlook_object.Folders[i].Name # add name to trail
else:
trail = trail[:-len('>' + outlook_object.Folders[i-1].Name)] # remove name from previous iteration
trail = trail + '>' + outlook_object.Folders[i].Name
#print(trail)
print(' '*(level-1) + 'Level:' + str(level) + ' Number:' + str(level) + '.' + str(i + 1) + ' Subfolders:' + str(outlook_object.Folders[i].Folders.Count) + ' Path:' + trail)
if outlook_object.Folders[i].Folders.Count > 0:
see_folders(outlook_object.Folders[i], level, trail)
else:
pass
return
see_folders(outlook)