如何使用Python win32com访问Outlook中除默认文件夹(如收件箱、已发送)以外的文件夹?

11
我是如何访问收件箱的:
   outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
   inbox = outlook.GetDefaultFolder("6")

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

   outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
   Folder = outlook.Folders[1]
   print (Folder)

我收到了这个错误信息:
  raise IndexError("list index out of range")

IndexError: list index out of range

任何帮助都将不胜感激。

1个回答

25

全球范围内,您可以做到:

from win32com.client import Dispatch
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
root_folder = outlook.Folders.Item(1)

那么你可以通过以下方式检查此文件夹的名称:

print (root_folder.Name)

要知道你拥有的子文件夹的名称:

for folder in root_folder.Folders:
    print (folder.Name)

最后,假设你想要访问名为root_folder下的子文件夹folder_of_soldy,你可以这样做:

Finally, let's say you want to access a subfolder named folder_of_soldy in your root_folder, you do:

soldy_folder = root_folder.Folders['folder_of_soldy']

如果您在folder_of_soldy中有其他子文件夹,同样适用这些步骤。

希望您能找到所需内容。


1
非常感谢您,Ben. T。我已经尝试了将近一周才弄对它。真的非常感激 :) - soldy
1
谢谢Ben.T,你的代码也帮了我很多。 - shajahan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接