在 imap 移动后,如何自动运行“在收件箱中运行所有规则”的规则

在 imap 移动后,如何自动运行“在收件箱中运行所有规则”的规则

我如何才能制定一条规则,在刚刚将一大堆来自其他帐户的新邮件推送到收件箱后,最好是自动(或至少手动)运行收件箱中的所有规则?如果有必要,我甚至会将一批邮件放入任务计划程序中。我很绝望,所以我愿意采取一些措施。

更具体地说,我有一些规则,它们接受 Outlook IMAP Gmail 帐户,并将on this computer only move it to the folder其发送到 PST 收件箱(即我的主收件箱)。这是该 IMAP 帐户的唯一规则。我现在需要所有这些扩展规则(通常为正常情况下新收到收件箱的 POP 邮件制定)来处理它们。

那么,在完成移动后,我如何触发所有规则来处理这些新的 IMAP 移动?规则无法感知移动,因为它们不是新传入的消息(转发是不可能的,这会搞乱所有规则)

我认为最少跳数的方式就是像我对 IMAP 所做的那样,在设置中将其设置为“不在服务器上复制”然后“清除”,然后唯一的 IMAP 帐户规则就会在这里发挥作用on this computer only...移动到主收件箱,如上所述。问题出现在此之后,它们仍留在主收件箱中,未经处理。

现在我想让它们自动处理(就像我手动进入 Outlook 规则、运行所有规则、全选、仅在收件箱上运行一样)

答案1

我找到了一个很好的热键组合,可以运行“收件箱中的所有规则”

程序

选择收件箱或要运行规则的邮箱后,

1)按住alt

2)发出以下序列,注意在运行部分(o)后暂停,直到它完成h r r l并打开规则,然后r e o运行它们,然后当它完成运行规则时,仍然按住 altc然后f4关闭规则。

我知道这可以用 bash 脚本编写,有人有什么好的例子吗?

热键组合

最后变成这样(一直按住 alt 键)

alt + hrrl reo c f4

答案2

这个 VBA 宏应该可以完成这个工作:

Sub RunAllInboxRules()
    Dim st As Outlook.Store
    Dim myRules As Outlook.Rules
    Dim rl As Outlook.Rule
    Dim count As Integer
    Dim ruleList As String
    'On Error Resume Next

    ' get default store (where rules live)
    Set st = Application.Session.DefaultStore
    ' get rules
    Set myRules = st.GetRules

    ' iterate all the rules
    For Each rl In myRules
        ' determine if it's an Inbox rule
              If rl.RuleType = olRuleReceive And rl.IsLocalRule = True Then
            ' if so, run it
            rl.Execute ShowProgress:=True
            count = count + 1
            ruleList = ruleList & vbCrLf & rl.Name
        End If
    Next

    ' tell the user what you did
    ruleList = "These rules were executed against the Inbox: " & vbCrLf & ruleList
    MsgBox ruleList, vbInformation, "Macro: RunAllInboxRules"

    Set rl = Nothing
    Set st = Nothing
    Set myRules = Nothing
End Sub

可以将宏添加为按钮,如下所述。

参考 :

相关内容