Win32com.Client 读取 Outlook 邮件、过滤邮件主题、保存附件并标记为已读

import win32com.client
import os
outlook = win32com.client.Dispatch(“Outlook.Application”).GetNamespace(“MAPI”)
#收件箱文件夹
inbox = outlook.Folders(“shenz-xinxi-rpa@shenz.picc.com.cn”).Folders(“收件箱”)
#比如:sendbox = outlook.Folders(“test@163.com”).Folders(“已发送邮件”)
#接收邮件,参数 False 代表不把收取进度显示出来,若要显示改为 True 即可
outlook.SendAndReceive(False)
#获取收件箱文件夹里面的邮件对象 (所有)
messages = inbox.Items
#收件箱邮件总数
count = len(messages)
#遍历收件箱每封邮件并获取相应信息
#print(messages)
for message in messages:
if message:
# 标题
#print(message.Subject)
# 过滤邮件主题
if ‘补录领款人清单’ in message.Subject:
print(message.Subject)
if message.UnRead:
print(“邮件未读”)
# 循环邮件信息
for att in message.Attachments:
print(att.FileName)
# 获取邮件附件名称
file_name = att.FileName
save_path = r"D:\Data\FCLP_RSXR_Data\get"
# 拼接本地文件路径
save_file_path = os.path.join(save_path,file_name)
print(save_file_path)
# 附件另存为本地文件
att.SaveAsFile(save_file_path)
#设置标记为已读邮件
message.UnRead = False
else:
print(“邮件已读”)