如何在Outlook中将超过特定天数的未读邮件自动标记为已读?
如果您的收件箱文件夹中有多个未读邮件,通常您可以手动使用“全部标记为已读”功能将所有未读邮件标记为已读。但是,您是否尝试过在Outlook中不每次都手动设置的情况下,将超过特定天数的未读邮件自动标记为已读呢?
使用VBA代码自动将超过特定天数的未读邮件标记为已读
要自动将所有超过特定天数的未读邮件标记为已读,以下VBA代码可以帮到您:
1. 按住 ALT + F11 键打开 Microsoft Visual Basic for Applications 窗口。
2. 在 Microsoft Visual Basic for Applications 窗口中,双击 Project1(VbaProject.OTM) 窗格中的 ThisOutlookSession 打开模块,然后将以下代码复制并粘贴到空白模块中。
VBA代码:自动将超过特定天数的未读邮件标记为已读:
Private Sub Application_Startup()
Call MarkOldUnreadEmailsAsRead
End Sub
Private Sub MarkOldUnreadEmailsAsRead()
Dim xInboxFld As Outlook.Folder
Dim xAccount As Account
On Error GoTo L1
For Each xAccount In Outlook.Application.Session.Accounts
Set xInboxFld = xAccount.DeliveryStore.GetDefaultFolder(olFolderInbox)
Call Processfolders(xInboxFld)
Next xAccount
L1: Exit Sub
End Sub
Private Sub Processfolders(ByVal InboxFld As Outlook.Folder)
Dim xItems As Outlook.Items
Dim i As Long
Dim xSubFld As Outlook.Folder
On Error Resume Next
Set xItems = InboxFld.Items
For i = 1 To xItems.Count
If DateDiff("d", xItems(i).ReceivedTime, Now) >= 15 Then
If xItems(i).UnRead = True Then
xItems(i).UnRead = False
xItems(i).Save
End If
End If
Next
If InboxFld.Folders.Count > 0 Then
For Each xSubFld In InboxFld.Folders
Call Processfolders(xSubFld)
Next
End If
End Sub
注意:在上面的代码中,您可以根据需要更改脚本中的天数:If DateDiff("d", xItems(i).ReceivedTime, Now) >= 15 Then 中的数字。

3. 然后保存并关闭此代码窗口,从那时起,每次启动Outlook时,所有超过预定义天数的未读邮件都会立即自动标记为已读。
注意:此代码仅适用于默认数据账户。
最佳办公生产力工具
重磅消息:Kutools for Outlook 推出免费版本!
体验全新 Kutools for Outlook 免费版本,拥有 70 多项令人惊叹的功能,永久免费使用!立即点击下载!
🤖 Kutools AI :利用先进的人工智能技术轻松处理电子邮件,包括回复、总结、优化、扩展、翻译和撰写邮件。
📧 邮件自动化:自动答复(支持 POP 和 IMAP) / 定时发送邮件 / 按规则自动抄送密送 / 自动转发(高级规则) / 自动添加问候语 / 自动将多收件人邮件拆分为单独消息 ...
📨 邮件管理:撤回邮件 / 按主题和其他条件阻止垃圾邮件 / 删除重复邮件 / 高级搜索 / 整合文件夹 ...
📁 附件增强功能:批量保存 / 批量拆离 / 批量压缩 / 自动保存 / 自动拆离 / 自动压缩 ...
🌟 界面魔法:😊更多漂亮酷炫的表情符号 / 当重要邮件到达时提醒您 / 最小化 Outlook 而不是关闭 ...
👍 一键奇效:带附件回复所有人 / 反钓鱼邮件 / 🕘显示发件人的时区 ...
👩🏼🤝👩🏻 联系人和日历:从选定的邮件中批量添加联系人 / 将联系人组拆分为单独的组 / 移除生日提醒 ...
单击即可立即解锁 Kutools for Outlook。不要再等待,现在就下载并提升您的效率!

