You need to enable JavaScript to run this app. Python如何通过循环为指定Outlook邮件添加颜色分类?
优惠活动
大模型
产品
解决方案
定价
更多

Python如何通过循环为指定Outlook邮件添加颜色分类?

需求背景

我需要基于邮件主题、发件人地址等条件,为指定Outlook文件夹中的现有邮件添加颜色分类。目前已编写代码实现读取Excel存储的匹配规则、遍历目标文件夹邮件、将主题命中关键词的邮件移动到对应目标文件夹的功能,但暂时无法实现添加Outlook颜色分类的功能,参考官方Outlook VBA Categories接口文档仍未找到解决方案,请问如何实现该需求?

现有代码

import win32com.client as client
import win32com
import pandas as pd

outlook = client.Dispatch("Outlook.Application").GetNamespace('MAPI')

main_account = outlook.Folders.Item(1)
second_account = outlook.Folders.Items(3)

df = pd.read_excel (r'C:\Python\test.xls')

df_outlook_folder = df['Outlook_folder'].tolist()
df_mail_object = df['Mail_object'].tolist()

out_iter_folder = main_account.Folders['Inbox'].Folders['TEST']

fixed_item_count = out_iter_folder.Items.Count
item_count = out_iter_folder.Items.Count

if out_iter_folder.Items.Count > 0:
    for i in reversed(range(0,item_count)):
        message = out_iter_folder.Items[i]
        for y,z in zip(df_mail_object,df_outlook_folder):
            try:
                if y in message.Subject:
                     message.Move(second_account.Folders['Inbox'].Folders['TESTED'].Folders[z])
            except:
                pass
item_count = out_iter_folder.Items.Count
print('Nb mails sorted:',fixed_item_count - item_count)

(注:原代码存在笔误yout_iter_folder、Move方法缺右括号,已修正)


解决方案

你之前参考的Categories接口是用于管理整个Outlook账户的全局分类列表的,给单封邮件添加分类不需要调用这个接口,直接操作邮件对象的Categories属性即可,具体逻辑如下:

  1. 提前在你使用的Outlook账户中创建好需要的颜色分类,记住分类的准确名称(大小写、标点完全匹配)
  2. 给邮件对象的Categories属性赋值,单分类直接填分类名称,多分类用英文逗号分隔
  3. 赋值后必须调用邮件对象的Save()方法保存修改,否则设置不会生效

如果需要在移动邮件的同时添加分类,修改匹配到规则后的代码段即可,示例如下:

if y in message.Subject:
    # 给邮件添加分类,分类名替换为你自己的即可
    message.Categories = "已自动归档"
    # 保存修改
    message.Save()
    # 移动邮件
    message.Move(second_account.Folders['Inbox'].Folders['TESTED'].Folders[z])

如果需要按不同规则匹配不同分类,可以在Excel的规则表中新增一列存储对应分类名称,读取后和关键词、目标文件夹一起遍历赋值即可。


内容的提问来源于stack exchange,提问作者Matarus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 19:45:03