outlook中的宏将电子邮件标记为已读

outlook中的宏将电子邮件标记为已读,outlook,outlook-2013,Outlook,Outlook 2013,我想在outlook 2013中使用宏。此宏用于将到达特定文件夹(“工作”文件夹)的所有电子邮件标记为已读。我不熟悉vb。非常感谢您的帮助/指导 不确定,我以前听过这样一句话,希望邮件能够自动阅读。您有两个选择: a) 使用Ctrl-a(选择文件夹中的所有邮件)、Ctrl-Q(将所选内容标记为已读) b) 使用新的电子邮件事件,例如: Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) vID = Sp

我想在outlook 2013中使用宏。此宏用于将到达特定文件夹(“工作”文件夹)的所有电子邮件标记为已读。我不熟悉vb。非常感谢您的帮助/指导

不确定,我以前听过这样一句话,希望邮件能够自动阅读。您有两个选择:

a) 使用Ctrl-a(选择文件夹中的所有邮件)、Ctrl-Q(将所选内容标记为已读)

b) 使用新的电子邮件事件,例如:

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    vID = Split(EntryIDCollection, ",")
    Dim i as Long, objMail as Outlook.MailItem
    For i = 0 To UBound(vID)
        Set objMail = Application.Session.GetItemFromID(vID(i))
        objMail.Unread = False
    Next i
End Sub


Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    ' version to select folder
    Dim i As Long, objMail As Outlook.MailItem, mpfInbox As Outlook.Folder
    Set mpfInbox = Application.GetNamespace("MAPI").Folders("YOURACCOUNT").Folders("[Gmail]").Folders("Sent Mail")
    For i = 1 To mpfInbox.Items.Count
        If mpfInbox.Items(i).Class = olMail Then
            Set objMail = mpfInbox.Items.Item(i)
            objMail.UnRead = False
        End If
    Next i
End Sub

您可以设置触发宏的规则


我不建议使用NewMailEx事件,因为它在某些情况下不会被触发,并且可能会带来问题。有关更多信息,请参阅

谢谢你的回复。如何对特定文件夹而不是每个电子邮件项目使用宏?看起来修订后的代码会对收到的每个邮件处理mpfInbox。适用于“工作”文件夹的ItemAdd。