【问题标题】:Autoforward Macro Outlook 2010 VBA does not fire on Outlook Start "Updating Folders"自动转发宏 Outlook 2010 VBA 不会在 Outlook 开始“更新文件夹”时触发
【发布时间】:2015-04-18 06:07:08
【问题描述】:

Windows 7、Outlook 2010 Exchange。

我有一个用于传入电子邮件的自动转发宏,它可以完美地将所有传入的电子邮件项目转发到我需要整合的外部帐户。

唯一的问题是每次我冷启动并启动 Outlook 时,在代码中通常的“更新此文件夹...”之后出现的项目不会自动转发。从那时起,宏再次开始完美运行。

它位于 ThisOutlookSession 中。

在以前的 Outlook 版本中,运行类似宏的规则总是在启动时触发。

感谢您的帮助。

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim varEntryIDs
    Dim objItem
    Dim myItem As MailItem
    Dim i As Integer
    varEntryIDs = Split(EntryIDCollection, ",")
    For i = 0 To UBound(varEntryIDs)
        Set objItem = Application.Session.GetItemFromID(varEntryIDs(i))

        If TypeOf objItem Is MailItem Then                     

            Set myItem = objItem.Forward
            myItem.Recipients.Add "bcc.hwb@gmail.com"

            myItem.DeleteAfterSubmit = True                    
            myItem.Send
            Set myItem = Nothing
        Else
            Debug.Print "Skipping " & TypeName(objItem)
            Set myItem = Nothing
        End If
    Next
End Sub

【问题讨论】:

    标签: vba outlook outlook-2010 autostart


    【解决方案1】:

    尝试设置一个调用宏子而不是处理 NewMailEx 事件的规则。

    如果您在非缓存模式下运行 Exchange,则只有在新电子邮件到达时 Outlook 正在运行时才会触发该事件。如果您关闭并重新打开 Outlook,则队列中等待发送的所有电子邮件都将显示在 Outlook 中,但不会触发该事件。这是 Outlook 中的一个众所周知的问题。

    您可以在 Outlook NewMail event unleashed: the challenge (NewMail, NewMailEx, ItemAdd) 文章中了解处理传入电子邮件的所有可能方法。

    【讨论】:

    • 感谢您提供信息丰富的解释。据说公司禁用了脚本,但我刚刚创建了一个“Hello World”宏,在新模块中传递(myMail as Mailitem)参数,它显示为符合条件的脚本。我会修改代码,看看能不能让它飞起来。再次感谢。
    猜你喜欢
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 2018-10-11
    相关资源
    最近更新 更多