如何在 Outlook 中将未读邮件添加到收藏夹文件夹?
有时未读邮件可能会混杂在众多邮件中,尽管 Outlook 会显示未读邮件数量,例如 收件箱(5)),但您无法第一时间定位这些未读邮件。实际上,您可以将所有未读邮件集中到一个收藏夹文件夹中,让工作更加便捷高效。
以下指南将帮助您将所有未读邮件集中到“未读邮件”文件夹,并将该文件夹显示在收藏夹中。
步骤 1:单击导航窗格中的邮件,切换到邮件视图。
步骤 2:创建一个新的搜索文件夹:
- 在 Outlook 2010 / 2013 中,点击文件夹选项卡的新建组上的新建搜索文件夹按钮。
- 在 Outlook 2007 中,依次单击文件 > 新建 > 搜索文件夹。

其实还有另一种创建新搜索文件夹的方法:在导航窗格中右键单击搜索文件夹,然后在右键菜单中点击新建搜索文件夹。

此方法适用于所有 Microsoft Outlook 2007、2010 及 2013 版本。
步骤 2:在新建搜索文件夹对话框中,选择并高亮未读邮件项,然后点击确定按钮。

现在已成功创建未读邮件文件夹,并显示在导航窗格中。所有未读邮件将自动归入该文件夹。未读邮件一经打开,即会自动从“未读邮件”文件夹中移除。
步骤 3:右键单击未读邮件文件夹,然后在右键菜单中点击显示在收藏夹。

现在,未读邮件文件夹将被复制并添加至导航窗格顶部的收藏夹中。

