如何从 Powershell 脚本访问 Outlook 电子邮件正文?

nic*_*max 6 email powershell outlook outlook-2010

我的 Outlook 中有一个基本文件夹,其中包含来自监控系统的警报。我想根据该数据创建一个表。为此,我一直尝试在 Outlook 中访问电子邮件的正文内容:

Add-Type -Assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -ComObject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
$inbox = $namespace.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderInbox)
$inbox.Items | Format-Table BodyFormat, Body, HTMLBody, RTFBody
Run Code Online (Sandbox Code Playgroud)

现在我希望看到 Body、HTMLBody 或 RTFBody 的一些内容 - 但我没有。我确实看到 BodyFormat 最常见的是 2 (olFormatHTML)。因此,大多数电子邮件都应该在 HTMLBody 中包含内容——但没有一个这样做。我可以访问主题行,但不能访问内容。

由于我在网上找到的每个示例似乎都能够获取正文内容,我认为这一定是 Outlook 中的一个设置,仅下载主题行或其他内容。我们有 Enterprise Vault——内容可以与消息分开存储吗?

nic*_*max 4

根据MSDN 文档,我相信这确实是防病毒程序阻止通过对象模型防护访问选择性属性。这解释了为什么该$mm.Body属性是可设置的但不可获取。由于我无权访问我的计算机上的任何公司安全设置,因此我无法进一步追求互操作方向。

有一些解决方法建议

我想我会使用 EWS,尽管我不得不说界面相当复杂。

感谢@TesselttingHeckler 为我指明了道路。