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

3

我在Outlook中创建了一条规则。如果某些邮件的主题包含特定单词,该规则将把这些邮件导出到名为“其他”的文件夹中。通过使用VBA,我希望能自动将“其他”文件夹中的所有邮件标记为已读,不论是在启动Outlook时还是收到需要放入“其他”文件夹的邮件时。


2
规则处理不了吗? - Mathieu Guindon
谢谢你提供的代码。不幸的是,它没有起作用。 - Mohsen
1个回答

4

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

对于 Outlook 2010 及以上版本:文件,选项,信任中心,信任中心设置,宏安全性。否则,你需要使用 selfcert.exe 来签署你的宏以进行测试,我强烈建议这样做。

当电子邮件被移动到收件箱的子文件夹 ("其他") 中时,将标记为已读。

将代码放置在 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接