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

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

您会发现以下文章很有帮助:

  • Outlook 中的高级搜索以编程方式:C#、VB.NET
  • 如何:使用 Find 和 FindNext 方法从文件夹中检索 Outlook 邮件项目(C#、VB.NET)
  • 如何:使用限制方法从文件夹中检索 Outlook 邮件项目

最新更新