Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python&;Outlook COM:获取元素时出错_Python_Email_Outlook_Com - Fatal编程技术网

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

Python&;Outlook COM:获取元素时出错,python,email,outlook,com,Python,Email,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) 但我得到了这个错误:

因此,我尝试实现一个简单的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_script\outlook2013_retrieveInbox.py", line 6, in <module>
i = folder.Count()
File "C:\Users\zehav\AppData\Local\Programs\Python\Python36-32\lib\site-packages\win32com\client\dynamic.py", line 527, in __getattr__
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.Count
文件“\MAPI\u script\outlook2013\u retrieveInbox.py”,中的第6行
i=folder.Count()
文件“C:\Users\zehav\AppData\Local\Programs\Python\Python36-32\lib\site packages\win32com\client\dynamic.py”,第527行,位于\uu getattr__
提高属性错误(“%s.%s%”(self.\u用户名,attr))
AttributeError:。计数
每次我尝试获取Outlook文件夹时都会出现此错误。我还在上一篇文章中尝试代码:

还有这个:

在所有这些情况下,我都遇到了一个类似的错误,即COM对象似乎无法在Outlook中访问任何内容


如果有人知道会发生什么

尝试使用正确的文件夹索引:

folder=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)

属性错误意味着
计数
属性不存在。我不知道是什么函数/属性让你知道文件夹的大小,但我想你可以做
len([I for I in folder.Items])
让你知道包含文件夹中项目的列表的长度,应该与该文件夹中的电子邮件数相同