如何使用python win32com访问除默认文件夹(如“收件箱”,“已发送”)以外的Outlook文件夹?

sol*_*ldy 1 python outlook win32com

这就是我访问收件箱的方式:

   outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
   inbox = outlook.GetDefaultFolder("6")
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下代码访问Outlook中用户创建的文件夹时:

   outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
   Folder = outlook.Folders[1]
   print (Folder)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

  raise IndexError("list index out of range")

IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

Ben*_*n.T 5

在全球范围内,您可以执行以下操作:

from win32com.client import Dispatch
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
root_folder = outlook.Folders.Item(1)
Run Code Online (Sandbox Code Playgroud)

然后您可以通过以下方式检查此文件夹的名称

print (root_folder.Name)
Run Code Online (Sandbox Code Playgroud)

并且要知道子文件夹的名称:

for folder in root_folder.Folders:
    print (folder.Name)
Run Code Online (Sandbox Code Playgroud)

最后,假设您要访问中命名的子文件夹folder_of_soldy,您root_folder可以执行以下操作:

soldy_folder = root_folder.Folders['folder_of_soldy']
Run Code Online (Sandbox Code Playgroud)

依此类推,如果您还有其他子文件夹folder_of_soldy

希望您找到需要的东西