对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
答案 0 :(得分:2)
当您从规则运行宏时,它通常会有一个参数,触发规则的项目将被传递到该参数:您无需浏览收件箱以查找该项目。
Public Sub DoSomething(Item As Outlook.MailItem)
'code which acts on "Item"
End Sub
答案 1 :(得分:0)
有多种方法可以处理传入的电子邮件:
在收件箱中收到新项目时触发的Application类的NewMailEx事件。 Microsoft Visual Basic Scripting Edition(VBScript)中不提供此事件。
将一个或多个项添加到指定集合时会触发Items类的ItemAdd事件。因此,您可以订阅“收件箱”文件夹以查看新项目。请注意,当一次将大量项目添加到文件夹时,此事件不会运行。 Microsoft Visual Basic Scripting Edition(VBScript)中不提供此事件。
将宏VBA子分配给Outlook中的规则。在这种情况下,传入的邮件项目作为参数传递给Tim,如Tim所示。