【问题标题】:Run rule on outllook when new email received收到新电子邮件时在 Outlook 上运行规则
【发布时间】:2017-03-14 05:39:17
【问题描述】:

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

【问题讨论】:

  • 在移动之前运行脚本,然后移动它
  • Outlook 不允许我每次先检查运行规则然后检查移动时都这样做,移动是在运行脚本之前应用的
  • 好吧,在你的脚本中包含这个动作——让规则只运行脚本——你知道我的意思。

标签: vba outlook


【解决方案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

【讨论】:

  • 谢谢 我不敢相信我没有想到先处理它然后移动它:(我想我想多了
猜你喜欢
  • 2014-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-15
  • 2020-02-09
  • 2011-12-07
  • 1970-01-01
相关资源
最近更新 更多