如何在为邮件添加「Done」类别后移除其所有其他类别?
实现标记「Done」时移除所有其他邮件类别的方法
Outlook(Windows/macOS)
- 打开「规则」设置,新建一条规则
- 触发条件选择「对我标记为特定类别的邮件执行操作」,指定触发类别为「Done」
- 添加操作:先选「清除所有类别」,再添加「标记为「Done」类别」(注意操作顺序,必须先清除再标记)
- 保存规则后,后续手动给邮件标记「Done」时,规则会自动清除该邮件的其他所有类别
Gmail
- 进入「筛选器和屏蔽的地址」页面,创建新筛选器
- 可根据需求设置筛选条件(比如针对你用于跟踪进度的邮件),点击「创建过滤器」
- 在操作选项中,勾选「应用标签」并选择「Done」,同时勾选「移除所有其他标签」
- 保存过滤器后,也可通过右键菜单或快捷键给邮件应用「Done」标签,自动触发清除其他标签的操作
脚本自定义方案(适用于支持脚本的客户端)
如果客户端支持脚本扩展,可通过简单代码实现更灵活的操作:
Outlook VBA 示例
Sub MarkDoneAndClearCategories() Dim objMail As MailItem For Each objMail In Application.ActiveExplorer.Selection objMail.Categories = "Done" ' 直接设置类别为Done,自动清除其他类别 objMail.Save Next objMail End Sub
将该宏添加到Outlook中,选中目标邮件后运行宏,即可一键完成类别替换。
Gmail Apps Script 示例
function markDoneAndClearLabels() { const threads = GmailApp.getSelectedThreads(); const doneLabel = GmailApp.getUserLabelByName("Done"); threads.forEach(thread => { // 移除所有现有标签 const labels = thread.getLabels(); labels.forEach(label => thread.removeLabel(label)); // 添加Done标签 thread.addLabel(doneLabel); }); }
在Gmail脚本编辑器中创建该函数,绑定自定义快捷键,选中邮件线程后执行即可完成操作。
内容的提问来源于stack exchange,提问作者Luk Spuck
相关产品推荐
相关产品推荐