提示:如果您想把所有账户中的未读邮件全部添加到一个文件夹,可以按以下步骤操作:
1. 按下 Alt + F11 键,打开 Microsoft Visual Basic for Applications 窗口,在项目窗格中,单击 Microsoft Outlook 对象下的 ThisOoutlookSession,然后将下方代码粘贴到右侧区域。
Public WithEvents OlExplprer As Outlook.Explorer
Public WithEvents OlMailItem As Outlook.MailItem
Dim xSelMail As MailItem
Private Sub Application_NewMail()
AddAllAccountsUnreadMailsToAFolder
IniEvent
End Sub
Public Sub Initialize_handler()
Set OlExplprer = Application.ActiveExplorer
If OlExplprer.Selection.Count <> 0 Then
Set OlMailItem = OlExplprer.Selection.Item(1)
End If
End Sub
Private Sub OlExplprer_BeforeFolderSwitch(ByVal NewFolder As Object, Cancel As Boolean)
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
Dim xMailItem, xSelMail As MailItem
Dim xTargetFld As Folder
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
If NewFolder.Name = "Unread Mail" Then
For Each xMailItem In NewFolder.Items
If xMailItem.UnRead = False Then
xMailItem.Delete
End If
Next
Else
For Each xTargetFld In xNameSpace.Folders.Item(1).Folders
If xTargetFld.Name = "Unread Mail" Then
For Each xMailItem In xTargetFld.Items
If (OlExplprer.Selection.Count <> 0) Then
Set xSelMail = OlExplprer.Selection.Item(1)
If xSelMail.UnRead Then
xSelMail.UnRead = False
End If
End If
Next
End If
Next
End If
Cancel = False
End Sub
Private Sub OlExplprer_FolderSwitch()
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
Dim xMailItem As MailItem
Dim xAccountFld, xTargetFld, xSubFolder As MAPIFolder
Dim xObjItem As Object
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
Refresh
If (OlExplprer.CurrentFolder.Name <> "Unread Mail") Then
For Each xTargetFld In xNameSpace.Folders.Item(1).Folders
If xTargetFld.Name = "Unread Mail" Then
For Each xMailItem In xTargetFld.Items
If xMailItem.UnRead = False Then
For Each xAccountFld In xNameSpace.Folders
For Each xSubFolder In xAccountFld.Folders
If (xSubFolder.Name <> "Deleted Items") And (xSubFolder.Name <> "Drafts") And (xSubFolder.Name <> "Outbox") And (xSubFolder.Name <> "Junk E-mail") Then
For Each xObjItem In xSubFolder.Items
If xObjItem.Class = olMail Then
If (xObjItem.Subject = xMailItem.Subject) And (xObjItem.SenderName = xMailItem.SenderName) And _
(xObjItem.Body = xMailItem.Body) And (xObjItem.Attachments.Count = xMailItem.Attachments.Count) And _
(xObjItem.SentOn = xMailItem.SentOn) Then
xObjItem.UnRead = False
End If
End If
Next
End If
Next
Next
End If
Next
End If
Next
End If
End Sub
Private Sub OlExplprer_SelectionChange()
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
If (OlExplprer.CurrentFolder.Name = "Unread Mail") And (OlExplprer.Selection.Count <> 0) Then
SelUnreadMailFld OlExplprer.CurrentFolder.Items, xNameSpace.Folders
Else
If (OlExplprer.CurrentFolder.Name <> "Deleted Items") And (OlExplprer.CurrentFolder.Name <> "Drafts") And _
(OlExplprer.CurrentFolder.Name <> "Outbox") And (OlExplprer.CurrentFolder.Name <> "Junk E-mail") Then
SelOtherFld xNameSpace.Folders.Item(1).Folders
End If
End If
End Sub
Sub SelUnreadMailFld(EMails As Outlook.Items, Flds As Folders)
Dim xMailItem As MailItem
Dim xAccountFld, xSubFolder As Folder
Dim xObjItem As Object
On Error Resume Next
For Each xMailItem In EMails 'OlExplprer.CurrentFolder.Items
If xMailItem.UnRead = False Then
For Each xAccountFld In Flds
For Each xSubFolder In xAccountFld.Folders
If (xSubFolder.Name <> "Deleted Items") And (xSubFolder.Name <> "Drafts") And (xSubFolder.Name <> "Outbox") And (xSubFolder.Name <> "Junk E-mail") Then
For Each xObjItem In xSubFolder.Items
If xObjItem.Class = olMail Then
If (xObjItem.Subject = xMailItem.Subject) And (xObjItem.SenderName = xMailItem.SenderName) And _
(xObjItem.Body = xMailItem.Body) And (xObjItem.Attachments.Count = xMailItem.Attachments.Count) And _
(xObjItem.SentOn = xMailItem.SentOn) Then
If xObjItem.UnRead Then
xObjItem.UnRead = False
End If
End If
End If
Next
End If
Next
Next
End If
Next
End Sub
Sub SelOtherFld(Flds As Folders)
Dim xSelItem, xMailItem As MailItem
Dim xTargetFld As Folder
On Error Resume Next
If OlExplprer.Selection.Count <> 0 Then
Set xSelItem = OlExplprer.Selection.Item(1)
If xSelItem.UnRead = False Then
For Each xTargetFld In Flds
If xTargetFld.Name = "Unread Mail" Then
For Each xMailItem In xTargetFld.Items
If (xSelItem.Subject = xMailItem.Subject) And (xSelItem.SenderName = xMailItem.SenderName) And _
(xSelItem.Body = xMailItem.Body) And (xSelItem.Attachments.Count = xMailItem.Attachments.Count) And _
(xSelItem.SentOn = xMailItem.SentOn) Then
xMailItem.UnRead = False
End If
Next
End If
Next
End If
End If
End Sub
Sub Refresh()
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
Dim xTargetFld As MAPIFolder
Dim xAllUnreadMails As Integer
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
xAllUnreadMails = AllUnreadMails()
For Each xTargetFld In xNameSpace.Folders.Item(1).Folders
If xTargetFld.Name = "Unread Mail" Then
If xAllUnreadMails <> xTargetFld.Items.Count Then
AddAllAccountsUnreadMailsToAFolder
Exit For
End If
End If
Next
End Sub
Function AllUnreadMails()
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
Dim xAllUnreadMails As Integer
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
xAllUnreadMails = 0
For Each xFolders In xNameSpace.Folders
For Each xSubFolder In xFolders.Folders
If xSubFolder.Name <> "Unread Mail" Then
If (xSubFolder.Name <> "Deleted Items") And (xSubFolder.Name <> "Drafts") And (xSubFolder.Name <> "Outbox") And (xSubFolder.Name <> "Junk E-mail") Then
For Each xObjItem In xSubFolder.Items
If xObjItem.Class = olMail Then
If xObjItem.UnRead Then
xAllUnreadMails = xAllUnreadMails + 1
End If
End If
Next
End If
End If
Next
Next
AllUnreadMails = xAllUnreadMails
End Function

