Vbscript 访问Outlook邮件附件的MailItem属性

Vbscript 访问Outlook邮件附件的MailItem属性,vbscript,outlook,Vbscript,Outlook,这是我的第一篇帖子,希望我没有弄错。 我正在尝试使用vbscript从数百个旧的Exchange日记Outlook PST文件中提取邮件项目详细信息。PST存档中的所有项目都由带有.msg附件的“信封”邮件项目组成,该附件是我要捕获其属性的实际电子邮件。 我可以访问附件对象,但无法提取下面列出的MailItem属性和集合,可能是因为附件未作为邮件项目打开。我已尝试使用PropertyAccessor对象,但无法从中获得任何结果。 我想到的唯一解决方法是使用SaveAsFile方法将每个附件保存到

这是我的第一篇帖子,希望我没有弄错。

我正在尝试使用vbscript从数百个旧的Exchange日记Outlook PST文件中提取邮件项目详细信息。PST存档中的所有项目都由带有.msg附件的“信封”邮件项目组成,该附件是我要捕获其属性的实际电子邮件。
我可以访问附件对象,但无法提取下面列出的MailItem属性和集合,可能是因为附件未作为邮件项目打开。我已尝试使用PropertyAccessor对象,但无法从中获得任何结果。

我想到的唯一解决方法是使用SaveAsFile方法将每个附件保存到文件,然后CreateItemFromTemplate打开保存的文件,这样就可以完全访问对象的邮件项目属性。但是,磁盘操作造成的延迟过大。我返回“objMsg”MailItem对象的基本“变通”代码是:

    Set objOL=WScript.CreateObject("Outlook.Application")
    set objNS=objOL.GetNameSpace("MAPI")
    Set objPST = objNS.Folders(strPSTname).Folders("Inbox").Items
    Set objItem = objPST.Items(1)
    objItem.Attachments(1).SaveAsFile(conTempPath)
    Set objMsg = objOL.CreateItemFromTemplate(conTempPath)
有人知道访问.msg附件的邮件项目属性的更好方法吗?

谢谢


这是在Outlook对象模型中可以做的最好的操作。你的选择是

  • 扩展MAPI(C++或Delphi)-调用IAttach::OpenProperty(PR_ATATCH_DATA_OBJ,IID_IMessage,…)

  • (任何语言)-其对象公开EmbeddedMsg属性


  • 谢谢你,德米特里。似乎SaveAsFile/CreateItemFromTemplate或Redemption是唯一的选项。如果我可以使用vbscript获得赎回,它将在这里发布代码(除非其他人先这样做)。干杯
        objItem.Class
        objItem.ReceivedTime
        objItem.SenderEmailAddress
        objItem.SenderName
        objItem.SentOnBehalfOfName
        objItem.Subject
        objItem.Attachments
        objItem.Recipients
        objItem.To
        objItem.Cc
        objItem.Bcc