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