我正在使用 Powershell 解析保存到本地文件夹的电子邮件内容。
代码如下...
Get-ChildItem "C:\projtest\emails" -Filter *.msg |
ForEach-Object {
$msg = ""
$outlook = New-Object -comobject outlook.application
$msg = $outlook.Session.OpenSharedItem($_.FullName)
$msg | Select -ExpandProperty body
Write-Host $msg
}
$outlook.Quit()
现在,我只想打开文件,获取内容并显示它。
我遇到的问题是,一旦运行脚本,OUTLOOK.EXE 不会关闭,因此我无法对同一消息再次运行脚本。
是否有更好的方法来打开 Outlook 电子邮件、在 PowerShell 中将内容转换为字符串并关闭 Outlook 进程?
不要打开和关闭 Outlook,打开一次,完成所有工作,然后在工作结束时关闭它。
$outlook = New-Object -comobject outlook.application
Get-ChildItem "C:\projtest\emails" -Filter *.msg |
ForEach-Object {
$msg = $outlook.Session.OpenSharedItem($_.FullName)
$msg.body
}
$outlook.Quit()
Edit:好的,您需要关闭 .msg 文件,而不是 Outlook。只需将其添加到ForEach
loop:
$outlook = New-Object -comobject outlook.application
Get-ChildItem "C:\projtest\emails" -Filter *.msg |
ForEach-Object {
$msg = $outlook.Session.OpenSharedItem($_.FullName)
$msg.body
$msg.Close()
}
$outlook.Quit()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)