2016-09-27 91 views
0

我正在尝试编写一个脚本,该脚本从一个完整的.msg文件目录中读取邮件标题,以便稍后可以通过正则表达式解析它们。我试过$MSG = Get-Content .\message.msg,它可以工作,但它是一个非常脏的输出。有没有人试过这个?我似乎无法在网上找到工作示例。如何使用Powershell从.msg文件中提取邮件标题?

回答

1

根据您的环境,您有几个选项。如果您在装有Outlook的计算机上,则可以使用Outlook com对象轻松完成此操作。问题是标头不会默认显示,所以你必须dig for them

$ol = New-Object -ComObject Outlook.Application 
$msg = $ol.CreateItemFromTemplate("SOME\PATH\TO\A\MSG\FILE.msg") 
$headers = $msg.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001E") 
$headers 

在这一点上,你有一个文本块,其中的所有头信息。如果你想要一个特定的头文件,你需要编写一个正则表达式来提取它。

您也可以编写一个基于the specification读取原始内容的类。或者使用powershell读取原始内容并编写正则表达式以尝试提取它。

+0

这是完美的工作!谢谢! – Vgamer989

相关问题