使用python提取Outlook邮箱中每个文件夹的名称



我试图获得我在outlook电子邮件框中看到的所有文件夹名称的列表,通过使用以下代码:

import win32com.client
def AllFolders(folders):
my_list = []
for folder in folders:
AllFolders(folder.Folders)
print(folder.name)
my_list.append(folder.name)
return my_list
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
user = outlook.Application.Session.CurrentUser.AddressEntry.GetExchangeUser().PrimarySmtpAddress
z = AllFolders(outlook.Folders[user].Folders)

我的问题是:如果我删除return,我可以看到print返回的所有文件夹,但如果尝试返回每个文件夹的列表(基本上存储我在print中看到的列表),我得到z,这只是打印的第一个元素。

如何制作每个文件夹名称的列表?

您只需要将递归调用返回的列表连接到您的列表中。

我还将调用(和print()行)移动到my_list.append()行之后,只是为了将子文件夹添加到父文件夹之后。

import win32com.client
def AllFolders(folders):
my_list = []
for folder in folders:
print(folder.name)
my_list.append(folder.name)
my_list += AllFolders(folder.Folders)
return my_list
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
user = outlook.Application.Session.CurrentUser.AddressEntry.GetExchangeUser().PrimarySmtpAddress
z = AllFolders(outlook.Folders[user].Folders)

最新更新