Python & Outlook COM:获取元素时出错



因此,我正在尝试实现一个简单的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)

最新更新