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

时间:2015-01-12 13:11:48

标签: outlook outlook-2013

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

2 个答案:

答案 0 :(得分:1)

不确定,我之前听过这个想要自动阅读的电子邮件。您有两种选择:

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

答案 1 :(得分:0)

您可以设置一个可以触发宏的规则。

我不建议使用NewMailEx事件,因为在某些情况下它不会被触发,并且可能会引入问题。有关详细信息,请参阅Outlook NewMail event unleashed: the challenge (NewMail, NewMailEx, ItemAdd)

相关问题