如何在Outlook中收到新邮件后触发宏运行?

如何在Outlook中收到新邮件后触发宏运行?

我正在编写一个宏,它根据从Nagios服务器收到的警报作为电子邮件在数据库上创建票证。但是,我不能让宏在检查邮件时在无限循环中运行,因为它太资源太重而使我的桌面挂起。我需要找到一种方法只在收到新邮件时触发宏。

我在MSDN网站上查找了NewMail事件的内容,但我找不到任何连贯的内容。任何人都可以向我展示一些示例代码,以显示如何从新邮件事件中触发宏吗?


撒科打诨
浏览 3064回答 2
2回答

梵蒂冈之花

此代码将向默认的本地收件箱添加事件侦听器,然后对传入的电子邮件执行某些操作。您需要在下面的代码中添加该操作。Private WithEvents Items As Outlook.Items  Private Sub Application_Startup()    Dim olApp As Outlook.Application    Dim objNS As Outlook.NameSpace    Set olApp = Outlook.Application    Set objNS = olApp.GetNamespace("MAPI")    ' default local Inbox   Set Items = objNS.GetDefaultFolder(olFolderInbox).Items  End SubPrivate Sub Items_ItemAdd(ByVal item As Object)    On Error Goto ErrorHandler    Dim Msg As Outlook.MailItem    If TypeName(item) = "MailItem" Then     Set Msg = item      ' ******************     ' do something here     ' ******************   End IfProgramExit:    Exit SubErrorHandler:    MsgBox Err.Number & " - " & Err.Description    Resume ProgramExit  End Sub粘贴ThisOutlookSession模块中的代码后,必须重新启动Outlook。

繁星coding

尝试这样的内容ThisOutlookSession:Private Sub Application_NewMail()     Call Your_main_macroEnd Sub当我收到一封电子邮件并打开该应用程序事件时,我的outlook vba就被解雇了。编辑:我刚刚测试了一个hello world msg框,它在application_newmail收到电子邮件后在活动中被调用后运行。
打开App,查看更多内容
随时随地看视频慕课网APP