问题:使用vbscript处理传入的电子邮件。
Outlook版本:Outlook 2000
描述:我无法使用VBA,因为我认为Outlook 2000不允许您从规则向导运行VBA脚本,因此我必须使用Run a Program | 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,必须使用Run A Program
并将其指向vbs文件。 OL2000中无法使用Run A Script
。
我不知道:这就是我需要帮助的地方。如何获取未在VBS中收到邮件收件箱的邮件对象。一旦我得到了对象,我就可以完成剩下的必要操作。
答案 0 :(得分:3)
如果要相信this article,那么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。