使用Python搜索整个Outlook电子邮箱以查找特定的电子邮件



我的目标是搜索整个Outlook电子邮件框,以便找到/提取具有特定主题的电子邮件。

我的代码如下:
import win32com.client
import os
import re
path = 'C:/working path'
os.chdir(path)
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
user = outlook.Application.Session.CurrentUser.AddressEntry.GetExchangeUser().PrimarySmtpAddress
inbox = outlook.Folders[user].Folders["Inbox"]

for i in inbox.Folders:
subfolders = i.Items
print(i.name)
for message in subfolders:
if message.subject.startswith('Report on X'):
print(message.subject)
title = str(message.subject)
message.SaveAs(os.getcwd() + '//' + title + '.msg')
else:
print('skipped')

我的问题是我的邮件在不同的文件夹级别。换句话说,我有文件夹,子文件夹,子文件夹,…等等。

使用上面的代码,我只能访问文件夹"收件箱"只有它的子文件夹。因此,如果我要搜索的电子邮件在子文件夹中,我找不到它。

有没有一种方法可以在不指定文件夹、子文件夹等名称的情况下搜索整个Outlook电子邮件框?

我建议您看一下. folders字段。现在你只能访问"收件箱"值,但我假设它可以访问所有其他文件夹。例如:

print(inbox = outlook.Folders[user].Folders)

如果这显示了一个包含所有文件夹的数组,那么你可以简单地遍历数组中的每个文件夹。

for i in outlook.Folders[user].Folders.Folders:
subfolders = i.Items
print(i.name)
for message in subfolders:
if message.subject.startswith('Report on X'):
print(message.subject)
title = str(message.subject)
message.SaveAs(os.getcwd() + '//' + title + '.msg')
else:
print('skipped')

相关内容

  • 没有找到相关文章

最新更新