Outlook Application_NewMailEx无法启动

时间:2016-12-22 10:34:57

标签: vba outlook outlook-addin outlook-vba outlook-2007

我使用 node -e "console.log('hi')" 来处理收到的所有电子邮件。 它在Outlook打开时收到的电子邮件上工作正常。

但是在启动时,收到的电子邮件不会调用Application_NewMailEx

我尝试使用Application_NewMailEx,但在收到电子邮件之前调用它==>不起作用。 没有application.ontime来延迟启动宏... Application_Startup也是如此。

怎么做?

Application_NewMail

3 个答案:

答案 0 :(得分:3)

以下是有关如何设置应用启动并在 MailItem 添加到收件箱时触发您的vba的示例

Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
    Dim olNs As Outlook.NameSpace
    Dim Inbox  As Outlook.MAPIFolder

    Set olNs = Application.GetNamespace("MAPI")
    Set Inbox = olNs.GetDefaultFolder(olFolderInbox)
    Set Items = Inbox.Items
End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
    If TypeOf Item Is Outlook.MailItem Then
        Example Item ' call sub
    End If
End Sub

Public Sub Example(ByVal Item As Object)
    Debug.Print Item.Subject ' Immediate Window
End Sub

Application.Startup Event (Outlook) Items.ItemAdd Event (Outlook)

  

Items.ItemAdd Event (Outlook) 在将一个或多个项目添加到指定集合时发生。当大量项目一次添加到文件夹时,此事件不会运行。 Microsoft Visual Basic Sc​​ripting Edition(VBScript)中不提供此事件。

           

Application.Startup Event (Outlook) 在Microsoft Outlook启动时发生,但在加载所有加载项程序之后。

     

答案 1 :(得分:2)

NewMailEx事件将仅针对代码运行时收到的消息触发。在此之前,它不会触发您的(Exchange?)邮箱中收到的电子邮件。

您可以在启动时处理收件箱中的未读电子邮件(Items.RestrictItems.Find/FindNext),假设新的未处理邮件仍未读取或(如果是缓存模式)使用Items.ItemAdd收件箱文件夹中的事件 - 当您的OST文件与远程邮箱同步时,它将触发。

答案 2 :(得分:1)

当您有超过8个项目时,

Items.ItemAdd和NewMailEx不起作用.Microsoft不保证它会自动触发此事件。