如何使用Powershell从.msg文件中提取邮件头?

时间:2016-09-27 14:57:53

标签: email powershell

我试图编写一个脚本,从一个充满.msg文件的目录中读取邮件头,以便我以后可以通过正则表达式解析它们。我尝试了$MSG = Get-Content .\message.msg,这可能有用,但它的输出很脏。有没人试过这个?我似乎无法在网上找到一个有效的例子。

1 个答案:

答案 0 :(得分: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读取原始内容并编写正则表达式以尝试提取它。