我创建了一条规则,将电子邮件移动到确定的文件夹,然后运行一个脚本,检查未读电子邮件,标记为已读并将已解密的电子邮件输入数据库。我遇到的问题是,如果已经读取了指定文件夹中的所有邮件,则电子邮件将移至规则中的指定文件夹,但脚本不会在新电子邮件上运行。但是,如果我在新电子邮件进入时在指定文件夹中有一个未读,它会将之前的电子邮件标记为已读并且脚本运行,但不会在新电子邮件中运行,它仍会移动到确定的文件夹但不会运行脚本。这是因为脚本在完成移动到指定文件夹之前正在运行。
答案 0 :(得分:1)
在移动项目之前进入收件箱时处理项目。删除所有代码以搜索目标文件夹中的项目。那里不应该有任何未经处理的物品。
使用规则向导中的“运行脚本”选项:
Sub runAScriptCode_ForARule(itm As MailItem)
Dim InBoxFolder As Folder
Dim targetFolder As Folder
Set InBoxFolder = Session.GetDefaultFolder(olFolderInbox)
Set targetFolder = InBoxFolder.Folders("MBAA LEADS")
' Put the code to process the incoming item here.
' There is no need to search for the item. It is "itm"
' Move the item after processing is done.
MsgBox "itm.Subject: " & itm.Subject & vbCr & vbCr & _
"Incoming item processed." & vbCr & vbCr & _
"Click OK to move incoming item to " & targetFolder.Name
itm.Move targetFolder
End Sub