我使用 node -e "console.log('hi')"
来处理收到的所有电子邮件。
它在Outlook打开时收到的电子邮件上工作正常。
但是在启动时,收到的电子邮件不会调用Application_NewMailEx
。
我尝试使用Application_NewMailEx
,但在收到电子邮件之前调用它==>不起作用。
没有application.ontime来延迟启动宏...
Application_Startup
也是如此。
怎么做?
Application_NewMail
答案 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 Scripting Edition(VBScript)中不提供此事件。
Application.Startup Event (Outlook) 在Microsoft Outlook启动时发生,但在加载所有加载项程序之后。 子> 的
答案 1 :(得分:2)
NewMailEx事件将仅针对代码运行时收到的消息触发。在此之前,它不会触发您的(Exchange?)邮箱中收到的电子邮件。
您可以在启动时处理收件箱中的未读电子邮件(Items.Restrict
或Items.Find/FindNext
),假设新的未处理邮件仍未读取或(如果是缓存模式)使用Items.ItemAdd
收件箱文件夹中的事件 - 当您的OST文件与远程邮箱同步时,它将触发。
答案 2 :(得分:1)
Items.ItemAdd和NewMailEx不起作用.Microsoft不保证它会自动触发此事件。