2. 接着插入一个新模块,并将以下代码粘贴到该模块脚本中。
Public Sub AddAllAccountsUnreadMailsToAFolder()
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
Dim xFolders, xSubFolder As MAPIFolder
Dim xObjItem As Object
Dim xDelFld As Folder
Dim xUnreadMailFld, xOldUnreadMailFld As Folder
Dim xCopiedItem, xMailItem As MailItem
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
For Each xOldUnreadMailFld In xNameSpace.Folders.Item(1).Folders
If xOldUnreadMailFld.Name = "Unread Mail" Then
xOldUnreadMailFld.Delete
Exit For
End If
Next
For Each xDelFld In xNameSpace.Folders.Item(1).Folders
If xDelFld.Name = "Deleted Items" Then
For Each xMailItem In xDelFld.Items
xMailItem.Delete
Next
For Each xSubFolder In xDelFld.Folders
'For i = xDelFld.Folders.Count To 1 Step -1
xSubFolder.Delete
Next
End If
Next
Set xUnreadMailFld = xNameSpace.Folders.Item(1).Folders.Add("Unread Mail")
If xUnreadMailFld = nil Then
Exit Sub
End If
For Each xFolders In xNameSpace.Folders
For Each xSubFolder In xFolders.Folders
If xSubFolder.Name <> xUnreadMailFld.Name Then
If (xSubFolder.Name <> "Deleted Items") And (xSubFolder.Name <> "Drafts") And (xSubFolder.Name <> "Outbox") And (xSubFolder.Name <> "Junk E-mail") Then
For Each xObjItem In xSubFolder.Items
If xObjItem.Class = olMail Then
If xObjItem.UnRead Then
Set xCopiedItem = xObjItem.Copy
xCopiedItem.Move xUnreadMailFld
End If
End If
Next
End If
End If
Next
Next
IniEvent
End Sub
Public Sub IniEvent()
Dim xFld As ThisOutlookSession
Set xFld = ThisOutlookSession
xFld.Initialize_handler
End Sub 
3. 运行名为 AddAllAccountsUnreadMailsToAFolder 的代码,即可将所有未读邮件集中到名为未读邮件的文件夹中。
在 Outlook 中从一个或多个联系人文件夹中移除所有重复联系人 |
| 有时我们可能会不小心重复添加相同的联系人,如何从一个或多个联系人文件夹中移除重复联系人?该功能可帮助您快速查找所有重复联系人,并根据设定条件轻松移除或合并重复数据,例如查找同一全名或同一邮箱地址在一个或多个联系人文件夹中的重复联系人。点击免费试用 30 天完整功能,限时体验不容错过! |
![]() |
| Kutools for Outlook:包含数十个实用的 Outlook 加载项,30 天内全部功能免费不限试用。 |
最佳办公效率工具
体验全新 Kutools for Outlook,畅享 100+ 强大功能!立即点击下载,不容错过!
🤖KUTOOLS AI:采用先进 AI 技术,轻松处理邮件,涵盖回复、摘要、优化、扩展、翻译及撰写等功能。
📧 邮件自动化:自动答复(支持 POP 和 IMAP)/定时发送邮件/发送邮件时按规则自动抄送密送/自动转发(高级规则)/自动添加称呼/自动将多收件人邮件拆分为单独信息……
📨 邮件管理:撤回邮件/按主题等条件拦截诈骗邮件/删除重复邮件/高级搜索/整合文件夹……
📁 附件增强:批量保存/批量分离/批量压缩/自动保存/自动拆离/自动压缩……
🌟 界面魔法:😊更多美观时尚表情/重要邮件到达时提醒您/最小化 Outlook 而不是直接关闭……
👍 一键精彩功能:带附件全部答复/反钓鱼邮件/🕘显示发送者当前时间时区……
👩🏼🤝👩🏻 联系人与日历:批量从选定邮件中提取添加联系人/将联系人组拆分为个人组/移除生日提醒……
在您的首选语言中畅享 Kutools —— 支持英语、西班牙语、德语、法语、中文等 40 多种语言!
一键解锁 Kutools for Outlook,告别等待,立即下载,让效率倍增!


🚀 一键下载 — 即可获取全部 Office 加载项
强烈推荐:Kutools for Office(5 合 1)
一键下载五个安装包,即可同时获得 Kutools for Excel、Outlook、Word、PowerPoint 和 Office Tab Pro。立即点击下载!
- ✅ 一键便捷:只需一次操作,即可下载全部五个安装包。
- 🚀 轻松应对各类 Office 任务:随时按需安装所需插件,助您高效办公,不容错过!
- 🧰 包含:Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint
