使用vbscript处理收到的电子邮件

使用vbscript处理收到的电子邮件,vbscript,outlook,Vbscript,Outlook,问题:使用vbscript处理传入的电子邮件 Outlook版本:Outlook 2000 说明:我不能使用VBA进行此操作,因为我相信Outlook 2000不允许您从规则向导运行VBA脚本,因此我必须使用运行程序| VBScript方法 我所知道的:我知道如何像这样处理来自VBA的电子邮件 Sub Sample(MyMail As MailItem) Dim strID As String, olNS As Outlook.NameSpace Dim olMail As Ou

问题:使用vbscript处理传入的电子邮件

Outlook版本:Outlook 2000

说明:我不能使用VBA进行此操作,因为我相信Outlook 2000不允许您从规则向导运行VBA脚本,因此我必须使用
运行程序| VBScript
方法

我所知道的:我知道如何像这样处理来自VBA的电子邮件

Sub Sample(MyMail As MailItem)
    Dim strID As String, olNS As Outlook.NameSpace
    Dim olMail As Outlook.MailItem

    strID = MyMail.EntryID
    Set olNS = Application.GetNamespace("MAPI")
    Set olMail = olNS.GetItemFromID(strID)

    '~~> Rest of the code

    Set olMail = Nothing
    Set olNS = Nothing
End Sub
我还知道如何在收件箱中已有的电子邮件上运行vbscript。要在OL2000中运行vbscript,必须使用
运行程序
,并将其指向vbs文件。OL2000中没有运行脚本的


我不知道的事情:这就是我需要帮助的地方。如何在VBS中获取未命中邮件收件箱的邮件对象。一旦获得对象,我就可以执行其余必要的操作。

如果可以相信,OL2000不能从规则运行VBA宏,这是正确的

以下是我如何处理收到的电子邮件。它确实使用VBA,但据我所知,在VBScript中没有这样做的方法

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") 
  Set Items = objNS.GetDefaultFolder(olFolderInbox).Items 
End Sub
Private 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 with the new message here
  End If
ProgramExit: 
  Exit Sub
ErrorHandler: 
  MsgBox Err.Number & " - " & Err.Description 
  Resume ProgramExit 
End Sub

应将此代码粘贴到ThisOutlookSession模块中,然后重新启动Outlook。

谢谢JP,我知道如何通过VBA实现这一点,但我的客户特别想要vbs LOL。因此,我无法在vbs中获取未命中邮件收件箱的邮件对象?
运行脚本
Outlook 2000
中不可用,正如链接正确提到的,但我们可以在收到电子邮件时使用
运行脚本程序
我刚刚用运行良好的
helloworld
vbs对其进行了测试。所以现在在VBS中,我需要编写一个代码来获取邮件对象。@SiddharthRout Oh boy,一个需要特定实现的客户机。事实上,他们仍然在运行Outlook 2000是一个巨大的危险信号。如果他们知道得更好,为什么他们不能自己实现呢?我答案中的链接显示了如何在Outlook 2000中使用我发布的VBA。在这种情况下,我不明白为什么VBScript比VBA更可取。VBA是如此优越,更不用说我找不到任何使用
运行程序
功能的示例VBScript了。
我答案中的链接显示了我发布的VBA如何在Outlook 2000中使用。
让我试着说服他们:)他同意:)谢谢你的帮助。不过,我想和大家分享一件有趣的事情。我想根据发件人的电子邮件地址在代码中捕获电子邮件,并意识到OL2000中没有类似
.SenderEmailAddress
的属性!!!必须在通讯簿中设置名称,然后使用
.SenderName
来捕获电子邮件。最后一切都很顺利:)再次感谢。对不起,我很困惑:
如何获取未进入VBS中邮件收件箱的邮件对象
如果尚未到达收件箱,就Outlook而言,它不存在。@bonCodigo:请将您的电子邮件放在这里