使用python提取Outlook邮箱中每个文件夹的名称
Using python to extract the names of every folder in Outlook mailbox
我正在尝试获取我在 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
,我可以看到 return 由 print
编辑的所有文件夹,但如果尝试 return 列表每个文件夹(基本上将我在 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)
我正在尝试获取我在 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
,我可以看到 return 由 print
编辑的所有文件夹,但如果尝试 return 列表每个文件夹(基本上将我在 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)