访问Outlook邮件附件的MailItem属性

时间:2014-07-07 09:17:10

标签: vbscript outlook

这是我的第一篇文章,希望我不会错它。

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

我提出的唯一解决方法是使用SaveAsFile方法将每个附件保存到文件,然后使用CreateItemFromTemplate打开保存的文件,然后提供对对象的Mail Item属性的完全访问权限。但是,磁盘操作引起的延迟过大。我的基本"解决方法"返回" 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附件的邮件项属性的更好方法?

感谢

    objItem.Class
    objItem.ReceivedTime
    objItem.SenderEmailAddress
    objItem.SenderName
    objItem.SentOnBehalfOfName
    objItem.Subject
    objItem.Attachments
    objItem.Recipients
    objItem.To
    objItem.Cc
    objItem.Bcc

1 个答案:

答案 0 :(得分:0)

这是您在Outlook对象模型中可以做的最好的事情。你的选择是

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

  2. Redemption(任何语言) - 其RDOAttachment对象公开EmbeddedMsg属性。