如何使用新邮件自动运行宏到Outlook

时间:2015-03-09 02:54:19

标签: vba email vbscript outlook

对VBScript和宏来说非常新。我有一个vbscript,它将为电子邮件创建票证,但我需要每次都手动运行此脚本。为了使其自动化我将宏映射到"运行脚本" Outlook中的脚本规则,但是当规则运行时,它不会获取到达的邮件中的数据。它始终使用以前的电子邮件创建票证。

我经历了这么多VBscripts,但没有人将收到的邮件转换成票证。

如果有人遇到类似问题,请告诉我完整的解决方案。

Dim olApp As outlook.Application
Dim objNS As outlook.NameSpace
Dim objSourceFolder As outlook.MAPIFolder
Dim objDestFolder As outlook.MAPIFolder
Dim Msg As outlook.MailItem
Set olApp = outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set objSourceFolder = objNS.GetDefaultFolder(olFolderInbox)
Set objDestFolder = objSourceFolder.Folders("Termination")
Set Msg = objDestFolder.Items.GetLast
Set sh = CreateObject("Shell.Application")
Set ie = CreateObject("InternetExplorer.Application")
LocationURL = "Ticket URL” & Msg.EntryID"
ie.Navigate (LocationURL)
ie.Visible = True
With ie.Document
    .getElementById("details").Value = Msg.Body
    .getElementById("short_description").Value = Msg.Subject
    .getElementById("requester_login").Value = "premchand"

End With

2 个答案:

答案 0 :(得分:2)

当您从规则运行宏时,它通常会有一个参数,触发规则的项目将被传递到该参数:您无需浏览收件箱以查找该项目。

Public Sub DoSomething(Item As Outlook.MailItem)

   'code which acts on "Item"

End Sub

答案 1 :(得分:0)

有多种方法可以处理传入的电子邮件:

  1. 在收件箱中收到新项目时触发的Application类的NewMailEx事件。 Microsoft Visual Basic Sc​​ripting Edition(VBScript)中不提供此事件。

  2. 将一个或多个项添加到指定集合时会触发Items类的ItemAdd事件。因此,您可以订阅“收件箱”文件夹以查看新项目。请注意,当一次将大量项目添加到文件夹时,此事件不会运行。 Microsoft Visual Basic Sc​​ripting Edition(VBScript)中不提供此事件。

  3. 将宏VBA子分配给Outlook中的规则。在这种情况下,传入的邮件项目作为参数传递给Tim,如Tim所示。

相关问题