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

Posted

技术标签:

【中文标题】PowerShell - 从 Outlook 中提取电子邮件信息【英文标题】:PowerShell - Extract email information From Outlook 【发布时间】:2015-04-20 15:42:32 【问题描述】:

尝试提取电子邮件信息,如主题、发送者、发件人/收件人信息等。 这是我到目前为止所拥有的:

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 行代码中设置。有没有办法从根目录运行?那么,它可以解析草稿、sentitems 和已删除项目等所有文件夹吗?另外,有什么方法可以列出此邮件所在的确切文件夹并将其添加到 excel 文件中?

编辑

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

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

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

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

【问题讨论】:

我会研究 Exchange Web 服务 (EWS):msdn.microsoft.com/EN-US/library/office/… 【参考方案1】:

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

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

Advanced search in Outlook programmatically: C#, VB.NET How To: Use Find and FindNext methods to retrieve Outlook mail items from a folder (C#, VB.NET) How To: Use Restrict method to retrieve Outlook mail items from a folder

【讨论】:

以上是关于PowerShell - 从 Outlook 中提取电子邮件信息的主要内容,如果未能解决你的问题,请参考以下文章

powershell PowerShell:关闭Outlook

powershell 扫描Outlook日历条目(Powershell)

修改 PowerShell 脚本以更改 Outlook 的默认字体类型和大小

使用 Powershell 在 Outlook Web (OWA) 中更改签名

如何监控 Microsoft Outlook 以确定加载时间和使用第三方程序、PowerShell 或 C# 所涉及的因素?

powershell Afficher la liste des dossiers outlook ou trouver le chemin d'accèsd'nun dos