消息已成功复制到其他文件夹,但显示为未读。
在创建适用于传入邮件的规则时,“标记为已读”确实会作为过滤选项显示在操作列表中,但在创建适用于外出消息。我该如何实现这一点?
以下是我现有的规则描述字符串的全文:
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 中没有内置自动执行检查的方法。