收到新电子邮件后,在outllook上运行规则

时间:2017-03-12 19:12:18

标签: vba outlook

我创建了一条规则,将电子邮件移动到确定的文件夹,然后运行一个脚本,检查未读电子邮件,标记为已读并将已解密的电子邮件输入数据库。我遇到的问题是,如果已经读取了指定文件夹中的所有邮件,则电子邮件将移至规则中的指定文件夹,但脚本不会在新电子邮件上运行。但是,如果我在新电子邮件进入时在指定文件夹中有一个未读,它会将之前的电子邮件标记为已读并且脚本运行,但不会在新电子邮件中运行,它仍会移动到确定的文件夹但不会运行脚本。这是因为脚本在完成移动到指定文件夹之前正在运行。

1 个答案:

答案 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