使用PowerShell搜索Outlook电子邮件



我在Outlook中搜索电子邮件时遇到问题。

这项工作:

Add-Type -assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -comobject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
$e=$Outlook.AdvancedSearch("Inbox","urn:schemas:httpmail:subject='RECHERCHE QUI MARCHE'",$False,'test')
$e.results

给我的结果还好。

但如果我更改范围,它就不起作用。

PS C:Usersetarai> $e=$Outlook.AdvancedSearch('\xx@xx.comÉléments supprimés',"urn:schemas:httpmail:subject='RECHERCHE QUI MARCHE'",$False,'test')

其中'\\xx@xx.com\Éléments supprimés是FolderPath。在msdn中,作用域应该是具有文件夹路径的字符串

作用域类型:System.String

搜索的范围。例如,文件夹的文件夹路径。它建议文件夹路径用单引号括起来。否则,如果文件夹路径包含包括Unicode字符在内的特殊字符。到指定多个文件夹路径,将每个文件夹路径括在一个文件夹中引用并用逗号分隔单引号文件夹路径。

如何在已删除的电子邮件、已发送的电子邮件或存档中进行搜索?你有找到范围的解决方案吗?当我尝试将folderpath放入作用域时,它不起作用。

另一个问题是,有可能看到研究何时完成吗?

whouaaaa我找到了答案!!谢谢你的提示sodawillow!

用于具有文件夹路径的作用域双引号和单引号:

"'\xx@xx.com\已删除项目"。可与pst文件中的存档一起使用:)

像"-match"一样工作小心和测试发生,*不解释

$Term="测试"$Scope="收件箱">

$Outlook=新建对象-ComObject Outlook.Application$Emails=$Outlook.AdvancedSearch($Scope,"urn:schemas:httpmail:subject LIKE'%$Term%'",$true)

开始睡眠-秒10

$Emails.Results|选择对象-属性主题

最新更新