我有一条 Outlook 2007 规则,该规则将某些外发邮件复制到另一个文件夹 - 我如何自动将这些邮件标记为“已读”?

我有一条 Outlook 2007 规则,该规则将某些外发邮件复制到另一个文件夹 - 我如何自动将这些邮件标记为“已读”?

消息已成功复制到其他文件夹,但显示为未读。

在创建适用于传入邮件的规则时,“标记为已读”确实会作为过滤选项显示在操作列表中,但在创建适用于外出消息。我该如何实现这一点?

以下是我现有的规则描述字符串的全文:

Apply this rule after I send the message
on this machine only
move a copy to the Archive folder

更新:
@xxl3ww 指出,有 VB 脚本可以实现这一点。不过,我宁愿不用为这些脚本付费。有人知道有什么免费的替代方案吗?

答案1

您需要启用宏才能使以下代码正常工作。在“工具”>“宏”>“安全”下,更改为“所有宏的警告”或“无安全检查”

单击工具 > 宏 > Visual Basic 编辑器

复制并粘贴以下内容:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Item.UnRead = False
End Sub

就是这样!(连同您现有的消息规则)

答案2

您需要对其进行调整以匹配您的文件夹/邮箱名称,但这会将新添加的项目(即按您的规则移动的电子邮件)设置为:


Option Explicit
'##############################################
'### all code for the ThisOutlookSession module
'### Module level Declarations
'expose the items in the target folder to events
Dim WithEvents TargetFolderItems As Items

'###############################################
Private Sub Application_Startup()
'some startup code to set our "event-sensitive"
'items collection

Dim myMailbox As String, myFolder As String

'You need to set these
myMailbox = "Mailbox - My Name"
myFolder = "Archive Folder Name"

Dim ns As Outlook.NameSpace

Set ns = Application.GetNamespace("MAPI")
Set TargetFolderItems = ns.Folders(myMailbox).Folders(myFolder).Items

End Sub

'#################################################
'### this is the ItemAdd event code
Sub TargetFolderItems_ItemAdd(ByVal Item As Object)
'when a new item is added to our "Testing Folder"
'we can process it
Dim myEmail As MailItem
Set myEmail = Item
myEmail.UnRead = False
End Sub

'#################################################
Private Sub Application_Quit()

Dim ns As Outlook.NameSpace
Set TargetFolderItems = Nothing
Set ns = Nothing

End Sub

答案3

使用规则向导 (工具 --> 规则和警报) 构建规则,第三个屏幕允许您将消息标记为已读。您可能需要向下滚动一点才能找到正确的复选框。

虽然从技术上来说这不是“传出”规则,但如果手动运行,它还是会起作用。我认为 Office 中没有内置自动执行检查的方法。

相关内容