Outlook 2010,将电子邮件复制到文件夹中,并将复制的电子邮件标记为已读,但将原始电子邮件保留为未读



我设置了规则,将包含某些关键字的电子邮件复制到特定文件夹,并标记为已读。

我遇到的问题是,当它将这些电子邮件复制到文件夹时,它会将收件箱中的原始电子邮件标记为已读,这可能会导致我错过消息。如果我没有将它标记为已读,那么当我在收件箱中阅读它时,它在特定文件夹中保持未读状态。

我找不到任何规则属性来完成这一点,有人有任何想法吗?

设置规则复制到目标文件夹,但不标记为已读。

将这些未经测试的代码放在ThisOutlookSession模块中。假设目标文件夹直接位于Inbox之下。如果埋得更深,必要时添加文件夹。

Option Explicit
' one line for each target folder
Private WithEvents myOlItemsA  As Outlook.Items
Private WithEvents myOlItemsB  As Outlook.Items
Private Sub Application_Startup()
    Dim olApp As Outlook.Application
    Dim objNS As Outlook.NameSpace
    Set olApp = Outlook.Application
    Set objNS = olApp.GetNamespace("MAPI")
    ' one line for each target folder
    Set myOlItemsA = objNS.GetDefaultFolder(olFolderInbox).Folders("targetfoldernameA").Items
    Set myOlItemsB = objNS.GetDefaultFolder(olFolderInbox).Folders("targetfoldernameB").Items
End Sub
' one copy of ItemAdd code for each target folder
Private Sub myOlItemsA_ItemAdd(ByVal item As Object)
    On Error GoTo ErrorHandler
    Dim Msg As Outlook.MailItem
    If TypeName(item) = "MailItem" Then
        Set Msg = item
        Msg.Unread = False
    End If
ProgramExit:
    Set Msg = Nothing
    Exit Sub
ErrorHandler:
    MsgBox Err.Number & " - " & Err.Description
    Resume ProgramExit
End Sub
Private Sub myOlItemsB_ItemAdd(ByVal item As Object)
 ' same code as for myOlItemsA
End Sub

基于这篇文章的代码使用VBA阅读新的Outlook电子邮件?

规则将邮件移动到目标文件夹。ItemAdd代码作用于添加到目标文件夹中的项。

最新更新