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

Macro in outlook to mark emails as read

我想在 Outlook 2013 中使用一个宏。这个宏应该将到达特定文件夹('work' 文件夹)的任何电子邮件标记为已读。我不熟悉 vb。非常感谢任何 help/guidance!

不确定,我以前听说过要自动阅读电子邮件。您有两个选择:

a) 使用 Ctrl-A(select 文件夹中的所有邮件),Ctrl-Q(将 selection 标记为已读)

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 事件,因为它在某些情况下不会被触发并且可能会引入问题。有关详细信息,请参阅 Outlook NewMail event unleashed: the challenge (NewMail, NewMailEx, ItemAdd)