VBA Outlook 自动将文件夹中的所有电子邮件标记为已读

VBA Outlook automatically mark all emails in a folder as read

我在 Outlook 中创建了一个规则。此规则将我的一些电子邮件导出到名为 "Others" 的文件夹,前提是它们的主题包含特定词。通过 VBA,我想自动将文件夹 "Others" 中的所有电子邮件标记为已读,无论是在我启动 outlook 时,还是在我收到需要转到文件夹 "Others" 的电子邮件时。

确保您的宏安全设置设置正确:

对于 Outlook 2010 及更高版本:文件、选项、信任中心、信任中心设置、宏安全否则,您将需要使用 selfcert.exe 签署您的宏以测试它们,我强烈推荐

当电子邮件移至收件箱的子文件夹 ("Others") 时,电子邮件将被标记为已读。

将代码放在ThisOutlookSession模块中,必须重启Outlook。

Outlook 2010

上测试
Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
  Dim olNs As Outlook.NameSpace
  Dim Folder As Outlook.MAPIFolder

  Set olNs = Application.GetNamespace("MAPI")
  Set Folder = olNs.GetDefaultFolder(olFolderInbox)
  '// change the folder if need here
  Set Folder = olFolder.Folders("Others")
  Set Items = Folder.Items
End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
  Item.UnRead = False
  Item.Save
End Sub