可能出现遗漏的原因是邮件在遍历过程中被移动了位置,导致遍历时无法正常处理。因此,建议在移动邮件时,先将要移动的邮件保存到一个列表中,然后遍历该列表进行移动。
示例代码:
import win32com.client
# 定义需要遍历的文件夹路径和需要移动到的目标文件夹路径
folder_path = r'Inbox'
target_folder_path = r'Processed'
outlook = win32com.client.Dispatch('Outlook.Application')
namespace = outlook.GetNamespace('MAPI')
inbox_folder = namespace.GetDefaultFolder(6)
target_folder = inbox_folder.Folders(target_folder_path)
# 定义一个用于保存要移动的邮件列表
to_move_list = []
# 遍历文件夹,将需要移动的邮件添加到列表中
for item in inbox_folder.Folders(folder_path).Items:
if item.Class == 43: # 判断是否为邮件
if 'example' in item.Subject: # 判断邮件主题是否包含指定关键词
to_move_list.append(item)
# 遍历要移动的邮件列表,逐个移动到目标文件夹中
for item in to_move_list:
item.Move(target_folder)
在上述示例代码中,定义了一个名为to_move_list
的列表,用于保存需要移动的邮件。在遍历文件夹时,若邮件符合条件(如包含指定关键词),则将其添加到该列表中。最后遍历该列表,逐个将邮件移动到目标文件夹中,从而避免了遗漏的情况发生。
上一篇:遍历Outlook未读邮件的宏
下一篇:遍历Outlook邮件