PowerShell - 从Outlook中提取电子邮件信息

时间:2015-04-20 15:42:33

标签: email powershell outlook

尝试提取主题,已发送,发件人/收件人等信息等电子邮件信息。 这就是我到目前为止所做的:

Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null
$olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type]
$outlook = new-object -comobject outlook.application
$namespace = $outlook.GetNameSpace("MAPI")
$folder = $namespace.getDefaultFolder($olFolders::olFolderInbox)
$Mail = $folder.items | where-object { conditions }
$Mail | Select-Object -Property <objects> | Export-CSV -NoTypeInformation  C:\.......\file_name.csv

此代码仅检查收件箱文件夹中的邮件,这是在第5行代码中设置的原因。有没有办法从根目录运行?那么,它可以解析草稿,发送项目和已删除项目等所有文件夹吗?此外,还有哪种方法可以列出此邮件所在的确切文件夹并将其添加到Excel文件中?

修改

以下代码列出了邮箱中的所有文件夹:

$Name = $namespace.Folders.Item(1).Folders | FT Name

有没有办法将每个文件夹名称逐个存储到$Name中并使用它在循环中搜索下面的代码?

$folder = $namespace.Folders.Item(1).Folders.Item("$Name").Items

1 个答案:

答案 0 :(得分:0)

我建议使用Items类的Find / FindNext或Restrict方法查找文件夹中与您的条件相对应的项目。如果需要在多个文件夹中搜索,则需要使用Application类的AdvancedSearch方法。

您可以找到以下文章: